/* Controle Financeiro Paroquial — Versão 2.2 */
/* Design system da interface operacional oficial. */

:root {
  --ink: #17211e;
  --muted: #6e7975;
  --faint: #97a29e;
  --line: #dfe7e3;
  --soft: #f3f7f5;
  --panel: #ffffff;
  --accent: #087f6f;
  --accent-strong: #05675b;
  --accent-soft: #def3ed;
  --accent-faint: #ebf7f4;
  --warning: #b66a18;
  --warning-soft: #fff0d8;
  --danger: #b8473d;
  --danger-soft: #fde8e5;
  --positive: #27835e;
  --positive-soft: #dff4e8;
  --shadow: 0 14px 36px rgba(31, 55, 48, .08);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: #f5f8f7;
  font-synthesis: none;
}

.auxiliary-scope-banner {
  margin-bottom: 14px;
  padding: 10px 14px;
  border: 1px solid var(--accent-soft);
  border-radius: var(--radius-sm);
  background: var(--accent-faint);
  color: var(--accent-strong);
  font-size: 12px;
  font-weight: 700;
}

* { box-sizing: border-box; }
html { overflow-x:hidden; }
body { margin: 0; min-width: 320px; min-height: 100vh; overflow-x:hidden; background: #f5f8f7; font-family: Inter, "Segoe UI", Arial, sans-serif; }
button, input, select, textarea { font: inherit; }
button { color: inherit; touch-action:manipulation; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(8, 127, 111, .24); outline-offset: 2px; }
.skip-link { position:fixed; top:8px; left:8px; z-index:200; padding:9px 12px; border-radius:8px; background:var(--ink); color:white; transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.app-shell { min-height: 100vh; }
.workspace { min-width: 0; flex: 1; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1.05; }
.brand strong { font-size: 17px; letter-spacing: -.02em; }
.brand small { color: var(--muted); font-family: Georgia, serif; font-size: 12px; margin-top: 4px; }
.brand-mark { position: relative; width: 40px; height: 40px; display: inline-grid; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 14px 14px 7px 7px; background: currentColor; color: var(--accent); overflow: hidden; flex: 0 0 40px; }
.brand-mark::before { content: ""; width: 12px; height: 25px; border: 2px solid white; border-bottom: 0; border-radius: 10px 10px 0 0; transform: translateY(8px); }
.brand-mark span { position: absolute; width: 2px; height: 16px; top: 6px; background: white; }
.brand-mark i { position: absolute; width: 11px; height: 2px; top: 11px; background: white; }
.brand-compact .brand-mark { width: 42px; height: 42px; }
.eyebrow { display: block; font-size: 10px; font-weight: 800; color: var(--accent); letter-spacing: .14em; text-transform: uppercase; }
.button { min-height: 42px; border: 1px solid transparent; border-radius: 12px; padding: 0 17px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; cursor: pointer; transition: transform 150ms cubic-bezier(.2,0,0,1), box-shadow 150ms cubic-bezier(.2,0,0,1), background-color 150ms cubic-bezier(.2,0,0,1), border-color 150ms cubic-bezier(.2,0,0,1), color 150ms cubic-bezier(.2,0,0,1); text-decoration: none; font-size: 13px; }
.button:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(10, 60, 50, .12); }
.button.primary { background: var(--accent); color: white; }
.button.primary:hover { background: var(--accent-strong); }
.button.secondary { background: white; border-color: var(--line); color: var(--ink); }
.button.secondary:hover { background: var(--soft); }
.button.compact { min-height: 36px; padding: 0 12px; border-radius: 10px; font-size: 12px; }
.button.danger { background: var(--danger); color: white; }
.button.danger:hover { background: #96352c; }
.button .icon { width: 17px; height: 17px; }
.icon-button { width: 38px; height: 38px; border: 1px solid transparent; background: transparent; border-radius: 10px; display: inline-grid; place-items: center; cursor: pointer; color: var(--muted); transition: transform 150ms cubic-bezier(.2,0,0,1), background-color 150ms cubic-bezier(.2,0,0,1), color 150ms cubic-bezier(.2,0,0,1); }
.icon-button:hover { background: var(--soft); color: var(--ink); }
.text-link { border: 0; background: none; padding: 0; color: var(--accent); font-weight: 700; cursor: pointer; font-size: 12px; }
.text-link:hover { text-decoration: underline; }
.mini-action { border: 1px solid var(--line); border-radius: 9px; padding: 6px 10px; background: white; font-size: 12px; font-weight: 700; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; color: var(--ink); transition: transform 150ms cubic-bezier(.2,0,0,1), border-color 150ms cubic-bezier(.2,0,0,1), color 150ms cubic-bezier(.2,0,0,1); }
.mini-action:hover { border-color: var(--accent); color: var(--accent); }
.button:active, .mini-action:active, .icon-button:active { transform: scale(.96); }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 5px 16px rgba(35, 58, 52, .03); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.panel-heading h2 { margin: 5px 0 0; font-size: 18px; letter-spacing: -.02em; }
.page-content { padding: 30px 34px 100px; max-width: 1500px; margin: 0 auto; width: 100%; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 24px; flex-wrap: wrap; }
.page-heading h1 { margin: 6px 0 0; font-size: 32px; line-height: 1.1; letter-spacing: -.04em; font-weight: 800; }
.heading-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.page-intro { margin: -14px 0 26px; color: var(--muted); }

/* Variant A Shell */
.variant-a { display: grid; grid-template-columns: 246px 1fr; }
.sidebar-a { position: sticky; top: 0; height: 100vh; padding: 22px 16px 16px; background: #fff; border-right: 1px solid var(--line); display: flex; flex-direction: column; z-index: 5; }
.sidebar-a > .brand { padding: 0 8px 24px; border-bottom: 1px solid var(--line); }
.sidebar-a nav { display: grid; gap: 4px; margin-top: 18px; flex: 1; overflow-y: auto; }
.sidebar-groups { align-content: start; }
.nav-group { display: grid; gap: 3px; padding: 0 0 13px; margin-bottom: 10px; border-bottom: 1px solid var(--line); }
.nav-group:last-child { border-bottom: 0; }
.nav-group h2 { margin: 0; padding: 0 12px 5px; color: var(--faint); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.store-nav-children { display: grid; gap: 2px; margin: 1px 0 2px 18px; padding-left: 11px; border-left: 1px solid var(--line); }
.nav-child { min-height: 32px; border: 0; border-radius: 8px; padding: 0 10px; background: transparent; color: var(--muted); cursor: pointer; text-align: left; font-size: 11px; font-weight: 650; }
.nav-child:hover { background: var(--soft); color: var(--ink); }
.nav-child.active { background: var(--accent-faint); color: var(--accent-strong); font-weight: 800; }
.nav-item { position: relative; width: 100%; border: 0; background: transparent; min-height: 44px; border-radius: 11px; padding: 0 12px; display: flex; align-items: center; gap: 12px; color: #53605c; cursor: pointer; text-align: left; transition: .14s ease; }
.nav-item span { flex: 1; font-size: 13px; font-weight: 650; }
.nav-item:hover { background: var(--soft); color: var(--ink); }
.nav-item.active { background: var(--accent-soft); color: var(--accent-strong); font-weight: 700; }
.nav-item.active::before { content: ""; position: absolute; left: 0; height: 22px; width: 3px; border-radius: 0 4px 4px 0; background: var(--accent); }
.nav-chevron { width: 14px; }
.sidebar-bottom { margin-top: auto; }
.sidebar-logout { width:100%; margin-bottom:8px; text-align:center; }
.user-chip { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--line); margin-top: 8px; padding: 16px 6px 2px; }
.user-chip > span { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #dbece7; color: var(--accent); font-weight: 800; font-size: 12px; flex: 0 0 34px; }
.user-chip div { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.user-chip strong { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-chip small { color: var(--muted); font-size: 10px; margin-top: 3px; }

/* Topbar */
.topbar { height: 70px; padding: 0 34px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 4; backdrop-filter: blur(12px); gap: 16px; }
.workspace-switch { display: flex; align-items: center; gap: 10px; }
.workspace-switch > .icon { color: var(--accent); }
.workspace-switch select { border: 1px solid var(--line); background: var(--soft); border-radius: 8px; padding: 6px 10px; font-weight: 700; font-size: 12px; color: var(--ink); cursor: pointer; }
.workspace-switch > span { display: flex; flex-direction: column; }
.workspace-switch small { color: var(--muted); font-size: 9px; }
.workspace-switch strong { font-size: 12px; margin-top: 2px; }
.top-search { width: min(390px, 40vw); height: 39px; border: 1px solid var(--line); background: var(--soft); border-radius: 11px; display: flex; align-items: center; gap: 10px; padding: 0 12px; color: var(--muted); font-size: 12px; }
.top-search input { flex: 1; border: 0; outline: 0; background: transparent; font-size: 12px; }
.top-search kbd { background: white; border: 1px solid var(--line); border-radius: 6px; padding: 3px 6px; font-size: 9px; font-weight: 700; color: var(--faint); }
.top-actions-right { display: flex; align-items: center; gap: 10px; }

/* Notices & Metrics */
.notice-strip { background: linear-gradient(100deg, #fff7e8, #fffdf8); border: 1px solid #f2dfbb; border-radius: 14px; min-height: 54px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.notice-strip > div { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.notice-strip > div .icon { color: var(--warning); }
.notice-strip button { border: 0; background: none; display: flex; align-items: center; gap: 4px; color: var(--warning); font-weight: 750; cursor: pointer; white-space: nowrap; }
.notice-strip button .icon { width: 14px; }
.metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 18px; }
.metrics-grid-three { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.metric-card { background: white; border: 1px solid var(--line); border-radius: 16px; padding: 17px; min-width: 0; }
.metric-card .metric-top { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 11px; font-weight: 650; }
.metric-icon { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: var(--soft); color: var(--muted); }
.metric-icon .icon { width: 16px; }
.metric-card > strong { display: block; font-size: 24px; margin: 12px 0 5px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.metric-card > small { color: var(--muted); font-size: 10px; }
.metric-card.danger .metric-icon { background: var(--danger-soft); color: var(--danger); }
.metric-card.positive .metric-icon { background: var(--positive-soft); color: var(--positive); }
.metric-card.pending .metric-icon { background: var(--warning-soft); color: var(--warning); }

/* Dashboard & Panels */
.store-inventory-summary { display:grid; grid-template-columns:minmax(250px, .85fr) minmax(0, 1.4fr); gap:18px; margin-bottom:18px; }
.store-stock-values { display:grid; gap:12px; min-width:0; }
.store-inventory-summary h2 { font-size:17px; margin:7px 0; }
.store-inventory-summary p { color:var(--muted); font-size:12px; line-height:1.5; margin:0; }
.store-stock-values .metric-card > small { display:block; line-height:1.5; }
.store-stock-values .metric-card.pending > small b { color:var(--warning); }
.store-abc-panel { padding:22px; min-width:0; }
.store-abc-content { display:flex; align-items:center; gap:24px; margin-top:24px; }
.store-abc-chart { width:180px; flex:0 0 180px; position:relative; }
.store-abc-chart svg { display:block; width:100%; }
.store-abc-chart > div { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.store-abc-chart strong { font-size:26px; font-variant-numeric:tabular-nums; }
.store-abc-chart span { color:var(--muted); font-size:10px; margin-top:4px; }
.store-abc-legend { flex:1; min-width:0; list-style:none; padding:0; margin:0; }
.store-abc-legend li { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.store-abc-legend li:last-child { border-bottom:0; }
.store-abc-dot { width:10px; height:10px; flex:0 0 10px; border-radius:50%; }
.store-abc-legend strong { display:block; font-size:12px; font-variant-numeric:tabular-nums; }
.store-abc-legend small { display:block; color:var(--muted); font-size:10px; margin-top:4px; }
.store-abc-count { margin-left:auto; text-align:right; }
.store-abc-empty { padding:38px 0; text-align:center; }
@media (max-width:1200px) {
  .store-inventory-summary { grid-template-columns:1fr; }
  .store-stock-values { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .store-stock-values > div { grid-column:1 / -1; }
}
@media (max-width:600px) {
  .store-stock-values { grid-template-columns:1fr; }
  .store-abc-content { flex-direction:column; gap:12px; }
  .store-abc-legend { width:100%; }
}
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); gap: 18px; margin-bottom: 18px; }
.agenda-panel { padding: 20px; min-height: 330px; }
.agenda-list { margin: 18px -4px 0; }
.agenda-list button { width: 100%; display: grid; grid-template-columns: 42px minmax(0,1fr) auto 16px; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid var(--line); background: none; padding: 13px 4px; text-align: left; cursor: pointer; }
.agenda-list button:hover { background: var(--soft); }
.agenda-list time { width: 40px; height: 45px; border: 1px solid var(--line); border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: white; }
.agenda-list time strong { font-size: 16px; }
.agenda-list time small { font-size: 8px; color: var(--muted); }
.agenda-list button > span { display: flex; flex-direction: column; min-width: 0; }
.agenda-list button > span strong { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.agenda-list button > span small { font-size: 9px; color: var(--muted); margin-top: 4px; }
.agenda-list button > b { font-size: 11px; font-variant-numeric: tabular-nums; }
.agenda-list button > .icon { width: 14px; color: var(--faint); }

/* Submetrics & Tables */
.submetrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 18px; }
.data-panel { overflow: visible; }
.filter-row { display: flex; align-items: center; gap: 12px; padding: 15px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.period-filter { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:10px; font-weight:700; white-space:nowrap; }
.period-filter .icon { width:16px; color:var(--accent); }
.period-filter select, .filter-row > input[type="date"], .filter-row > input[type="month"] { height:39px; border:1px solid var(--line); border-radius:10px; background:white; padding:0 9px; color:var(--ink); font-size:11px; }
.search-box { min-width: 230px; flex: 1; height: 39px; background: var(--soft); border: 1px solid transparent; border-radius: 10px; padding: 0 11px; display: flex; align-items: center; gap: 9px; }
.search-box:focus-within { border-color: var(--accent); background: white; }
.search-box .icon { width: 17px; color: var(--muted); }
.search-box input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 11px; }
.filter-chips { display: flex; gap: 5px; }
.chip { border: 1px solid var(--line); background: white; border-radius: 20px; padding: 7px 10px; color: var(--muted); font-size: 10px; font-weight: 650; cursor: pointer; }
.chip.active { background: var(--accent-soft); border-color: var(--accent-soft); color: var(--accent-strong); font-weight: 700; }
.table-shell { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 860px; }
th { height: 43px; padding: 0 12px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; text-align: left; background: #fafcfb; border-bottom: 1px solid var(--line); }
td { height: 62px; padding: 8px 12px; border-bottom: 1px solid var(--line); font-size: 11px; }
tbody tr:hover { background: #fafcfb; }
td:nth-child(1) { min-width: 180px; }
td:nth-child(1) > small { display: block; color: var(--muted); margin-top: 4px; font-size: 9px; }
.amount { text-align: right; font-weight: 750; font-variant-numeric: tabular-nums; }
.amount.positive { color: var(--positive); }
.amount.danger { color: var(--danger); }
.row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.action-menu-wrap { position:relative; }
.action-menu-trigger { border-color:var(--line); background:white; }
.action-menu { display:none; position:fixed; z-index:80; width:198px; padding:6px; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:var(--shadow); animation:menu-in 150ms cubic-bezier(.2,0,0,1); }
.action-menu.open { display:block; }
.action-menu button { display:block; width:100%; border:0; border-radius:8px; padding:9px 10px; background:transparent; color:var(--ink); text-align:left; font-size:11px; font-weight:700; cursor:pointer; }
.action-menu button:hover { background:var(--soft); }
.action-menu .danger-action { color:var(--danger); }
.action-menu .danger-action:hover { background:var(--danger-soft); }
.action-menu-note { display:block; padding:8px 10px; color:var(--muted); font-size:10px; line-height:1.4; }
.finance-card-list { display:none; }

/* Status Badges */
.status { display: inline-flex; align-items: center; gap: 6px; border-radius: 20px; padding: 5px 8px; font-size: 9px; font-weight: 750; white-space: nowrap; background: var(--soft); color: var(--muted); }
.status span { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-pendente, .status-em_aberto { background: var(--warning-soft); color: var(--warning); }
.status-vencido, .status-vencida, .status-estornado, .status-estornada { background: var(--danger-soft); color: var(--danger); }
.status-pago, .status-quitada, .status-confirmado, .status-confirmada, .status-ativo, .status-ativa { background: var(--positive-soft); color: var(--positive); }
.status-cancelado, .status-cancelada, .status-inativo, .status-inativa, .status-pausada { background: #edf0ef; color: #69736f; }
.status-parcial { background: #fdf3e2; color: #b66a18; }

/* Checkbox (Fiel a references/Checkbox.png) */
.check { display: inline-flex; cursor: pointer; position: relative; }
.check input { position: absolute; opacity: 0; }
.check span { width: 18px; height: 18px; border: 1.5px solid #cbd4d0; border-radius: 5px; background: white; display: inline-block; position: relative; transition: .14s ease; }
.check:hover span { border-color: var(--accent); }
.check input:checked + span { background: var(--accent); border-color: var(--accent); }
.check input:checked + span::after { content: ""; position: absolute; left: 5px; top: 2px; width: 4px; height: 8px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* Recurrences */
.recurrence-intro { background: linear-gradient(120deg, #143e35, #176955); color:white; border-radius:18px; min-height:150px; padding:25px; display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; overflow:hidden; }
.recurrence-intro .eyebrow { color:#a7d8ca; }
.recurrence-intro > div > strong { display:block;font-family:Georgia,serif;font-size:41px;font-weight:400;margin:6px 0; }
.recurrence-intro p { margin:0;color:#d2e5df;font-size:11px;max-width:470px; }
.calendar-stack { display:flex;gap:15px;align-items:center;padding-right:30px; }
.calendar-stack > .icon { width:45px;height:45px;color:#92cdbc; }
.calendar-stack span { display:flex; flex-direction:column; }
.calendar-stack strong { font-size:26px; }
.calendar-stack small { color:#b8d8cf;font-size:9px; }
.recurrence-grid { display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:14px; }
.recurrence-card { background:white;border:1px solid var(--line);border-radius:16px;padding:17px; }
.recurrence-card header { display:flex;align-items:center;gap:8px; }
.recurrence-card header .status { margin-left:auto; }
.recurrence-icon { width:34px;height:34px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);border-radius:9px; }
.recurrence-icon .icon { width:16px; }
.recurrence-card h2 { font-size:14px;margin:18px 0 6px; font-weight: 800; }
.recurrence-card > p { color:var(--muted);font-size:10px;margin:0; }
.recurrence-card dl { margin:16px 0 0; }
.recurrence-card dl div { display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:9px 0;font-size:10px; }
.recurrence-card dt { color:var(--muted); }
.recurrence-card dd { margin:0;font-weight:700; }
.recurrence-card footer { display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:13px;margin-top:3px; }
.recurrence-card.paused { background:#f2f4f3;opacity:.8; }

/* Cadastros & Tabs */
.tabs-nav { display: flex; gap: 8px; border-bottom: 1px solid var(--line); padding-bottom: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.tab-btn { border: 1px solid var(--line); background: white; border-radius: 10px; padding: 8px 14px; font-size: 11px; font-weight: 700; color: var(--muted); cursor: pointer; }
.tab-btn.active { background: var(--accent); color: white; border-color: var(--accent); }

/* Security Hero */
.security-hero { background:#153c34;color:white;border-radius:18px;padding:24px;display:grid;grid-template-columns:60px 1fr auto;gap:18px;align-items:center;margin-bottom:18px; }
.security-seal { width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#2b5a50;color:#9dd2c4; }
.security-seal .icon { width:27px;height:27px; }
.security-hero .eyebrow { color:#9dd2c4; }
.security-hero h2 { margin:6px 0;font-size:18px; }
.security-hero p { margin:0;color:#c9dcd6;font-size:10px;line-height:1.5; }
.health-pill { background:#2c715e;border-radius:20px;padding:8px 11px;font-size:9px;font-weight:750; }

/* Login Page — Compact Centered Card (Variant A) */
.login-page { min-height:100vh;display:grid;place-items:center;padding:24px;overflow-x:hidden;overflow-y:auto;background:linear-gradient(160deg,#e6f3ef 0%,#f5f8f7 40%,#edf4f1 100%);position:relative; }

/* Decorative background shapes */
.login-backdrop-shapes { position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden; }
.login-shape { position:absolute;border-radius:50%;filter:blur(80px);opacity:.45; }
.login-shape-1 { width:480px;height:480px;background:radial-gradient(circle,#87dfc8,transparent 70%);top:-120px;right:-80px; }
.login-shape-2 { width:360px;height:360px;background:radial-gradient(circle,#a8e6cf,transparent 70%);bottom:-60px;left:-50px; }
.login-shape-3 { width:240px;height:240px;background:radial-gradient(circle,#6fcfb0,transparent 70%);top:40%;left:55%; }

/* Compact card */
.login-card-compact { width:min(420px,calc(100vw - 48px));margin:auto;background:rgba(255,255,255,.97);border:1px solid rgba(223,231,227,.7);box-shadow:0 20px 60px rgba(14,57,46,.12),0 2px 8px rgba(14,57,46,.04);border-radius:20px;padding:28px 28px 22px;display:flex;flex-direction:column;gap:0;z-index:2;backdrop-filter:blur(12px); }

/* Brand mark in card */
.login-brand-row { display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:24px; }
.login-brand-icon { width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#0a7e6d,#05675b);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0; }
.login-brand-icon span { width:20px;height:26px;border:2px solid rgba(255,255,255,.85);border-bottom:0;border-radius:10px 10px 0 0;display:block; }
.login-brand-icon i { width:4px;height:10px;background:rgba(255,255,255,.85);position:absolute;bottom:8px;border-radius:1px; }
.login-brand-text { display:flex;flex-direction:column;line-height:1.15; }
.login-brand-text strong { font-size:15px;font-weight:800;letter-spacing:-.02em;color:var(--ink); }
.login-brand-text small { font-size:10px;color:var(--muted);font-weight:500; }

/* Header */
.login-header { text-align:center;margin-bottom:24px; }
.login-header h2 { font-size:22px;letter-spacing:-.03em;margin:0 0 6px;font-weight:800;color:var(--ink); }
.login-header p { color:var(--muted);font-size:12px;line-height:1.5;margin:0; }
.auth-notice { margin:-10px 0 18px;padding:10px 12px;border:1px solid #f2dfbb;border-radius:10px;background:#fff7e8;color:#805b18;font-size:12px;line-height:1.45; }

/* Form field */
.login-field-label { display:grid;gap:7px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#47514e;margin-bottom:14px; }
.operator-fields { display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding-top:14px;margin-top:4px;border-top:1px solid var(--line); }
.operator-fields .login-field-label:first-child { grid-column:1/-1; }
.login-plain-input { width:100%;height:43px;border:1px solid var(--line);border-radius:10px;background:#f9fbfa;padding:0 11px;color:var(--ink);font-size:12px;text-transform:none;letter-spacing:normal; }
.login-plain-input:focus { border-color:var(--accent);background:white; }
.login-card-compact .password-field { height:46px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:9px;padding:0 12px;background:#f9fbfa;transition:border-color .15s,box-shadow .15s; }
.login-card-compact .password-field:focus-within { border-color:var(--accent);box-shadow:0 0 0 3px rgba(8,127,111,.1); }
.password-field .icon { color:var(--muted);width:17px; }
.password-field input { border:0;outline:0;flex:1;min-width:0;font-size:13px;background:transparent; }
.password-field button { border:0;background:none;color:var(--muted);cursor:pointer; }
.password-toggle { display:grid;place-items:center;width:32px;height:32px;border-radius:8px;transition:background .12s; }
.password-toggle:hover { background:var(--soft); }

/* Login button */
.login-button { width:100%;height:46px;border-radius:12px;font-size:13px;font-weight:650;letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;gap:6px; }
.login-button .icon { width:16px;margin-left:auto; }

/* Divider */
.login-divider { display:flex;align-items:center;gap:12px;margin:20px 0 16px; }
.login-divider::before,.login-divider::after { content:"";flex:1;height:1px;background:var(--line); }
.login-divider span { font-size:9px;color:var(--faint);font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap; }

/* Footer */
.login-foot { display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:10px; }
.login-foot .icon { width:15px;color:var(--positive); }

/* =============================================================================
   MODAIS & DIÁLOGOS (DESIGN SYSTEM FIEL A REFERENCES/DIALOG.PNG)
   ============================================================================= */
.modal-backdrop { position:fixed;inset:0;background:rgba(13,24,21,.55);display:grid;place-items:center;padding:22px;z-index:100;backdrop-filter:blur(3px);animation:fade .18s ease; }
.modal { width:min(720px,100%);max-height:calc(100vh - 44px);overflow:auto;background:white;border-radius:21px;box-shadow:0 28px 90px rgba(0,0,0,.22);animation:rise .2s ease; display:flex; flex-direction:column; }
.modal > header { padding:22px 24px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;position:sticky;top:0;background:white;z-index:2; }
.modal h2 { margin:5px 0 0;font-size:23px;letter-spacing:-.03em; }
.modal-body { padding:22px 24px; overflow-y:auto; flex:1; }
.modal > footer { padding:15px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:0;background:white; }

.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:15px; }
.form-section { padding:16px; border:1px solid var(--line); border-radius:14px; background:#fcfdfd; }
.form-section-secondary { margin-top:12px; }
.form-section-heading { display:flex; flex-direction:column; gap:3px; margin-bottom:15px; }
.form-section-heading strong { font-size:12px; }
.form-section-heading span { color:var(--muted); font-size:10px; }
.form-disclosure { margin-top:12px; border:1px solid var(--line); border-radius:14px; background:white; }
.form-disclosure summary { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 15px; cursor:pointer; list-style:none; font-size:12px; font-weight:750; }
.form-disclosure summary::-webkit-details-marker { display:none; }
.form-disclosure summary::after { content:"+"; color:var(--accent); font-size:17px; line-height:1; order:3; }
.form-disclosure[open] summary::after { content:"−"; }
.form-disclosure summary small { margin-left:auto; color:var(--muted); font-size:10px; font-weight:650; }
.form-disclosure .form-grid { padding:0 15px 15px; }
.form-field { display:flex;flex-direction:column;gap:7px;font-size:10px;font-weight:700;color:#47514e; }
.form-field.span-2 { grid-column:span 2; }
.form-field input, .form-field select, .form-field textarea { width:100%;height:43px;border:1px solid var(--line);border-radius:10px;background:white;padding:0 11px;color:var(--ink); font-size:12px; transition:.14s ease; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color:var(--accent); background:white; }
.form-field textarea { height:80px;padding:11px;resize:vertical; }
.entry-edit-modal { width:min(1100px,100%); }
.parcel-editor { margin-top:18px; padding:16px; border:1px solid var(--line); border-radius:14px; background:#fcfdfd; }
.edit-grid-heading { display:flex; align-items:center; gap:10px; margin:0 0 12px; }
.edit-grid-heading > div { display:flex; flex-direction:column; gap:3px; }
.edit-grid-heading strong { font-size:13px; }
.edit-grid-heading small { color:var(--muted); font-size:10px; }
.edit-grid-heading span { color:var(--muted); font-size:11px; margin-right:auto; }
.edit-grid { min-width:940px; }
.edit-grid input, .edit-grid select { width:100%; min-width:92px; border:1px solid var(--line); border-radius:7px; padding:6px; font-size:10px; }
.edit-grid td { height:auto; }
.history-list { display:grid; gap:8px; }
.history-list article { display:flex; justify-content:space-between; gap:12px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:12px; }
.history-list strong { text-transform:capitalize; font-size:11px; }
.history-list small { color:var(--muted); font-size:10px; }

/* Custom Form Components from Prototype */
.money-input { display:flex;height:43px;border:1px solid var(--line);border-radius:10px;align-items:center;padding-left:11px;background:white;transition:.14s ease; }
.money-input:focus-within { border-color:var(--accent); }
.money-input span { color:var(--muted);font-weight:700;font-size:12px;margin-right:4px; }
.money-input input { border:0;outline:0;width:100%;height:100%;font-size:13px;font-weight:700;color:var(--ink);background:transparent;padding:0; }

.toggle-row { display:flex;align-items:center;gap:11px;margin-top:17px;padding:13px;background:var(--soft);border-radius:11px;cursor:pointer; }
.toggle-row input { position:absolute;opacity:0; }
.toggle-row > span { width:38px;height:22px;border-radius:20px;background:#c8d0cd;position:relative;flex:0 0 38px;transition:.2s; }
.toggle-row > span::after { content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:white;top:3px;left:3px;transition:.2s; }
.toggle-row input:checked + span { background:var(--accent); }
.toggle-row input:checked + span::after { transform:translateX(16px); }
.toggle-row div { display:flex;flex-direction:column; }
.toggle-row strong { font-size:11px;color:var(--ink); }
.toggle-row small { color:var(--muted);font-size:9px;margin-top:3px; }

.payment-highlight { background:var(--soft);border-radius:13px;padding:16px;margin-bottom:18px;display:grid;grid-template-columns:1fr auto;gap:6px; }
.payment-highlight > span { font-weight:700;font-size:13px; }
.payment-highlight > strong { font-size:20px;font-variant-numeric:tabular-nums; }
.payment-highlight > small { grid-column:1/-1;color:var(--muted);font-size:10px; }

.upload-zone { width:100%;min-height:80px;border:1px dashed #b9c8c3;border-radius:12px;background:#fbfcfc;margin-top:15px;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;color:var(--accent);transition:.14s ease; }
.upload-zone:hover { border-color:var(--accent);background:var(--accent-faint); }
.upload-zone.uploaded { border-style:solid;background:var(--positive-soft);color:var(--positive);border-color:var(--positive); }
.upload-zone span { display:flex;flex-direction:column;text-align:left;color:var(--ink); }
.upload-zone strong { font-size:11px; }
.upload-zone small { color:var(--muted);font-size:9px;margin-top:3px; }

.info-callout { display:flex;gap:9px;background:var(--accent-soft);color:var(--accent-strong);border-radius:11px;padding:12px;margin-bottom:17px;font-size:11px;line-height:1.5;align-items:center; }
.info-callout .icon { width:17px; }

.center-dialog { text-align:center;padding:16px 20px; }
.center-dialog .dialog-icon { width:58px;height:58px;border-radius:17px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin:0 auto 18px; }
.center-dialog .dialog-icon .icon { width:27px;height:27px; }
.center-dialog p { color:var(--muted);font-size:12px;line-height:1.6;max-width:470px;margin:0 auto; }

/* Filter Section & Format Switcher */
.filter-section { border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 16px; }
.filter-section-title { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; display: block; }
.preset-pills { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.preset-pill { border: 1px solid var(--line); background: var(--soft); border-radius: 20px; padding: 6px 12px; font-size: 11px; font-weight: 700; cursor: pointer; color: var(--ink); transition: .14s ease; }
.preset-pill:hover { background: white; border-color: var(--accent); color: var(--accent); }
.preset-pill.active { background: var(--accent); color: white; border-color: var(--accent); }
.format-switcher { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 10px; }
.format-card { border: 2px solid var(--line); border-radius: 12px; padding: 14px; text-align: center; cursor: pointer; transition: .14s ease; }
.format-card.active { border-color: var(--accent); background: var(--accent-faint); }
.format-card strong { display: block; font-size: 13px; margin-bottom: 4px; }
.format-card small { color: var(--muted); font-size: 10px; }

/* Toast */
.toast { position:fixed;right:22px;bottom:30px;background:#14241f;color:white;border-radius:13px;padding:13px 16px;display:flex;align-items:center;gap:11px;box-shadow:0 15px 35px rgba(0,0,0,.2);z-index:110;animation:rise .22s ease; }
.toast > .icon { color:#77d6b5; width:20px; height:20px; }
.toast span { display:flex;flex-direction:column; }
.toast strong { font-size:11px; }
.toast small { color:#a9bbb5;font-size:9px;margin-top:2px; }

/* Loja e PDV - Variant B */
.store-nav { display:flex; gap:6px; overflow-x:auto; padding-bottom:14px; margin:-10px 0 18px; border-bottom:1px solid var(--line); }
.store-nav button { white-space:nowrap; border:1px solid var(--line); border-radius:9px; background:white; color:var(--muted); padding:8px 11px; font-size:11px; font-weight:700; cursor:pointer; }
.store-nav button.active { background:var(--accent); border-color:var(--accent); color:white; }
.store-heading { margin-bottom:18px; }
.store-shortcuts { color:var(--muted); font-size:11px; font-weight:700; }
.store-state { min-height:130px; display:grid; place-content:center; justify-items:center; gap:9px; padding:24px; border:1px dashed var(--line); border-radius:16px; color:var(--muted); text-align:center; font-size:12px; background:white; }
.store-state strong { color:var(--ink); font-size:14px; }
.store-state.error { border-color:#efbbb4; background:var(--danger-soft); color:#853a32; }
.pdv-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.8fr); gap:18px; align-items:start; }
.pdv-products, .pdv-cart, .store-form, .store-summary { padding:18px; }
.pdv-search { height:48px; display:flex; align-items:center; gap:10px; padding:0 13px; border:2px solid var(--accent); border-radius:12px; background:var(--accent-faint); color:var(--accent); }
.pdv-search input { width:100%; border:0; outline:0; background:transparent; font-size:13px; }
.product-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:10px; padding-top:15px; max-height:min(34vh,320px); overflow-y:auto; align-content:start; }
.product-grid > .store-state { grid-column:1/-1; }
.product-card { min-height:130px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; border:1px solid var(--line); border-radius:13px; background:white; padding:13px; text-align:left; cursor:pointer; }
.product-card:hover { border-color:var(--accent); background:var(--accent-faint); }
.product-card strong { font-size:12px; }.product-card small,.product-card em { color:var(--muted); font-size:10px; font-style:normal; }.product-card span { margin-top:auto; color:var(--accent-strong); font-size:14px; font-weight:800; }
.pdv-cart-inline { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.cart-lines { display:grid; margin:14px -3px; }.cart-lines > div { display:grid; grid-template-columns:minmax(0,1fr) 90px auto; align-items:center; gap:8px; padding:12px 3px; border-bottom:1px solid var(--line); }.cart-lines span { display:grid; gap:3px; min-width:0; }.cart-lines b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }.cart-lines small,.cart-lines em { color:var(--muted); font-size:10px; font-style:normal; }.cart-lines em.stock-alert { color:var(--danger); font-weight:700; }.cart-lines label { display:grid; grid-template-columns:24px 1fr 24px; }.cart-lines label button,.cart-lines input { height:28px; border:1px solid var(--line); background:white; text-align:center; }.cart-lines label button { cursor:pointer; }.cart-lines input { min-width:0; width:100%; border-inline:0; font-size:11px; }.cart-lines > div > strong { display:grid; gap:2px; justify-items:end; font-size:12px; white-space:nowrap; }.cart-lines > div > strong small { font-size:8px; text-transform:uppercase; }
.pdv-total { display:grid; grid-template-columns:1fr auto; gap:4px; padding:14px; border-radius:12px; background:#143e35; color:white; }.pdv-total strong { font-size:23px; }.pdv-total small { grid-column:1/-1; color:#b8d8cf; font-size:10px; }
.payment-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:14px; }.payment-choice { min-width:0; min-height:58px; display:flex; justify-content:space-between; align-items:center; gap:8px; border:1px solid var(--line); border-radius:11px; padding:10px 12px; background:white; cursor:pointer; text-align:left; }.payment-choice-multiple { grid-column:1/-1; }.payment-choice:hover,.payment-choice.active { border-color:var(--accent); background:var(--accent-faint); color:var(--accent-strong); }.payment-choice strong { font-size:12px; }.payment-choice small { color:var(--muted); font-size:9px; }.payment-summary { display:grid; gap:7px; margin-top:12px; }.payment-summary > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px; border:1px solid var(--line); border-radius:10px; background:var(--soft); }.payment-summary span { min-width:0; display:grid; gap:3px; }.payment-summary strong { font-size:11px; }.payment-summary small,.payment-empty { color:var(--muted); font-size:9px; }.payment-summary b { white-space:nowrap; font-size:11px; }.pdv-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }.pdv-actions .button { flex:1; }
.form-field output { min-height:43px; display:flex; align-items:center; padding:0 11px; border:1px solid var(--line); border-radius:10px; background:var(--soft); font-size:14px; font-weight:800; }.form-warning { margin:12px 0 0; color:var(--danger); font-size:11px; font-weight:700; }
.mixed-payment-list { display:grid; gap:9px; margin-top:16px; }.mixed-payment-row { display:grid; grid-template-columns:minmax(180px,1fr) 130px minmax(180px,.8fr); gap:10px; align-items:end; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--soft); }.mixed-payment-row > label,.mixed-payment-extra label { display:grid; gap:5px; color:var(--muted); font-size:9px; font-weight:700; }.mixed-payment-row input,.mixed-payment-row select { width:100%; height:38px; border:1px solid var(--line); border-radius:9px; padding:0 9px; background:white; color:var(--ink); }.mixed-payment-row input:disabled,.mixed-payment-row select:disabled { opacity:.5; }.mixed-payment-toggle { display:flex !important; align-items:center; gap:9px; min-height:38px; cursor:pointer; }.mixed-payment-toggle input { width:18px; height:18px; flex:0 0 auto; }.mixed-payment-toggle span { display:grid; gap:3px; }.mixed-payment-toggle strong { color:var(--ink); font-size:12px; }.mixed-payment-toggle small { color:var(--muted); font-size:9px; }.mixed-payment-extra { display:flex; align-items:end; gap:10px; }.mixed-payment-extra label { flex:1; }.mixed-payment-extra > span { min-height:38px; display:grid; align-content:center; color:var(--muted); font-size:9px; }.mixed-payment-extra output { color:var(--ink); font-size:11px; font-weight:800; }.mixed-payment-balance { display:grid; grid-template-columns:1fr auto; gap:3px; margin-top:12px; padding:12px 14px; border-radius:11px; background:#143e35; color:white; }.mixed-payment-balance span,.mixed-payment-balance small { font-size:9px; }.mixed-payment-balance strong { font-size:15px; }.mixed-payment-balance small { grid-column:1/-1; color:#b8d8cf; }
.store-panel-heading { padding:18px 18px 0; }.store-summary { margin-top:18px; }.store-summary h2 { margin:0 0 10px; font-size:16px; }.store-summary pre { max-height:290px; overflow:auto; padding:12px; border-radius:10px; background:var(--soft); color:var(--muted); font:11px/1.5 ui-monospace,Consolas,monospace; white-space:pre-wrap; word-break:break-word; }
.store-operator { width:min(560px, 100%); margin:40px auto; padding:28px; }.store-operator > .brand { margin-bottom:28px; }.store-operator h1 { margin:6px 0 8px; font-size:28px; }.store-operator > p { color:var(--muted); font-size:13px; line-height:1.5; }.store-operator form .login-button { margin-top:18px; }.operator-lock-link { display:block; margin:18px auto 0; }.reconciliation-list { display:grid; gap:0; margin:14px 0 0; }.reconciliation-list div { display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-top:1px solid var(--line); font-size:12px; }.reconciliation-list dt { color:var(--muted); }.reconciliation-list dd { margin:0; font-weight:800; }
.store-setup-callout { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; padding:17px 18px; border:1px solid #f2dfbb; border-radius:16px; background:#fff9ec; }.store-setup-callout div { display:grid; gap:4px; }.store-setup-callout strong { font-size:13px; }.store-setup-callout span { color:#805b18; font-size:11px; }.store-setup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.setup-list { display:grid; margin-top:16px; }.setup-list > div { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line); }.setup-list span { display:grid; gap:3px; min-width:0; }.setup-list strong { font-size:12px; }.setup-list small { overflow:hidden; color:var(--muted); font:9px ui-monospace,Consolas,monospace; text-overflow:ellipsis; white-space:nowrap; }
.operator-topbar { justify-content:flex-start; }.operator-topbar span { color:var(--muted); font-size:11px; }
.mobile-controls { display:none;align-items:center;gap:6px;margin-left:auto; }
.mobile-controls select { min-width:0;max-width:180px;height:38px;border:1px solid var(--line);border-radius:9px;background:white;padding:0 8px;color:var(--ink);font-size:11px;font-weight:700; }
.pdv-adjustments { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 0; }.pdv-adjustments label,.store-filters label { display:grid; gap:5px; color:var(--muted); font-size:10px; font-weight:700; }.pdv-adjustments input,.store-filters input,.store-filters select { width:100%; height:38px; border:1px solid var(--line); border-radius:9px; padding:0 9px; background:white; color:var(--ink); }
.sale-totals { display:grid; gap:6px; margin:12px 0; }.sale-totals div { display:flex; justify-content:space-between; gap:12px; font-size:11px; }.sale-totals dt { color:var(--muted); }.sale-totals dd { margin:0; font-weight:750; font-variant-numeric:tabular-nums; }
.store-filters { display:grid; grid-template-columns:repeat(5,minmax(120px,1fr)) auto; gap:10px; align-items:end; padding:16px 18px; border-bottom:1px solid var(--line); }.table-actions { display:flex; gap:5px; flex-wrap:wrap; min-width:280px; }.mini-action.danger-action { color:var(--danger); }.report-actions { display:flex; justify-content:flex-end; padding:16px; }.import-errors { margin:16px 0 0; padding:14px 14px 14px 32px; border-radius:10px; background:var(--danger-soft); color:var(--danger); font-size:11px; }
.products-panel { min-width:0; overflow:hidden; }
.products-panel .store-panel-heading p { margin:5px 0 0; color:var(--muted); font-size:11px; font-weight:500; }
.products-panel .store-panel-heading > div { min-width:0; }
.products-panel .store-panel-heading > .button { flex-shrink:0; white-space:nowrap; }
.products-filters { grid-template-columns:minmax(180px,1fr) repeat(3, 130px) auto; }
.price-class { display:inline-block; padding:5px 9px; border-radius:6px; background:var(--soft); font-weight:800; white-space:nowrap; }
.inventory-settings { margin-top:18px; }
.inventory-settings > summary { cursor:pointer; font-size:13px; font-weight:750; color:var(--accent); }
.inventory-settings[open] > summary { margin-bottom:18px; }
.inventory-settings > .button { margin-top:14px; }
.inventory-table-shell { overflow-x:auto; }
.inventory-table { width:100%; min-width:860px; }
.inventory-table .inventory-product { min-width:220px; max-width:360px; white-space:normal; overflow-wrap:anywhere; }
.inventory-table td { vertical-align:middle; }
.inventory-table td small { display:block; margin-top:5px; color:var(--muted); font-size:10px; font-weight:500; }
.inventory-table .inventory-low, .inventory-table .inventory-low small { color:var(--danger); }
.inventory-actions { display:flex; align-items:center; gap:8px; white-space:nowrap; }
.inventory-actions .mini-action { min-height:36px; }
.inventory-actions .icon-button { width:36px; height:36px; }
.correction-meta { display:flex; align-items:center; gap:10px; margin-bottom:14px; color:var(--muted); font-size:10px; font-weight:700; }.correction-products,.correction-payment { margin:18px 0; padding:15px; border:1px solid var(--line); border-radius:14px; background:#fcfdfd; }.correction-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin:13px 0 8px; }.correction-search input,.correction-item input,.correction-item select { width:100%; min-width:0; height:38px; border:1px solid var(--line); border-radius:9px; padding:0 9px; background:white; }.correction-results { display:flex; gap:6px; overflow-x:auto; padding-bottom:8px; }.correction-results button { flex:0 0 auto; border:1px solid var(--line); border-radius:9px; padding:7px 9px; background:white; font-size:10px; cursor:pointer; }.correction-results button:hover { border-color:var(--accent); color:var(--accent); }.correction-results small { color:var(--muted); }.correction-items { display:grid; gap:8px; margin-top:8px; }.correction-item { display:grid; grid-template-columns:minmax(180px,1.5fr) 90px 130px auto 36px; gap:7px; align-items:end; padding:10px; border:1px solid var(--line); border-radius:11px; background:white; }.correction-item label { min-width:0; display:grid; gap:5px; color:var(--muted); font-size:9px; font-weight:700; }.correction-item > strong { min-height:38px; display:flex; align-items:center; justify-content:flex-end; white-space:nowrap; font-size:11px; }.correction-item .icon-button { width:36px; height:38px; border-color:var(--line); }.correction-totals div:last-child { padding-top:8px; border-top:1px solid var(--line); font-size:14px; }.correction-history { margin-top:16px; }.correction-history summary { cursor:pointer; color:var(--accent); font-size:11px; font-weight:750; }.correction-history .history-list { margin-top:10px; }

@keyframes fade { from { opacity:0; } }
@keyframes rise { from { opacity:0;transform:translateY(8px) scale(.99); } }
@keyframes menu-in { from { opacity:0; transform:translateY(-4px) scale(.98); } }

/* Responsive Breakpoints */
@media (max-width: 1180px) {
  .variant-a { grid-template-columns:78px 1fr; }
  .sidebar-a { padding-inline:10px; }
  .sidebar-a .brand > span:last-child, .sidebar-a .nav-item span, .sidebar-a .nav-chevron, .sidebar-a .user-chip div { display:none; }
  .sidebar-a .nav-group h2, .sidebar-a .store-nav-children { display:none; }
  .sidebar-a > .brand { padding-inline:8px;justify-content:center; }
  .sidebar-a .nav-item { justify-content:center;padding:0; }
  .sidebar-a .nav-item.active::before { left:-10px; }
  .user-chip { justify-content:center; }
  .metrics-grid { grid-template-columns:1fr 1fr; }
  .dashboard-grid { grid-template-columns:1fr; }
  .store-filters { grid-template-columns:repeat(3,1fr); }
}

@media (max-width: 760px) {
  .variant-a { display:block; }
  .sidebar-a { position:fixed;top:auto;bottom:0;width:100%;height:66px;border:0;border-top:1px solid var(--line);padding:6px 8px;z-index:20; }
  .sidebar-a > .brand, .sidebar-bottom { display:none; }
  .sidebar-a nav { margin:0;display:grid;grid-template-columns:repeat(8,1fr);gap:1px;width:100%;overflow-x:auto; }
  .sidebar-a .nav-group { display:contents; }
  .sidebar-a .nav-group h2, .sidebar-a .store-nav-children { display:none; }
  .sidebar-a .nav-item { height:52px;min-height:52px;justify-content:center; }
  .sidebar-a .nav-item::before { display:none; }
  .topbar { height:58px;padding:0 15px; }
  .top-search, .workspace-switch small { display:none; }
  .page-content { padding:22px 15px 115px; }
  .page-heading { align-items:flex-start;flex-direction:column;margin-bottom:18px; }
  .page-heading h1 { font-size:27px; }
  .heading-actions { width:100%; }
  .heading-actions .button { flex:1; }
  .metrics-grid, .submetrics { grid-template-columns:1fr; }
  .metrics-grid-three { grid-template-columns:1fr; }
  .dashboard-grid { grid-template-columns:1fr; }
  .filter-row { flex-wrap:wrap; }
  .search-box { flex-basis:100%; }
  .filter-chips { overflow-x:auto;width:100%; }
  .recurrence-grid { grid-template-columns:1fr; }
  .recurrence-intro { padding:20px; }
  .calendar-stack { padding:0; }
  .calendar-stack > .icon { display:none; }
  .login-page { padding: 16px; }
  .login-card-compact { padding: 24px 20px 18px; }
  .modal-backdrop { padding:0;align-items:end; }
  .modal { max-height:92vh;border-radius:20px 20px 0 0; }
  .form-grid { grid-template-columns:1fr; }
  .form-field.span-2 { grid-column:span 1; }
  .finance-table-shell { display:none; }
  .finance-card-list { display:grid; gap:10px; padding:12px; }
  .empty-card-list { margin:8px 2px; color:var(--muted); font-size:12px; }
  .finance-card { display:grid; gap:12px; padding:15px; border:1px solid var(--line); border-radius:14px; background:white; box-shadow:0 4px 12px rgba(35,58,52,.03); }
  .finance-card-heading, .finance-card-main, .finance-card > footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .finance-card-heading > div { min-width:0; display:grid; gap:4px; }
  .finance-card-heading strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
  .finance-card-heading small, .finance-card-main small { color:var(--muted); font-size:10px; }
  .finance-card-main { align-items:flex-end; }
  .finance-card-main > div { display:grid; gap:4px; }
  .finance-card-main .amount { font-size:15px; }
  .finance-card details { border-top:1px solid var(--line); padding-top:10px; }
  .finance-card summary { cursor:pointer; color:var(--accent); font-size:10px; font-weight:750; }
  .finance-card details > div { display:grid; gap:5px; margin-top:9px; color:var(--muted); font-size:10px; }
  .finance-card > footer { border-top:1px solid var(--line); padding-top:11px; justify-content:flex-end; }
  .action-menu { right:15px!important; bottom:76px; top:auto!important; left:auto!important; width:min(250px, calc(100vw - 30px))!important; }
  .topbar > .workspace-switch, .topbar > .top-actions-right, .operator-topbar > span { display:none; }
  .mobile-controls { display:flex; }
  .security-hero { grid-template-columns:1fr; }
  .security-hero + div { flex-wrap:wrap; }
  .entry-edit-modal { width:100%; }
  .parcel-editor { padding:12px; }
  .edit-grid-heading { align-items:flex-start; flex-wrap:wrap; }
  .edit-grid-heading span { margin-right:auto; }
  .edit-grid { min-width:0; }
  .edit-grid thead { display:none; }
  .edit-grid, .edit-grid tbody, .edit-grid tr, .edit-grid td { display:block; width:100%; }
  .edit-grid tr { display:grid; gap:8px; margin-bottom:10px; padding:12px; border:1px solid var(--line); border-radius:11px; background:white; }
  .edit-grid td { min-height:0; padding:0; border:0; }
  .edit-grid td:first-child { color:var(--muted); font-size:10px; font-weight:750; }
  .edit-grid td:not(:first-child):not(:last-child) { display:grid; grid-template-columns:88px minmax(0, 1fr); align-items:center; gap:8px; }
  .edit-grid td:nth-child(2)::before { content:"Valor"; }
  .edit-grid td:nth-child(3)::before { content:"Vencimento"; }
  .edit-grid td:nth-child(4)::before { content:"Previsão"; }
  .edit-grid td:nth-child(5)::before { content:"Forma"; }
  .edit-grid td:nth-child(6)::before { content:"Conta"; }
  .edit-grid td:nth-child(7)::before { content:"Observações"; }
  .edit-grid td:not(:first-child):not(:last-child)::before { color:var(--muted); font-size:9px; font-weight:750; text-transform:uppercase; }
  .operator-fields { grid-template-columns:1fr; }
  .operator-fields .login-field-label:first-child { grid-column:auto; }
    .pdv-layout, .store-setup-grid { grid-template-columns:1fr; }.pdv-cart { position:static; }.product-grid { grid-template-columns:1fr; max-height:280px; }.store-shortcuts { display:none; }.store-nav { margin-top:0; }.store-setup-callout { align-items:flex-start; flex-direction:column; }.store-filters { grid-template-columns:1fr 1fr; }.products-filters { grid-template-columns:1fr; }.store-filters .button { width:100%; }.pdv-adjustments { grid-template-columns:1fr; }.products-panel .store-panel-heading { align-items:flex-start; flex-direction:column; gap:12px; }.products-panel .store-panel-heading .button { width:100%; }.cart-lines > div { grid-template-columns:minmax(0,1fr) 86px; }.cart-lines > div > strong { grid-column:1/-1; justify-items:start; }.payment-choices { grid-template-columns:1fr 1fr; }.correction-search,.correction-item { grid-template-columns:1fr; }.correction-item > strong { justify-content:flex-start; }.correction-item .icon-button { width:100%; }.mixed-payment-row { grid-template-columns:1fr 110px; }.mixed-payment-extra { grid-column:1/-1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
