/* GIRO Operação — camada visual comum. Não altera regras, submissões ou sincronização. */
body.giro-operation {
 --gmo-bg: #f4efe7;
 --gmo-surface: #fffdf9;
 --gmo-surface-raised: #ffffff;
 --gmo-surface-muted: #f7f1e9;
 --gmo-ink: #2f2118;
 --gmo-muted: #705b4b;
 --gmo-line: #cdbba8;
 --gmo-line-strong: #a98c72;
 --gmo-action: #57341f;
 --gmo-action-hover: #74492d;
 --gmo-accent: #b96d32;
 --gmo-success: #176b3a;
 --gmo-success-bg: #edf9f1;
 --gmo-success-line: #8acda2;
 --gmo-warning: #92510a;
 --gmo-warning-bg: #fff8e6;
 --gmo-warning-line: #e9c76f;
 --gmo-danger: #aa2929;
 --gmo-danger-bg: #fff1f1;
 --gmo-danger-line: #eeaaaa;
 --gmo-info: #245e9b;
 --gmo-info-bg: #edf6ff;
 --gmo-info-line: #9bc7ef;
 --gmo-shadow: 0 12px 34px rgba(48, 31, 20, .09);
 --bg: var(--gmo-bg);
 --cream: var(--gmo-bg);
 --ink: var(--gmo-ink);
 --brown: var(--gmo-action);
 --muted: var(--gmo-muted);
 --text-light: var(--gmo-muted);
 --line: var(--gmo-line);
 --caramel: var(--gmo-accent);
 --green: var(--gmo-success);
 --gold: var(--gmo-warning);
 --red: var(--gmo-danger);
 background-color: var(--gmo-bg);
 color: var(--gmo-ink);
 color-scheme: light;
}

body.giro-operation .app { isolation: isolate; }
body.giro-operation .card,
body.giro-operation .mobile-hub-tile,
body.giro-operation .mobile-dialog-card,
body.giro-operation .mobile-outcome-card,
body.giro-operation .giro-action-popup {
 background: var(--gmo-surface-raised);
 border-color: var(--gmo-line);
 box-shadow: var(--gmo-shadow);
}
body.giro-operation .card { border-width: 1px; border-radius: 20px; }
body.giro-operation .mobile-outcome.cancelled .mobile-outcome-mark {
 background: var(--gmo-info-bg);
 border: 1px solid var(--gmo-info-line);
 color: var(--gmo-info);
}
body.giro-operation .card > h2,
body.giro-operation .brand h1,
body.giro-operation .giro-action-popup h2 { color: var(--gmo-ink); }
body.giro-operation .giro-action-popup p { color: var(--gmo-muted); }
body.giro-operation .giro-action-popup-eyebrow { color: var(--gmo-accent); }
body.giro-operation .giro-action-popup-actions button { border-color: var(--gmo-line-strong); }
body.giro-operation .giro-action-popup-later { background: var(--gmo-surface-muted); color: var(--gmo-ink); }
body.giro-operation .pill,
body.giro-operation .logout-link,
body.giro-operation .back-link,
body.giro-operation input,
body.giro-operation select,
body.giro-operation textarea,
body.giro-operation .mobile-choice-toggle,
body.giro-operation .mobile-choice-panel,
body.giro-operation .mobile-choice-option,
body.giro-operation .mobile-dialog-field input,
body.giro-operation .mobile-dialog-field textarea {
 background: var(--gmo-surface-raised);
 border-color: var(--gmo-line);
 color: var(--gmo-ink);
}
body.giro-operation input:disabled,
body.giro-operation select:disabled,
body.giro-operation textarea:disabled,
body.giro-operation input[readonly] { background: var(--gmo-surface-muted); color: var(--gmo-muted); opacity: 1; }
body.giro-operation button,
body.giro-operation .btn,
body.giro-operation a.link-button { background: var(--gmo-action); color: #fff; }
body.giro-operation form button:hover:not(:disabled):not(.secondary),
body.giro-operation .btn:hover:not(:disabled),
body.giro-operation a.link-button:hover { background: var(--gmo-action-hover); }
body.giro-operation button.secondary,
body.giro-operation .mobile-fm-shortcuts a.secondary { background: var(--gmo-surface-muted); border: 1px solid var(--gmo-line); color: var(--gmo-action); }
body.giro-operation :is(button, a, input, select, textarea, summary):focus-visible {
 outline: 3px solid color-mix(in srgb, var(--gmo-accent) 72%, white);
 outline-offset: 3px;
}
body.giro-operation :is(button, .btn, a.link-button, .back-link, .logout-link) { min-height: 46px; }
body.giro-operation :is(input, select, textarea) { min-height: 48px; }

body.giro-operation .profile-cell,
body.giro-operation .operation-item,
body.giro-operation .pending-item,
body.giro-operation .badge,
body.giro-operation .preview,
body.giro-operation .total,
body.giro-operation .receipt-guide,
body.giro-operation .mobile-purchase-receipt-summary,
body.giro-operation .mobile-purchase-receipt-mode,
body.giro-operation .sale-history-empty,
body.giro-operation .sale-history-group,
body.giro-operation .sale-history-item,
body.giro-operation .sale-history-help,
body.giro-operation .mobile-fm-metric.primary,
body.giro-operation .mobile-fm-details,
body.giro-operation .mobile-fm-movement,
body.giro-operation .mobile-notifications-state,
body.giro-operation .mobile-notification-item,
body.giro-operation .mobile-schedule-row,
body.giro-operation .mobile-schedule-days,
body.giro-operation .mobile-schedule-summary span,
body.giro-operation .presence-team-row,
body.giro-operation .presence-team-state,
body.giro-operation .mobile-choice-search,
body.giro-operation .counted-row,
body.giro-operation .queue-item {
 background: var(--gmo-surface-muted);
 border-color: var(--gmo-line);
 color: var(--gmo-ink);
}
body.giro-operation .presence-team-state.a_trabalhar { background: var(--gmo-success-bg); border-color: var(--gmo-success-line); color: var(--gmo-success); }
body.giro-operation .presence-team-state.saiu { background: var(--gmo-surface); border-color: var(--gmo-line); color: var(--gmo-muted); }
body.giro-operation .presence-team-state.ausencia_comunicada { background: var(--gmo-warning-bg); border-color: var(--gmo-warning-line); color: var(--gmo-warning); }
body.giro-operation .presence-team-state.ausencia_parcial { background: var(--gmo-warning-bg); border-color: var(--gmo-warning-line); color: var(--gmo-warning); }
body.giro-operation .presence-team-state.marcacoes_por_rever { background: var(--gmo-danger-bg); border-color: var(--gmo-danger-line); color: var(--gmo-danger); }
body.giro-operation .presence-team-state.saida_comunicada { background: var(--gmo-info-bg); border-color: var(--gmo-info-line); color: var(--gmo-info); }
body.giro-operation .presence-team-row.attention { border-color: var(--gmo-danger-line); }
body.giro-operation .mobile-hub-status,
body.giro-operation .mobile-hub-shift,
body.giro-operation .guide-head,
body.giro-operation .step-actions,
body.giro-operation .mobile-bottom-nav,
body.giro-operation .mobile-hub-back {
 background: color-mix(in srgb, var(--gmo-surface-raised) 94%, transparent);
 border-color: var(--gmo-line);
 color: var(--gmo-ink);
}
body.giro-operation .mobile-hub-tile { border-width: 1px; }
body.giro-operation .mobile-hub-tile.primary { border-color: var(--gmo-line-strong); }
body.giro-operation .mobile-hub-tile.completed { background: var(--gmo-success-bg); border-color: var(--gmo-success-line); }
body.giro-operation .mobile-hub-icon,
body.giro-operation .mobile-dialog-brand,
body.giro-operation .mobile-bottom-nav :is(button, a)[aria-current="page"] { background: var(--gmo-surface-muted); color: var(--gmo-action); }
body.giro-operation .mobile-hub-tile.primary .mobile-hub-icon { background: color-mix(in srgb, var(--gmo-accent) 18%, var(--gmo-surface)); }
body.giro-operation .mobile-choice-option.selected,
body.giro-operation .operation-status,
body.giro-operation .status-pill.rascunho,
body.giro-operation .request-status.neutral {
 background: var(--gmo-surface-muted);
 border-color: var(--gmo-line);
 color: var(--gmo-ink);
}
body.giro-operation :is(.guide-progress, .receipt-progress) { background: var(--gmo-line); }
body.giro-operation .mobile-hub-tile-copy small,
body.giro-operation .small,
body.giro-operation .sub,
body.giro-operation .context-note { color: var(--gmo-muted); }
body.giro-operation .queue-item.queue-item-warning { background: var(--gmo-warning-bg); border-color: var(--gmo-warning-line); color: var(--gmo-warning); }
body.giro-operation .queue-item.queue-item-rejected { background: var(--gmo-danger-bg); border-color: var(--gmo-danger-line); color: var(--gmo-danger); }
body.giro-operation .queue-item.queue-item-resubmitted { background: var(--gmo-success-bg); border-color: var(--gmo-success-line); color: var(--gmo-success); }
body.giro-operation .queue-item:is(.queue-item-warning, .queue-item-rejected, .queue-item-resubmitted) :is(strong, span) { color: inherit; }

body.giro-operation :is(
 .request-status.approved,
 .sale-last-saved,
 .operation-status.active,
 .status-pill.fechado,
 .status-pill.coassinada,
 .mobile-schedule-row.ferias,
 .mobile-fm-movement-icon.incoming
) {
 background: var(--gmo-success-bg);
 border-color: var(--gmo-success-line);
 color: var(--gmo-success);
}
body.giro-operation :is(
 .request-status.pending,
 .sale-last-saved.attention,
 .status-pill.pendente,
 .mobile-schedule-row.multiple,
 .mobile-fm-movement-icon.outgoing
) {
 background: var(--gmo-warning-bg);
 border-color: var(--gmo-warning-line);
 color: var(--gmo-warning);
}
body.giro-operation :is(
 .request-status.rejected,
 .operation-status.blocked,
 .status-pill.auto,
 .mobile-schedule-row.attention,
 .counted-row-desvio-badge
) {
 background: var(--gmo-danger-bg);
 border-color: var(--gmo-danger-line);
 color: var(--gmo-danger);
}
body.giro-operation .status-pill.contado {
 background: var(--gmo-info-bg);
 border-color: var(--gmo-info-line);
 color: var(--gmo-info);
}
body.giro-operation .mobile-schedule-row.folga {
 background: var(--gmo-surface-muted);
 border-color: var(--gmo-line);
 color: var(--gmo-ink);
}
body.giro-operation :is(.mobile-outcome-mark, .finish-mark),
body.giro-operation .mobile-hub-tile.completed .mobile-hub-icon {
 background: var(--gmo-success-bg);
 color: var(--gmo-success);
}
body.giro-operation .mobile-outcome.rejected .mobile-outcome-mark {
 background: var(--gmo-danger-bg);
 color: var(--gmo-danger);
}
body.giro-operation .mobile-outcome.accepted .mobile-outcome-mark {
 background: var(--gmo-warning-bg);
 color: var(--gmo-warning);
}

body.giro-operation :is(.status.on, .ok, .alert-ok, [data-mobile-feedback="success"]) {
 background: var(--gmo-success-bg);
 border-color: var(--gmo-success-line);
 color: var(--gmo-success);
}
body.giro-operation :is(.status.off, .warn, .alert-error, .alert-block, [data-mobile-feedback="error"]) {
 background: var(--gmo-danger-bg);
 border-color: var(--gmo-danger-line);
 color: var(--gmo-danger);
}
body.giro-operation :is(.status.sync, .alert-info, .alert-warning, .motivo-box, .presence-privacy-disclosure) {
 background: var(--gmo-warning-bg);
 border-color: var(--gmo-warning-line);
 color: var(--gmo-warning);
}
body.giro-operation .status.connected { background: var(--gmo-info-bg); border-color: var(--gmo-info-line); color: var(--gmo-info); }
body.giro-operation .mobile-notification-item.unread { background: var(--gmo-warning-bg); border-left-color: var(--gmo-warning); }
body.giro-operation .mobile-outcome { background: rgba(28, 20, 15, .46); }
body.giro-operation form.giro-operation-pending { opacity: .94; }
body.giro-operation form.giro-operation-pending::after {
 content: "A processar…";
 display: block;
 margin-top: 10px;
 color: var(--gmo-muted);
 font-size: 13px;
 font-weight: 700;
 text-align: center;
}

body.giro-operation-auth .brand-icon { background: var(--gmo-action); }
body.giro-operation-auth .card { background: var(--gmo-surface-raised); border-color: var(--gmo-line); }
body.giro-operation-auth .field input,
body.giro-operation-auth .company-choice { background: var(--gmo-surface-muted); border-color: var(--gmo-line); color: var(--gmo-ink); }

@media (max-width: 520px) {
 body.giro-operation .card { padding: 17px; }
 body.giro-operation .mobile-hub-grid { gap: 11px; }
 body.giro-operation .mobile-hub-tile { min-height: 140px; }
}

@media (prefers-color-scheme: dark) {
 body.giro-operation {
  --gmo-bg: #17120e;
  --gmo-surface: #201914;
  --gmo-surface-raised: #282018;
  --gmo-surface-muted: #211a14;
  --gmo-ink: #f5eadf;
  --gmo-muted: #c9b5a3;
  --gmo-line: #5d4938;
  --gmo-line-strong: #8c6b50;
  --gmo-action: #b97848;
  --gmo-action-hover: #ca8a59;
  --gmo-accent: #dc9259;
  --gmo-success: #8bd2a4;
  --gmo-success-bg: #173021;
  --gmo-success-line: #387750;
  --gmo-warning: #f0c674;
  --gmo-warning-bg: #332810;
  --gmo-warning-line: #7a6128;
  --gmo-danger: #ffaaaa;
  --gmo-danger-bg: #381c1c;
  --gmo-danger-line: #854141;
  --gmo-info: #9ccaff;
  --gmo-info-bg: #172b3e;
  --gmo-info-line: #3e688d;
  --gmo-shadow: 0 14px 38px rgba(0, 0, 0, .28);
  color-scheme: dark;
  background-image: none;
 }
 body.giro-operation .mobile-hub-tile.primary .mobile-hub-icon { background: #3a291c; }
 body.giro-operation .push-optin { background: var(--gmo-warning-bg); border-color: var(--gmo-warning-line); }
 body.giro-operation .mobile-notification-open.action-required,
 body.giro-operation .step-actions .step-save { background: var(--gmo-action); color: #fff; }
}

@media (prefers-reduced-motion: reduce) {
 body.giro-operation *,
 body.giro-operation *::before,
 body.giro-operation *::after {
  scroll-behavior: auto !important;
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
 }
}
body.giro-operation .mp-batch-difference{display:block;margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--gmo-surface-muted);font-weight:700}
body.giro-operation .mp-batch-difference[data-tone="short"]{color:var(--gmo-warning)}
body.giro-operation .mp-batch-difference[data-tone="excess"]{color:var(--gmo-info)}
body.giro-operation .mp-batch-difference[data-tone="same"]{color:var(--gmo-success)}
