/* ==========================================================================
   Loja VIP BT — identidade sobre o Tabler 1.6.1
   Preto/branco da marca VIP BT, fundo areia; cor reservada para estados
   e para as séries dos gráficos.
   ========================================================================== */

/* ---------- Fontes locais ---------- */
@font-face { font-family: "Inter Var"; src: url("../vendor/fonts/inter-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../vendor/fonts/barlow-condensed-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../vendor/fonts/barlow-condensed-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Barlow Condensed"; src: url("../vendor/fonts/barlow-condensed-latin-800-normal.woff2") format("woff2"); font-weight: 800; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
  --lv-ink: #0a0a0a;
  --lv-ink-2: #1c1c1c;
  --lv-paper: #fff;
  --lv-sand: #f4f3ef;
  --lv-sand-2: #ebe9e3;
  --lv-line: #e7e5df;
  --lv-muted: #6e6c66;

  /* Estados (com texto e ícone sempre ao lado) */
  --lv-ok: #18764a;     --lv-ok-bg: #e5f4ec;
  --lv-warn: #9a6200;   --lv-warn-bg: #fdf1d8;   --lv-warn-mark: #b7791f;
  --lv-bad: #c42f33;    --lv-bad-bg: #fce9e9;    --lv-bad-mark: #d03b3f;
  --lv-info: #2563c9;   --lv-info-bg: #e7effc;
  --lv-diamond: #5b5bd6; --lv-diamond-bg: #ecebfd;
  --lv-neutral-bg: #efeee9;

  /* Séries do gráfico (paleta categórica validada, slots 1 e 2) */
  --lv-series-1: #2a78d6;
  --lv-series-2: #eb6834;
  --lv-seq: #3b3a36;

  --lv-display: "Barlow Condensed", "Inter Var", Impact, sans-serif;
  --lv-radius: 12px;
  --lv-ease: cubic-bezier(.2, .7, .2, 1);
}

:root,
[data-bs-theme=light] {
  --tblr-font-sans-serif: "Inter Var", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --tblr-primary: #0a0a0a;
  --tblr-primary-rgb: 10, 10, 10;
  --tblr-primary-fg: #fff;
  --tblr-body-bg: var(--lv-sand);
  --tblr-body-color: #1d1d1b;
  --tblr-secondary-color: var(--lv-muted);
  --tblr-border-color: var(--lv-line);
  --tblr-link-color: #0a0a0a;
  --tblr-link-color-rgb: 10, 10, 10;
  --tblr-border-radius: 10px;
  --tblr-card-border-radius: var(--lv-radius);
  --tblr-sidebar-width: 16.5rem;
  --tblr-sidebar-folded-width: 4.5rem;
}

body { font-feature-settings: "cv11", "ss01"; -webkit-font-smoothing: antialiased; }
a { text-underline-offset: 3px; }
.container-xl { --tblr-gutter-x: 2rem; } /* mínimo de 16px de cada lado */
:focus-visible { outline: 2px solid var(--lv-ink); outline-offset: 2px; }
.form-control:focus-visible, .form-select:focus-visible { outline: 0; }
.icon { width: 1.2em; height: 1.2em; stroke-width: 1.75; vertical-align: -0.2em; }
.card { border-color: var(--lv-line); box-shadow: 0 1px 2px rgba(10, 10, 10, .04); }
.card-header { border-bottom-color: var(--lv-line); }
.card-subtitle { margin: .15rem 0 0; font-size: .8125rem; color: var(--lv-muted); }
code { color: #3d3c39; background: var(--lv-neutral-bg); padding: .05rem .35rem; border-radius: 5px; }

.lv-skip { position: absolute; z-index: 2000; top: .5rem; left: .5rem; padding: .5rem .75rem; border-radius: 8px; background: #fff; color: #000; }
#conteudo:focus { outline: 0; }

/* ---------- Botões ---------- */
.btn { gap: .4rem; font-weight: 600; transition: transform .15s var(--lv-ease), background-color .15s, box-shadow .15s; }
.btn:active { transform: scale(.98); }
.btn-dark { --tblr-btn-bg: var(--lv-ink); --tblr-btn-border-color: var(--lv-ink); --tblr-btn-hover-bg: #2a2a2a; --tblr-btn-hover-border-color: #2a2a2a; }
.btn-outline-dark { --tblr-btn-color: var(--lv-ink); --tblr-btn-border-color: #cfccc3; --tblr-btn-hover-bg: var(--lv-ink); --tblr-btn-hover-border-color: var(--lv-ink); }
.btn-outline-secondary { --tblr-btn-color: #3d3c39; --tblr-btn-border-color: #d9d6ce; --tblr-btn-bg: #fff; --tblr-btn-hover-bg: var(--lv-sand-2); --tblr-btn-hover-color: var(--lv-ink); --tblr-btn-hover-border-color: #cfccc3; }
.lv-btn-label { display: inline-flex; align-items: center; gap: .4rem; }
.btn.is-loading { position: relative; pointer-events: none; opacity: .85; }
.btn.is-loading .lv-btn-label { visibility: hidden; }
.btn.is-loading::after {
  content: ""; position: absolute; inset: 0; margin: auto; width: 1.1rem; height: 1.1rem; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent; animation: lv-spin .7s linear infinite;
}
@keyframes lv-spin { to { transform: rotate(360deg); } }

/* ---------- Menu lateral ---------- */
.lv-sidebar { --tblr-navbar-bg: var(--lv-ink); background: var(--lv-ink) !important; border-right: 0; }
.lv-sidebar .navbar-nav { --tblr-sidebar-nav-padding-x: .75rem; }
.lv-brand { padding-block: 1rem !important; }
.lv-brand__link { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: #fff; }
.lv-brand__link img { height: 28px; width: auto; }
.lv-brand__name {
  padding-left: .65rem; border-left: 1px solid rgba(255, 255, 255, .25);
  font-family: var(--lv-display); font-weight: 600; font-size: 1.15rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .85);
}
.lv-sidebar .nav-section-title { margin-top: .85rem; font-size: .6875rem; letter-spacing: .14em; color: rgba(255, 255, 255, .42); }
.lv-sidebar .nav-link { padding-block: .4rem; border-radius: 8px; margin-block: 1px; color: rgba(255, 255, 255, .78); font-size: .875rem; }
.lv-sidebar .nav-link:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.lv-sidebar .nav-link.active { background: rgba(255, 255, 255, .12); color: #fff; font-weight: 600; box-shadow: inset 3px 0 0 #fff; }
.lv-sidebar .nav-link-icon { color: inherit; opacity: .9; }
.lv-soon { cursor: default; color: rgba(255, 255, 255, .38) !important; }
.lv-soon:hover { background: transparent !important; }
.lv-soon__tag {
  margin-left: auto; padding: .05rem .4rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .16);
  font-size: .625rem; font-weight: 600; letter-spacing: .04em; color: rgba(255, 255, 255, .45);
}
.lv-sidebar .navbar-footer { border-top-color: rgba(255, 255, 255, .1); }
.lv-sidebar .navbar-toggler { color: #fff; border: 1px solid rgba(255, 255, 255, .2); border-radius: 8px; padding: .35rem .45rem; }
.lv-demo-pill { margin-left: auto; margin-right: .5rem; padding: .15rem .55rem; border-radius: 999px; background: rgba(255, 255, 255, .12); color: #fff; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }

/* Recolhido (nativo do Tabler: html[data-bs-sidebar="folded-hover"]; expande ao passar o mouse) */
.lv-when-folded { display: none; }
html[data-bs-sidebar^=folded] .lv-when-open { display: none; }
html[data-bs-sidebar^=folded] .lv-when-folded { display: inline-block; }
@media (min-width: 992px) {
  html[data-bs-sidebar^=folded] .lv-sidebar:not(:hover):not(:has(:focus-visible)) .lv-hide-folded { display: none; }
  html[data-bs-sidebar^=folded] .lv-sidebar:not(:hover):not(:has(:focus-visible)) .lv-brand { justify-content: center; }
  html[data-bs-sidebar^=folded] .lv-sidebar:not(:hover):not(:has(:focus-visible)) .nav-link { justify-content: center; }
}
@media (max-width: 991.98px) {
  .lv-sidebar .navbar-collapse .navbar-nav { padding-bottom: .75rem; }
  .lv-brand { padding-block: .6rem !important; }
}

/* ---------- Barra superior ---------- */
.lv-topbar { position: sticky; top: 0; z-index: 1020; background: rgba(255, 255, 255, .92); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--lv-line); }
.lv-topbar__inner { display: flex; align-items: center; gap: .75rem; min-height: 56px; }
.lv-topbar__end { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.lv-topbar__date { font-size: .8125rem; color: var(--lv-muted); }
.lv-icon-btn { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 8px; background: transparent; color: #3d3c39; }
.lv-icon-btn:hover { background: var(--lv-sand); color: var(--lv-ink); }
.lv-demo-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .65rem; border-radius: 999px; background: var(--lv-warn-bg); color: var(--lv-warn); font-size: .75rem; font-weight: 600; white-space: nowrap; }
.lv-user { display: flex; align-items: center; gap: .6rem; }
.lv-user__name { flex-direction: column; line-height: 1.15; font-size: .8125rem; font-weight: 600; }
.lv-user__name small { font-weight: 400; color: var(--lv-muted); }
.lv-avatar { --tblr-avatar-bg: var(--lv-ink); color: #fff; font-weight: 600; font-size: .7rem; letter-spacing: .02em; }
@media (max-width: 991.98px) { .lv-topbar { position: static; } }

.page-body { margin-top: 1.5rem; margin-bottom: 2rem; }
.lv-footer { padding: 1rem 0 1.5rem; font-size: .75rem; color: #a3a097; }

/* ---------- Cabeçalho de página ---------- */
.lv-page-header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.lv-page-header .page-pretitle { font-size: .6875rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--lv-muted); }
.lv-page-title { margin: .15rem 0 0; font-family: var(--lv-display); font-weight: 700; font-size: 2rem; line-height: 1; letter-spacing: .01em; text-transform: uppercase; color: var(--lv-ink); }
.lv-page-header__context { margin: .4rem 0 0; font-size: .875rem; color: var(--lv-muted); }
.lv-page-header__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.lv-page-header__actions > form[method="post"]:not(:has(button)) { display: none; } /* formulários acionados pelo modal de confirmação */
@media (max-width: 575.98px) {
  .lv-page-title { font-size: 1.65rem; }
  .lv-page-header__actions { width: 100%; }
  .lv-page-header__actions > .btn { flex: 1 1 auto; }
}

.lv-section-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; margin: 0 0 .75rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #3d3c39; }
.lv-section-title small { font-size: .75rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--lv-muted); }

/* Seletor de competência */
.lv-period { display: inline-flex; align-items: center; gap: .35rem; }
.lv-period__label { min-width: 11.5rem; justify-content: space-between; }
.lv-period .dropdown-menu { max-height: 320px; overflow-y: auto; }

/* ---------- Notas e alertas ---------- */
.lv-note { display: flex; align-items: flex-start; gap: .6rem; padding: .7rem .9rem; border-radius: 10px; background: var(--lv-paper); border: 1px dashed #d6d3ca; font-size: .8125rem; color: #4d4b46; }
.lv-note .icon { flex-shrink: 0; margin-top: 1px; color: var(--lv-muted); }
.lv-footnote { display: flex; align-items: flex-start; gap: .4rem; font-size: .75rem; color: var(--lv-muted); }
.lv-footnote .icon { flex-shrink: 0; width: 1rem; height: 1rem; margin-top: 1px; }
.lv-alert { display: flex; gap: .75rem; align-items: flex-start; }
.lv-alert__icon { flex-shrink: 0; width: 1.35rem; height: 1.35rem; margin-top: 1px; }
.lv-alert__title { margin: 0 0 .25rem; font-size: .9375rem; font-weight: 700; }
.lv-alert small { display: block; margin-top: .35rem; opacity: .8; }

/* ---------- Indicadores (KPI) ---------- */
.lv-kpi { height: 100%; }
.lv-kpi .card-body { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.1rem; }
.lv-kpi__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
.lv-kpi__label { font-size: .8125rem; font-weight: 600; color: #4d4b46; line-height: 1.25; }
.lv-kpi__icon { display: grid; place-items: center; flex-shrink: 0; width: 30px; height: 30px; border-radius: 8px; background: var(--lv-sand); color: #3d3c39; }
.lv-kpi__icon .icon { width: 1.05rem; height: 1.05rem; }
.lv-kpi__value { font-family: var(--lv-display); font-weight: 700; font-size: 1.85rem; line-height: 1.05; letter-spacing: .005em; color: var(--lv-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.lv-kpi__foot { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin-top: auto; font-size: .75rem; color: var(--lv-muted); }
.lv-kpi__hint { font-size: .75rem; color: var(--lv-muted); }
.lv-delta { display: inline-flex; align-items: center; gap: .15rem; padding: .05rem .4rem; border-radius: 999px; font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-delta .icon { width: .85rem; height: .85rem; stroke-width: 2.25; }
.lv-delta.is-good { background: var(--lv-ok-bg); color: var(--lv-ok); }
.lv-delta.is-bad { background: var(--lv-bad-bg); color: var(--lv-bad); }
@media (max-width: 575.98px) {
  .lv-kpi .card-body { padding: .85rem; }
  .lv-kpi__value { font-size: 1.45rem; }
  .lv-kpi__icon { display: none; }
}

/* ---------- Selos de estado ---------- */
.lv-status {
  display: inline-flex; align-items: center; gap: .3rem; padding: .18rem .55rem .18rem .45rem; border-radius: 999px;
  font-size: .75rem; font-weight: 600; line-height: 1.2; white-space: nowrap; vertical-align: middle;
  background: var(--lv-neutral-bg); color: #4d4b46;
}
.lv-status .icon { width: .9rem; height: .9rem; stroke-width: 2; }
.lv-status--primary { background: var(--lv-ink); color: #fff; }
.lv-status--success { background: var(--lv-ok-bg); color: var(--lv-ok); }
.lv-status--warning { background: var(--lv-warn-bg); color: var(--lv-warn); }
.lv-status--danger { background: var(--lv-bad-bg); color: var(--lv-bad); }
.lv-status--info { background: var(--lv-info-bg); color: var(--lv-info); }
.lv-status--diamond { background: var(--lv-diamond-bg); color: var(--lv-diamond); }

.lv-chip { display: inline-flex; align-items: center; gap: .2rem; margin-left: .35rem; padding: 0 .35rem; border-radius: 6px; border: 1px solid var(--lv-line); font-size: .6875rem; font-weight: 600; color: #4d4b46; background: #fff; }
.lv-chip .icon { width: .8rem; height: .8rem; }

/* ---------- Meta da equipe ---------- */
.lv-goal { display: flex; flex-direction: column; gap: 1rem; }
.lv-goal__numbers { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .75rem; }
.lv-goal__pct { font-family: var(--lv-display); font-weight: 800; font-size: 3rem; line-height: .9; color: var(--lv-ink); font-variant-numeric: tabular-nums; }
.lv-goal__of { font-size: .9rem; color: var(--lv-muted); }
.lv-goal__bar { position: relative; height: 14px; border-radius: 999px; background: var(--lv-sand-2); margin-top: .9rem; }
.lv-goal__fill { position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: var(--lv-ink); }
.lv-goal__proj { position: absolute; top: -6px; bottom: -6px; width: 0; border-left: 2px dashed var(--lv-ink); }
.lv-goal__proj span { position: absolute; bottom: 100%; left: 0; transform: translateX(-50%); padding-bottom: 2px; font-size: .6875rem; font-weight: 600; color: var(--lv-ink); white-space: nowrap; }
.lv-goal__proj.is-end span { transform: translateX(-100%); padding-right: 4px; }
.lv-goal__day { position: absolute; top: 100%; width: 0; height: 6px; border-left: 1px solid #a3a097; }
.lv-goal__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; margin: 0; }
@media (min-width: 768px) { .lv-goal__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.lv-goal__grid dt { font-size: .75rem; font-weight: 500; color: var(--lv-muted); }
.lv-goal__grid dd { margin: .1rem 0 0; font-weight: 700; font-size: 1rem; font-variant-numeric: tabular-nums; }
.lv-goal__grid dd small { font-weight: 500; color: var(--lv-muted); }
.lv-goal__projband { display: block; margin-top: .25rem; }

.lv-brief p { margin-bottom: .75rem; font-size: .9rem; line-height: 1.55; color: #3d3c39; }

/* ---------- Gráfico diário ---------- */
.lv-legend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .8125rem; font-weight: 600; color: #3d3c39; }
.lv-legend small { font-weight: 400; color: var(--lv-muted); }
.lv-legend__key { display: inline-block; width: 10px; height: 10px; margin-right: .4rem; border-radius: 2px; vertical-align: -1px; }
.lv-legend__key--sold { background: var(--lv-series-1); }
.lv-legend__key--recv { background: var(--lv-series-2); }
.lv-chart-card .card-header { flex-wrap: wrap; gap: .5rem; }

.lv-chart { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .5rem; }
.lv-chart__axis { display: flex; flex-direction: column; justify-content: space-between; height: 220px; font-size: .6875rem; color: var(--lv-muted); text-align: right; font-variant-numeric: tabular-nums; transform: translateY(-.4em); }
.lv-chart__plot { position: relative; min-width: 0; }
.lv-chart__grid { position: absolute; inset: 0 0 auto; height: 220px; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.lv-chart__grid span { border-top: 1px solid #efede7; }
.lv-chart__grid span:last-child { border-top-color: #cfccc3; }
.lv-chart__cols { position: relative; display: grid; grid-template-columns: repeat(31, minmax(0, 1fr)); }
.lv-chart__day { display: flex; flex-direction: column; align-items: stretch; padding: 0; border: 0; border-radius: 6px; background: transparent; cursor: pointer; }
.lv-chart__day:hover:not(:disabled), .lv-chart__day:focus-visible, .lv-chart__day.is-hover { background: rgba(10, 10, 10, .04); }
.lv-chart__day:focus-visible { outline-offset: 0; }
.lv-chart__day:disabled { cursor: default; }
.lv-chart__bars { display: flex; align-items: flex-end; justify-content: center; gap: 2px; height: 220px; }
.lv-bar { width: min(9px, 34%); min-height: 0; border-radius: 4px 4px 0 0; transition: filter .12s; }
.lv-bar--sold { background: var(--lv-series-1); }
.lv-bar--recv { background: var(--lv-series-2); }
.lv-chart__day:hover .lv-bar, .lv-chart__day:focus-visible .lv-bar { filter: brightness(1.12); }
.lv-chart__day.is-future .lv-chart__bars { background: repeating-linear-gradient(135deg, transparent 0 5px, #f3f1ec 5px 6px); }
.lv-chart__x { padding-top: .35rem; font-size: .6875rem; color: var(--lv-muted); text-align: center; font-variant-numeric: tabular-nums; }
@media (max-width: 767.98px) {
  .lv-chart__day:not(:nth-child(5n + 1)) .lv-chart__x { visibility: hidden; }
  .lv-bar { width: 42%; border-radius: 2px 2px 0 0; }
  .lv-chart__bars { gap: 1px; }
}
.lv-chart__tip {
  position: absolute; z-index: 5; top: 0; min-width: 12rem; padding: .6rem .75rem; border-radius: 10px;
  background: var(--lv-ink); color: #fff; font-size: .8125rem; box-shadow: 0 8px 24px rgba(0, 0, 0, .18); pointer-events: none;
}
.lv-chart__tip-title { margin-bottom: .35rem; font-size: .75rem; color: rgba(255, 255, 255, .7); }
.lv-chart__tip-row { display: flex; align-items: center; gap: .5rem; }
.lv-chart__tip-row strong { margin-left: auto; padding-left: 1rem; font-variant-numeric: tabular-nums; }
.lv-chart__tip-key { width: 12px; height: 2px; border-radius: 1px; }
.lv-table-toggle { margin-top: 1rem; font-size: .8125rem; }
.lv-table-toggle summary { cursor: pointer; color: var(--lv-muted); font-weight: 600; }
.lv-table-toggle .table { margin-top: .5rem; max-width: 28rem; }
.lv-table-num td, .lv-table-num th { font-variant-numeric: tabular-nums; }

/* Modal do dia */
.lv-day__totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1.25rem; }
.lv-day__totals div { padding: .75rem; border-radius: 10px; background: var(--lv-sand); }
.lv-day__totals span { display: block; font-size: .75rem; color: var(--lv-muted); }
.lv-day__totals strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.lv-day h3 { margin: 1rem 0 .5rem; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #3d3c39; }
.lv-day__empty { margin: 0; font-size: .875rem; color: var(--lv-muted); }

/* ---------- Vendedores e categorias ---------- */
.lv-person { display: flex; align-items: center; gap: .6rem; font-weight: 600; white-space: nowrap; }
.lv-sellers td, .lv-sellers th { white-space: nowrap; }
.lv-sellers__goal { min-width: 14rem; }
.lv-sellers__goaltext { display: flex; align-items: center; gap: .4rem; margin-top: .3rem; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.lv-minibar { height: 6px; border-radius: 999px; background: var(--lv-sand-2); overflow: hidden; }
.lv-minibar__fill { display: block; height: 100%; border-radius: 999px; }
.lv-tone-danger { background: var(--lv-bad-mark); }
.lv-tone-warning { background: var(--lv-warn-mark); }
.lv-tone-success { background: var(--lv-ok); }
.lv-tone-diamond { background: var(--lv-diamond); }
.lv-tone-neutral { background: #a3a097; }

.lv-catbars { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.lv-catbars__head { display: flex; justify-content: space-between; gap: .5rem; font-size: .875rem; }
.lv-catbars__head strong { font-variant-numeric: tabular-nums; }
.lv-catbars__track { height: 8px; margin: .35rem 0 .2rem; border-radius: 999px; background: var(--lv-sand-2); overflow: hidden; }
.lv-catbars__track span { display: block; height: 100%; border-radius: 999px; background: var(--lv-seq); }
.lv-catbars small { font-size: .75rem; color: var(--lv-muted); }

/* ---------- Registro de vendas ---------- */
.lv-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 992px) { .lv-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.lv-stat { display: flex; flex-direction: column; padding: .8rem 1rem; border-radius: var(--lv-radius); background: #fff; border: 1px solid var(--lv-line); }
.lv-stat span { font-size: .75rem; font-weight: 600; color: var(--lv-muted); }
.lv-stat strong { font-family: var(--lv-display); font-size: 1.5rem; font-weight: 700; line-height: 1.15; font-variant-numeric: tabular-nums; }
.lv-stat small { font-size: .75rem; color: var(--lv-muted); }

.lv-filters .card-body { display: flex; flex-direction: column; gap: .9rem; padding: 1rem; }
.lv-filters__main { display: flex; gap: .5rem; }
.lv-filters__search { flex: 1; min-width: 0; }
.lv-filters__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 768px) { .lv-filters__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
  .lv-filters__grid { padding-top: .25rem; }
  .lv-filters__main { flex-wrap: wrap; }
  .lv-filters__search { flex: 1 1 100%; }
  .lv-filters__main > .btn { flex: 1; }
}
.lv-filters .form-label { font-size: .75rem; margin-bottom: .25rem; color: var(--lv-muted); }
.lv-filters__active { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; padding-top: .75rem; border-top: 1px solid var(--lv-line); font-size: .8125rem; color: var(--lv-muted); }
.lv-filters__active a { font-weight: 600; color: var(--lv-ink); text-decoration: none; }

.lv-sales thead th { font-size: .6875rem; letter-spacing: .08em; background: #faf9f6; }
.lv-sales td { vertical-align: middle; }
.lv-sales td small { display: block; margin-top: .1rem; font-size: .75rem; color: var(--lv-muted); }
.lv-sales__id strong { font-variant-numeric: tabular-nums; }
.lv-sales__id, .lv-sales__money { white-space: nowrap; }
.lv-sales__money strong { font-variant-numeric: tabular-nums; }
.lv-sales__money small { font-variant-numeric: tabular-nums; }
.lv-sales__client strong { font-weight: 600; }
.lv-nowrap { white-space: nowrap; }
.lv-sales__items { max-width: 18rem; }
.lv-sales__product { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-sales__status { min-width: 12rem; }
.lv-sales__status .lv-status { margin: .1rem 0; }
.lv-sales__actions { width: 1%; }
.lv-sales tr.is-cancelled td:not(.lv-sales__status):not(.lv-sales__actions) { opacity: .55; }
.lv-sales tr.is-cancelled .lv-sales__money strong { text-decoration: line-through; }
.dropdown-item small { color: var(--lv-muted); font-size: .6875rem; }

/* Celular: cada venda vira um cartão */
@media (max-width: 767.98px) {
  .lv-sales thead { display: none; }
  .lv-sales, .lv-sales tbody { display: block; }
  .lv-sales tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .35rem .75rem; padding: .9rem 1rem;
    grid-template-areas: "client money actions" "items items items" "seller id id" "status status status";
    border-bottom: 1px solid var(--lv-line);
  }
  .lv-sales td { display: block; padding: 0 !important; border: 0 !important; }
  .lv-sales__client { grid-area: client; }
  .lv-sales__money { grid-area: money; }
  .lv-sales__actions { grid-area: actions; width: auto; }
  .lv-sales__items { grid-area: items; max-width: none; }
  .lv-sales__seller { grid-area: seller; font-size: .8125rem; }
  .lv-sales__seller small { display: inline !important; }
  .lv-sales__seller small::before { content: " · "; }
  .lv-sales__id { grid-area: id; text-align: right; font-size: .8125rem; }
  .lv-sales__id small { display: inline !important; margin-left: .35rem; }
  .lv-sales__status { grid-area: status; min-width: 0; display: flex !important; flex-wrap: wrap; gap: .3rem; }
}

.lv-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; font-size: .8125rem; color: var(--lv-muted); }
.card-footer .lv-pager { margin-top: 0; }
.pagination { --tblr-pagination-active-bg: var(--lv-ink); --tblr-pagination-active-border-color: var(--lv-ink); }
.page-link .icon { width: 1rem; height: 1rem; }

/* ---------- Estado vazio / erro ---------- */
.lv-empty { display: flex; flex-direction: column; align-items: center; padding: 3rem 1.5rem; text-align: center; }
.lv-empty--page { padding-top: 4rem; }
.lv-empty__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 1rem; border-radius: 16px; background: var(--lv-sand); color: #4d4b46; }
.lv-empty__icon .icon { width: 1.6rem; height: 1.6rem; }
.lv-empty__code { margin: 0 0 .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--lv-muted); }
.lv-empty__title { margin: 0; font-size: 1.15rem; font-weight: 700; }
.lv-empty__text { max-width: 30rem; margin: .4rem 0 0; font-size: .875rem; color: var(--lv-muted); }
.lv-empty__ref { margin: .75rem 0 0; font-size: .8125rem; color: var(--lv-muted); }

/* ---------- Avisos (toasts) ---------- */
.lv-toasts { position: fixed; z-index: 1090; right: 1rem; bottom: 1rem; left: 1rem; display: flex; flex-direction: column; align-items: flex-end; gap: .5rem; pointer-events: none; }
.lv-toast {
  display: flex; align-items: flex-start; gap: .6rem; width: 100%; max-width: 26rem; padding: .8rem .9rem; border-radius: 12px;
  background: var(--lv-ink); color: #fff; box-shadow: 0 10px 30px rgba(0, 0, 0, .2); pointer-events: auto;
  animation: lv-toast-in .25s var(--lv-ease);
}
.lv-toast__icon { flex-shrink: 0; width: 1.2rem; height: 1.2rem; margin-top: 1px; }
.lv-toast--success .lv-toast__icon { color: #5fd394; }
.lv-toast--warning .lv-toast__icon { color: #f5c25c; }
.lv-toast--danger .lv-toast__icon { color: #ff8a8d; }
.lv-toast--info .lv-toast__icon { color: #8bb4ff; }
.lv-toast__text { flex: 1; font-size: .875rem; line-height: 1.4; }
.lv-toast__close { display: grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: rgba(255, 255, 255, .7); }
.lv-toast__close:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.lv-toast.is-leaving { opacity: 0; transform: translateY(6px); transition: opacity .2s, transform .2s; }
@keyframes lv-toast-in { from { opacity: 0; transform: translateY(8px); } }

/* ---------- Confirmação ---------- */
.lv-confirm__icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: .75rem; border-radius: 12px; background: var(--lv-bad-bg); color: var(--lv-bad); }
.lv-confirm__title { margin: 0 0 .35rem; font-size: 1.1rem; font-weight: 700; }
.lv-confirm__text { color: #4d4b46; font-size: .875rem; }

/* ---------- Formulário de venda ---------- */
.lv-step { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: .5rem; border-radius: 50%; background: var(--lv-ink); color: #fff; font-size: .75rem; font-weight: 700; vertical-align: 1px; }
.lv-sale-form .card-header { flex-wrap: wrap; gap: .5rem; }
.lv-sale-form .form-hint { display: block; margin-top: .3rem; font-size: .75rem; color: var(--lv-muted); }
.lv-sale-form .form-hint .icon { width: .85rem; height: .85rem; }
.lv-items { display: grid; gap: .75rem; }
.lv-item {
  display: grid; gap: .6rem .75rem; padding: .9rem; border: 1px solid var(--lv-line); border-radius: 10px; background: #fcfbf8;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-areas: "product product" "modality modality" "condition qty" "price discount" "subtotal remove";
}
.lv-item .form-label { margin-bottom: .25rem; font-size: .75rem; color: var(--lv-muted); }
.lv-item__product { grid-area: product; }
.lv-item__condition { grid-area: condition; }
.lv-item__modality { grid-area: modality; }
.lv-item__qty { grid-area: qty; }
.lv-item__price { grid-area: price; }
.lv-item__discount { grid-area: discount; }
.lv-item__subtotal { grid-area: subtotal; }
.lv-item__remove { grid-area: remove; justify-self: end; align-self: end; }
.lv-item__hint { display: block; margin-top: .25rem; font-size: .75rem; color: var(--lv-muted); }
.lv-item__hint.is-supplier { color: var(--lv-info); }
.lv-item__value { display: flex; align-items: center; height: calc(1.4285714em + 1rem + 2px); font-weight: 700; font-variant-numeric: tabular-nums; }
/* O layout da linha depende da largura do card, não da janela. */
.lv-items { container-type: inline-size; }
@container (min-width: 560px) {
  .lv-item {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1.2fr);
    grid-template-areas: "product product condition modality" "qty price discount subtotal";
    position: relative; padding-right: 3.25rem;
  }
  .lv-item__remove { position: absolute; top: .6rem; right: .5rem; }
}
@container (min-width: 1100px) {
  .lv-item {
    grid-template-columns: minmax(0, 1fr) 6rem 10rem 4.5rem 8.5rem 8rem 7rem;
    grid-template-areas: "product condition modality qty price discount subtotal";
  }
  .lv-item__remove { top: 2.05rem; }
}
.lv-summary { position: sticky; top: 72px; }
.lv-summary__list { display: grid; gap: .55rem; margin: 0 0 1rem; }
.lv-summary__list > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.lv-summary__list dt { font-weight: 500; color: #4d4b46; }
.lv-summary__list dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.lv-summary__total { margin-top: .25rem; padding-top: .75rem; border-top: 1px solid var(--lv-line); }
.lv-summary__total dt { font-weight: 700; color: var(--lv-ink); }
.lv-summary__total dd { font-family: var(--lv-display); font-size: 1.6rem; font-weight: 700; line-height: 1; }
.lv-summary__credit dd { color: var(--lv-info); }
.lv-summary__due { padding: .6rem .75rem; border-radius: 8px; background: var(--lv-sand); }
@media (max-width: 1199.98px) { .lv-summary { position: static; } }

/* ---------- Guia de componentes ---------- */
.lv-brand-demo { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.lv-brand-demo > div { display: grid; place-items: center; height: 120px; border-radius: 12px; }
.lv-brand-demo__dark { background: var(--lv-ink); }
.lv-brand-demo__light { background: #fff; border: 1px solid var(--lv-line); }
.lv-brand-demo img { height: 44px; width: auto; }
.lv-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }
.lv-swatch { display: flex; flex-direction: column; gap: .15rem; font-size: .8125rem; }
.lv-swatch__chip { height: 48px; margin-bottom: .35rem; border-radius: 10px; border: 1px solid rgba(0, 0, 0, .08); }
.lv-swatch small { color: var(--lv-muted); }
.lv-swatch code { align-self: flex-start; font-size: .75rem; }
.lv-demo-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.lv-states { display: grid; gap: .9rem; margin: 0 0 1rem; }
.lv-states dt { margin-bottom: .3rem; font-size: .75rem; font-weight: 600; color: var(--lv-muted); }
.lv-states dd { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; }
.lv-skeleton { display: grid; gap: .6rem; }
.lv-skeleton span { height: 14px; border-radius: 6px; background: linear-gradient(90deg, #efede7 25%, #f7f6f2 50%, #efede7 75%); background-size: 200% 100%; animation: lv-shimmer 1.4s infinite linear; }
.lv-skeleton .is-short { width: 55%; }
@keyframes lv-shimmer { to { background-position: -200% 0; } }

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

/* ---------- Usuário no topo ---------- */
button.lv-user { padding: .25rem .5rem .25rem .25rem; border: 0; border-radius: 999px; background: transparent; color: inherit; text-align: left; }
button.lv-user:hover, button.lv-user[aria-expanded="true"] { background: var(--lv-sand); }
.lv-user__caret { width: 1rem; height: 1rem; color: var(--lv-muted); }
.lv-topbar .dropdown-header { font-size: .75rem; line-height: 1.4; color: var(--lv-muted); text-transform: none; letter-spacing: 0; }
.lv-topbar .dropdown-header strong { color: var(--lv-ink); font-weight: 600; }

/* ---------- Login ---------- */
.lv-auth { min-height: 100vh; background: var(--lv-sand); }
.lv-auth__wrap { display: grid; min-height: 100vh; grid-template-columns: 1fr; }
@media (min-width: 992px) { .lv-auth__wrap { grid-template-columns: minmax(360px, 42%) 1fr; } }
.lv-auth__brand {
  display: none; flex-direction: column; justify-content: space-between; padding: 3rem;
  background: var(--lv-ink); color: #fff; position: relative; overflow: hidden;
}
.lv-auth__brand::after {
  /* faixa do logo, ampliada como grafismo */
  content: ""; position: absolute; right: -12%; bottom: 18%; width: 62%; height: 54px; background: rgba(255, 255, 255, .06);
}
@media (min-width: 992px) { .lv-auth__brand { display: flex; } }
.lv-auth__brand img { width: 124px; height: auto; }
.lv-auth__claim { position: relative; z-index: 1; }
.lv-auth__label { display: inline-block; margin-bottom: .75rem; padding: .2rem .6rem; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.lv-auth__claim p { margin: 0; font-family: var(--lv-display); font-weight: 700; font-size: 2.6rem; line-height: 1; text-transform: uppercase; }
.lv-auth__foot { color: rgba(255, 255, 255, .45); letter-spacing: .08em; }
.lv-auth__main { display: grid; place-items: center; padding: 2rem 1rem; }
.lv-auth__main:focus { outline: 0; }
.lv-auth__panel { width: 100%; max-width: 400px; }
.lv-auth__mobile-logo { display: block; width: 78px; height: auto; margin-bottom: 2rem; }
@media (min-width: 992px) { .lv-auth__mobile-logo { display: none; } }
.lv-auth__title { margin: 0; font-family: var(--lv-display); font-weight: 700; font-size: 2.25rem; line-height: 1; text-transform: uppercase; color: var(--lv-ink); }
.lv-auth__sub { margin: .5rem 0 1.5rem; color: var(--lv-muted); font-size: .9rem; }
.lv-auth__form .form-control-lg { font-size: 1rem; }
.lv-auth__help { display: flex; align-items: center; gap: .4rem; margin: 1.25rem 0 0; font-size: .8125rem; color: var(--lv-muted); }
.lv-auth__help .icon { width: 1rem; height: 1rem; }
.lv-reveal { display: grid; place-items: center; padding: 0 .25rem; border: 0; background: transparent; color: var(--lv-muted); }
.lv-reveal:hover, .lv-reveal[aria-pressed="true"] { color: var(--lv-ink); }
.lv-auth .lv-empty--page { padding-top: 0; }

/* ---------- Administração de acesso (Etapa 3) ---------- */
.lv-filters__select { flex: 0 1 12rem; }
@media (max-width: 767.98px) { .lv-filters__select { flex: 1 1 45%; } }
.lv-person small { display: block; font-weight: 400; font-size: .75rem; color: var(--lv-muted); }
.lv-row-link { color: inherit; text-decoration: none; }
.lv-row-link:hover { text-decoration: underline; }
.lv-users td { vertical-align: middle; }
.lv-users tr.is-muted .lv-person, .lv-users tr.is-muted .lv-users__groups { opacity: .55; }
.lv-users__go { width: 1%; }
.lv-chip--group { margin: .1rem .25rem .1rem 0; padding: .1rem .5rem; border-radius: 999px; font-size: .75rem; }
.lv-users__last { font-size: .8125rem; white-space: nowrap; }
@media (max-width: 767.98px) {
  .lv-users thead { display: none; }
  .lv-users, .lv-users tbody { display: block; }
  .lv-users tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--lv-line);
    grid-template-areas: "who status" "groups groups" "last exc"; }
  .lv-users td { display: block; padding: 0 !important; border: 0 !important; }
  .lv-users__who { grid-area: who; } .lv-users__status { grid-area: status; } .lv-users__groups { grid-area: groups; }
  .lv-users__last { grid-area: last; } .lv-users__exc { grid-area: exc; text-align: right; } .lv-users__go { display: none !important; }
}

.lv-subhead { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; margin: -.75rem 0 1.25rem; }
.lv-tabs { display: inline-flex; flex-wrap: wrap; gap: .25rem; padding: .25rem; border-radius: 12px; background: var(--lv-sand-2); }
.lv-tabs a { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .8rem; border-radius: 9px; font-size: .875rem; font-weight: 600; color: #5d5b55; text-decoration: none; }
.lv-tabs a .icon { width: 1rem; height: 1rem; }
.lv-tabs a:hover { color: var(--lv-ink); }
.lv-tabs a.is-active { background: #fff; color: var(--lv-ink); box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }

.lv-narrow { max-width: 860px; }
.lv-narrow--sm { max-width: 520px; }
.lv-form-actions { display: flex; justify-content: flex-end; align-items: center; gap: .5rem; }
.lv-groups { margin: 0; padding: 0; border: 0; min-width: 0; }
.lv-groups legend { float: none; width: auto; }
.lv-groups__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .6rem; }
.lv-pick { margin: 0; cursor: pointer; }
.lv-pick input { position: absolute; opacity: 0; }
.lv-pick__card { display: flex; flex-direction: column; gap: .15rem; height: 100%; padding: .75rem .9rem .75rem 2.4rem; border: 1.5px solid var(--lv-line); border-radius: 12px; background: #fff; position: relative; transition: border-color .15s, box-shadow .15s; }
.lv-pick__card::before { content: ""; position: absolute; left: .85rem; top: .9rem; width: 1rem; height: 1rem; border: 1.5px solid #bdbab2; border-radius: 4px; background: #fff; }
.lv-pick__card small { font-size: .75rem; line-height: 1.35; color: var(--lv-muted); }
.lv-pick__meta { margin-top: .2rem; color: #8a877f !important; }
.lv-pick:hover .lv-pick__card { border-color: #bdbab2; }
.lv-pick input:checked + .lv-pick__card { border-color: var(--lv-ink); box-shadow: 0 0 0 1px var(--lv-ink); }
.lv-pick input:checked + .lv-pick__card::before { border-color: var(--lv-ink); background: var(--lv-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; }
.lv-pick input:focus-visible + .lv-pick__card { outline: 2px solid var(--lv-ink); outline-offset: 2px; }
fieldset:disabled .lv-pick { cursor: default; }
fieldset:disabled .lv-pick__card { background: #faf9f6; }

.lv-facts { display: grid; gap: .6rem; margin: 0 0 1rem; }
.lv-facts > div { display: flex; justify-content: space-between; gap: 1rem; font-size: .875rem; }
.lv-facts dt { font-weight: 500; color: var(--lv-muted); }
.lv-facts dd { margin: 0; font-weight: 600; text-align: right; }

.lv-stat--wide { grid-column: span 2; }
@media (max-width: 991.98px) { .lv-stat--wide { grid-column: 1 / -1; } }
.lv-rule { margin-top: .35rem; font-size: .8125rem !important; color: #3d3c39 !important; line-height: 1.4; }

.lv-perm-toolbar { flex-wrap: wrap; gap: .5rem; }
.lv-perm-table thead th { font-size: .6875rem; letter-spacing: .08em; background: #faf9f6; }
.lv-perm-module th { padding-top: 1rem !important; background: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #3d3c39; }
.lv-perm-name { min-width: 18rem; }
.lv-perm-label { display: block; font-weight: 600; }
.lv-perm-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .2rem; }
.lv-perm-meta code { font-size: .6875rem; }
.lv-perm-desc { display: block; margin-top: .2rem; font-size: .75rem; color: var(--lv-muted); }
.lv-perm-groups { font-size: .8125rem; color: #3d3c39; }
.lv-perm-exc { min-width: 11rem; }
.lv-perm-result { min-width: 13rem; }
.lv-perm-result small { display: block; margin-top: .25rem; font-size: .75rem; color: var(--lv-muted); }
.lv-perm-result small.is-pending { color: var(--lv-warn); font-weight: 600; }
.lv-perm-table.only-allowed tr.is-denied { display: none; }
.lv-kind { display: inline-flex; padding: 0 .4rem; border-radius: 5px; font-size: .6875rem; font-weight: 700; letter-spacing: .02em; }
.lv-kind--ver { background: var(--lv-info-bg); color: var(--lv-info); }
.lv-kind--executar { background: var(--lv-ink); color: #fff; }
.lv-kind--future { background: transparent; border: 1px dashed #bdbab2; color: var(--lv-muted); font-weight: 600; }
.lv-exc-select.is-permitir { border-color: var(--lv-ok); color: var(--lv-ok); font-weight: 600; }
.lv-exc-select.is-negar { border-color: var(--lv-bad); color: var(--lv-bad); font-weight: 600; }
.lv-perm-save { position: sticky; bottom: .75rem; z-index: 5; box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
.lv-perm-save .card-body { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; }
.lv-perm-save__reason { flex: 1 1 320px; }
@media (max-width: 767.98px) {
  .lv-perm-table thead { display: none; }
  .lv-perm-table, .lv-perm-table tbody { display: block; }
  .lv-perm-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--lv-line);
    grid-template-areas: "name name" "groups groups" "exc result"; }
  .lv-perm-table tr.lv-perm-module { display: block; padding: .9rem 1rem .2rem; border: 0; }
  .lv-perm-table td, .lv-perm-table th { display: block; padding: 0 !important; border: 0 !important; min-width: 0 !important; }
  .lv-perm-name { grid-area: name; } .lv-perm-groups { grid-area: groups; } .lv-perm-exc { grid-area: exc; } .lv-perm-result { grid-area: result; }
  .lv-perm-groups:empty { display: none; }
}

.lv-perm-modules { margin: 0; padding: 0; border: 0; min-width: 0; }
.lv-perm-modules legend { float: none; }
.lv-perm-module .card-header { flex-wrap: wrap; gap: .5rem; }
.lv-perm-module__count { margin-left: .4rem; font-size: .75rem; font-weight: 600; color: var(--lv-muted); font-variant-numeric: tabular-nums; }
.lv-perm-item { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer; }
.lv-perm-item .form-check-input { flex-shrink: 0; margin-top: .2rem; }
.lv-perm-item:hover { background: #faf9f6; }
fieldset:disabled .lv-perm-item { cursor: default; }
.lv-sticky { position: sticky; top: 72px; }
@media (max-width: 1199.98px) { .lv-sticky { position: static; } }
.lv-member { display: flex; align-items: center; gap: .6rem; font-size: .875rem; }
.lv-member a { color: inherit; font-weight: 600; text-decoration: none; }
.lv-member a:hover { text-decoration: underline; }
.lv-member .lv-status { margin-left: auto; }

.lv-group-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.lv-group-card { color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s var(--lv-ease); }
.lv-group-card:hover { border-color: #cfccc3; box-shadow: 0 6px 18px rgba(10, 10, 10, .07); transform: translateY(-1px); }
.lv-group-card__head { display: flex; align-items: center; gap: .6rem; }
.lv-group-card__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--lv-ink); color: #fff; }
.lv-group-card__name { margin: 0; font-size: 1.05rem; font-weight: 700; }
.lv-group-card__desc { min-height: 2.6em; margin: .6rem 0 .9rem; font-size: .8125rem; color: var(--lv-muted); }
.lv-group-card__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; margin-top: .6rem; font-size: .8125rem; color: #4d4b46; }
.lv-group-card__meta .icon { width: 1rem; height: 1rem; }
.lv-stat strong span { font: inherit; color: inherit; }
.lv-perm-item, .lv-perm-module .card-header { --tblr-form-check-radius: 4px; }
.lv-perm-item .form-check-input, .lv-perm-module [data-module-all] { border-radius: 4px; }
.lv-perm-item { padding-block: .6rem; }
@media (max-width: 767.98px) {
  .lv-perm-table .lv-perm-groups.is-empty { display: none; }
  .lv-perm-save { position: static; }
}

/* ---------- Cadastros (Etapa 4) ---------- */
.lv-reg td { vertical-align: middle; }
.lv-reg__main small { display: block; font-size: .75rem; color: var(--lv-muted); }
.lv-reg tr.is-muted .lv-reg__main, .lv-reg tr.is-muted .lv-reg__phone, .lv-reg tr.is-muted .lv-reg__city, .lv-reg tr.is-muted .lv-reg__doc { opacity: .55; }
@media (max-width: 767.98px) {
  .lv-reg thead { display: none; }
  .lv-reg, .lv-reg tbody { display: block; }
  .lv-reg tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--lv-line);
    grid-template-areas: "main status" "phone phone" "city doc"; }
  .lv-reg td { display: block; padding: 0 !important; border: 0 !important; font-size: .875rem; }
  .lv-reg__main { grid-area: main; } .lv-reg__status { grid-area: status; } .lv-reg__phone { grid-area: phone; }
  .lv-reg__city { grid-area: city; } .lv-reg__doc { grid-area: doc; text-align: right; } .lv-reg .lv-users__go { display: none !important; }
}

.lv-quickadd__row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; }
.lv-quickadd__name { flex: 1 1 260px; }
.lv-quickadd__kind { flex: 0 1 220px; }
.lv-lookup tr.is-editing td { background: #faf9f6; }
.lv-lookup tr.is-muted td:first-child { opacity: .55; }
.lv-lookup__actions { white-space: nowrap; }
.lv-inline-filters { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.lv-inline-filters .input-icon { flex: 1 1 260px; }
.lv-inline-filters .form-select { flex: 0 1 10rem; }

.lv-addresses { display: grid; gap: .75rem; }
.lv-address { margin: 0; padding: .9rem; border: 1px solid var(--lv-line); border-radius: 10px; background: #fcfbf8; min-width: 0; }
.lv-address .form-label { margin-bottom: .2rem; font-size: .75rem; color: var(--lv-muted); }
.lv-address__head { display: flex; align-items: center; gap: .5rem; margin-bottom: .6rem; }
.lv-address__head .form-check-label { font-size: .8125rem; font-weight: 600; }

.lv-seller-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.lv-seller-card { color: inherit; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s var(--lv-ease); }
.lv-seller-card:hover { border-color: #cfccc3; box-shadow: 0 6px 18px rgba(10, 10, 10, .07); transform: translateY(-1px); }
.lv-seller-card .card-body { display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center; }
.lv-seller-card .avatar-lg { --tblr-avatar-size: 4.5rem; font-size: 1.25rem; }
.lv-seller-card__text { display: flex; flex-direction: column; min-width: 0; }
.lv-seller-card__text strong { font-size: 1rem; }
.lv-seller-card__text small { font-size: .8125rem; color: var(--lv-muted); }
.lv-seller-card__foot { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; max-width: 100%; }
.lv-seller-card__foot .lv-chip { margin: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-seller-card.is-muted .avatar, .lv-seller-card.is-muted .lv-seller-card__text { opacity: .55; }
.lv-chip--muted { color: var(--lv-muted); border-style: dashed; }
.lv-avatar--photo { background-size: cover; background-position: center; }

.lv-photo-field { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }
.lv-photo-field__preview { display: grid; place-items: center; flex-shrink: 0; width: 112px; height: 112px; overflow: hidden; border-radius: 50%; background: var(--lv-sand); border: 1px solid var(--lv-line); }
.lv-photo-field__preview img { width: 100%; height: 100%; object-fit: cover; }
.lv-photo-field__empty .icon { width: 2.5rem; height: 2.5rem; color: #b9b6ae; }
.lv-photo-field__controls { flex: 1 1 260px; }
.form-check-input[type="checkbox"] { border-radius: 4px; }

/* ---------- Estoque (Etapa 5) ---------- */
.lv-filters__grid--3 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 576px) { .lv-filters__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.lv-num { font-variant-numeric: tabular-nums; }
.lv-mono { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: .875rem; }
.lv-status--icon { padding: .18rem .3rem; }
.lv-variants td { vertical-align: top; min-width: 7rem; }
.lv-variants td:first-child { min-width: 10rem; }
.lv-variants td:nth-child(3) { min-width: 10rem; }
.lv-variants td:last-child { min-width: 0; width: 1%; }
.lv-entry-items td { vertical-align: top; }
.lv-entry-items td:first-child { min-width: 16rem; }
.lv-entry-items td:nth-child(2) { width: 8rem; min-width: 6.5rem; }
.lv-entry-items td:nth-child(3) { width: 11rem; min-width: 9.5rem; }
.lv-entry-items td:nth-child(4) { padding-top: 1.05rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.lv-entry-items td:last-child { width: 1%; }

.lv-seg { display: inline-flex; flex-wrap: wrap; padding: .25rem; border-radius: 12px; background: var(--lv-sand-2); gap: .25rem; }
.lv-seg label { margin: 0; cursor: pointer; }
.lv-seg input { position: absolute; opacity: 0; }
.lv-seg span { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .9rem; border-radius: 9px; font-weight: 600; font-size: .875rem; color: #5d5b55; }
.lv-seg input:checked + span { background: #fff; color: var(--lv-ink); box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
.lv-seg input:focus-visible + span { outline: 2px solid var(--lv-ink); outline-offset: 1px; }

.lv-vstock { display: grid; gap: .5rem; }
.lv-vstock.is-muted { opacity: .6; }
.lv-vstock__head { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .875rem; font-weight: 600; }
.lv-vstock__head .lv-status { margin-left: auto; }
.lv-vstock__nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .25rem; margin: 0; }
.lv-vstock__nums dt { font-size: .6875rem; font-weight: 500; color: var(--lv-muted); }
.lv-vstock__nums dd { margin: 0; font-variant-numeric: tabular-nums; }
.lv-vstock__cost { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; font-size: .8125rem; color: #4d4b46; }
.lv-vstock__links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: .8125rem; }
.lv-vstock__links a { display: inline-flex; align-items: center; gap: .25rem; color: var(--lv-ink); font-weight: 600; text-decoration: none; }
.lv-vstock__links a:hover { text-decoration: underline; }
.lv-vstock__links .icon { width: 1rem; height: 1rem; }

.lv-position__name small { display: block; margin-top: .1rem; font-size: .75rem; color: var(--lv-muted); }
.lv-position__name code { font-size: .6875rem; }
.lv-mov { display: inline-flex; align-items: center; gap: .3rem; font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.lv-mov .icon { width: .95rem; height: .95rem; }
.lv-mov--in { color: var(--lv-ok); }
.lv-mov--out { color: var(--lv-bad); }
.lv-movements small code { font-size: .6875rem; }
@media (max-width: 767.98px) {
  .lv-products tr { grid-template-areas: "main status" "phone city" "doc avail"; }
  .lv-reg__avail { grid-area: avail; text-align: right; }
}
.lv-variants td:last-child select { min-width: 7.5rem; }
@media (max-width: 767.98px) {
  .lv-entry-items thead, .lv-variants thead { display: none; }
  .lv-entry-items, .lv-entry-items tbody, .lv-variants, .lv-variants tbody { display: block; }
  .lv-entry-items tr, .lv-variants tr { display: grid; gap: .5rem; padding: .85rem 1rem; border-bottom: 1px solid var(--lv-line); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .lv-entry-items td, .lv-variants td { display: block; padding: 0 !important; border: 0 !important; min-width: 0 !important; width: auto !important; }
  .lv-entry-items td:first-child, .lv-variants td:first-child { grid-column: 1 / -1; }
  .lv-entry-items td:nth-child(4) { padding-top: .55rem !important; }
  .lv-entry-items td:last-child { justify-self: end; }
  .lv-variants td:nth-child(2) { grid-column: 1 / -1; }
  .lv-entry-items .visually-hidden, .lv-variants .visually-hidden { position: static !important; width: auto !important; height: auto !important; margin: 0 0 .2rem !important; clip: auto !important; overflow: visible !important; white-space: normal !important; font-size: .75rem; color: var(--lv-muted); }
}

/* ---------- Vendas (Etapa 6) ---------- */
.lv-ac { position: relative; }
.lv-ac.is-loading [data-ac-input] { background-image: linear-gradient(90deg, transparent, rgba(10, 10, 10, .06), transparent); background-size: 200% 100%; animation: lv-shimmer 1s infinite linear; }
.lv-ac__list {
  position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; right: 0; max-height: 300px; overflow-y: auto;
  margin: 0; padding: .3rem; list-style: none; background: #fff; border: 1px solid var(--lv-line); border-radius: 10px;
  box-shadow: 0 12px 28px rgba(10, 10, 10, .12);
}
.lv-ac__option { display: flex; flex-direction: column; padding: .5rem .65rem; border-radius: 7px; cursor: pointer; }
.lv-ac__option strong { font-size: .875rem; font-weight: 600; }
.lv-ac__option small { font-size: .75rem; color: var(--lv-muted); }
.lv-ac__option:hover, .lv-ac__option[aria-selected="true"] { background: var(--lv-sand); }
.lv-ac__option[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--lv-ink); }
.lv-ac__empty { padding: .6rem .7rem; font-size: .8125rem; color: var(--lv-muted); }

/* Linha de item da venda: produto, atendimento, qtd, preço, desconto, subtotal (+ fornecedor) */
.lv-sale-form .lv-item { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "product product" "modality qty" "price discount" "subtotal remove" "supplier supplier"; }
.lv-item__supplier { grid-area: supplier; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6rem .75rem; padding: .65rem .75rem; border-radius: 8px; background: var(--lv-info-bg); }
.lv-item__supplier[hidden] { display: none; }
.lv-item__supplier .form-label { color: #2a4f8f; }
.lv-item__hint.is-short { color: var(--lv-bad); font-weight: 600; }
@container (min-width: 560px) {
  .lv-sale-form .lv-item { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-areas: "product product modality modality" "qty price discount subtotal" "supplier supplier supplier supplier"; }
}
@container (min-width: 1100px) {
  .lv-sale-form .lv-item { grid-template-columns: minmax(0, 1fr) 11rem 4.5rem 8.5rem 8rem 7rem; grid-template-areas: "product modality qty price discount subtotal" "supplier supplier supplier supplier supplier supplier"; }
  .lv-sale-form .lv-item__remove { top: 2.05rem; }
}
.lv-summary__modes { font-size: .8125rem; color: var(--lv-muted); }
.lv-filters__grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 992px) { .lv-filters__grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.lv-history .list-group-item { font-size: .875rem; }
.lv-history__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; }
.lv-history__head span { color: var(--lv-muted); font-size: .8125rem; }
.lv-prewrap { white-space: pre-wrap; }
.lv-facts__person { display: inline-flex; align-items: center; gap: .4rem; }
.lv-sale-items small code { font-size: .6875rem; }
td code { white-space: nowrap; }
.lv-sale-items td:first-child { min-width: 12rem; }
.lv-sale-items td:nth-child(2) { min-width: 9rem; }
/* Celular: linha de item com qtd. estreita e remover no canto */
.lv-sale-form .lv-item { position: relative; grid-template-columns: 4.75rem minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "product product product" "modality modality modality" "qty price price" "discount discount subtotal" "supplier supplier supplier"; }
.lv-sale-form .lv-item__remove { position: absolute; top: .45rem; right: .45rem; }
.lv-sale-form .lv-item__product .form-label { padding-right: 2.5rem; }
@media (max-width: 559.98px) { .lv-item__supplier { grid-template-columns: minmax(0, 1fr); } }
.lv-confirm__icon.is-neutral { background: var(--lv-sand); color: var(--lv-ink); }
.lv-reserved { display: inline-flex; align-items: center; gap: .25rem; color: var(--lv-info); font-weight: 600; } .lv-reserved .icon { width: .85rem; height: .85rem; }
@media (max-width: 767.98px) {
  .lv-sale-items thead { display: none; }
  .lv-sale-items, .lv-sale-items tbody { display: block; }
  .lv-sale-items tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--lv-line); }
  .lv-sale-items td { display: block; padding: 0 !important; border: 0 !important; min-width: 0 !important; text-align: left !important; font-size: .875rem; }
  .lv-sale-items td:nth-child(1), .lv-sale-items td:nth-child(2) { grid-column: 1 / -1; }
  .lv-sale-items td:nth-child(3)::before { content: "Qtd. "; color: var(--lv-muted); }
  .lv-sale-items td:nth-child(4)::before { content: "Unit. "; color: var(--lv-muted); }
  .lv-sale-items td:nth-child(5)::before { content: "Desconto "; color: var(--lv-muted); }
  .lv-sale-items td:nth-child(6)::before { content: "Total "; color: var(--lv-muted); font-weight: 400; }
  .lv-sale-items td:nth-child(7)::before { content: "Custo ref. "; color: var(--lv-muted); }
  .lv-sale-items td:nth-child(4), .lv-sale-items td:nth-child(6) { text-align: right !important; }
}
.lv-payments tr.is-refund td { background: #fdf6f6; }
.lv-payments td small { font-size: .75rem; }
.lv-filters__grid--auto { grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); }
@media (max-width: 767.98px) {
  .lv-payments thead { display: none; }
  .lv-payments, .lv-payments tbody { display: block; }
  .lv-payments tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--lv-line);
    grid-template-areas: "date value" "what what" "who comm" "act act"; }
  .lv-payments td { display: block; padding: 0 !important; border: 0 !important; font-size: .875rem; }
  .lv-payments td:nth-child(1) { grid-area: date; color: var(--lv-muted); }
  .lv-payments td:nth-child(2) { grid-area: what; }
  .lv-payments td:nth-child(3) { grid-area: value; text-align: right; }
  .lv-payments td:nth-child(4) { grid-area: comm; text-align: right; }
  .lv-payments td:nth-child(4)::before { content: "Comissão "; color: var(--lv-muted); font-weight: 400; }
  .lv-payments td:nth-child(5) { grid-area: who; font-size: .8125rem; }
  .lv-payments td:nth-child(6) { grid-area: act; text-align: left !important; }
  .lv-payments td:nth-child(6):empty { display: none; }
}
@media (max-width: 767.98px) { .lv-payments tr.is-refund { background: #fdf6f6; } .lv-payments tr.is-refund td { background: transparent; } }

/* ---------- Raquetes usadas (Etapa 9) ---------- */
.lv-tabs__count { min-width: 1.4rem; padding: 0 .35rem; border-radius: 999px; background: rgba(0, 0, 0, .06); font-size: .75rem; text-align: center; font-variant-numeric: tabular-nums; }
.lv-tabs a.is-active .lv-tabs__count { background: var(--lv-ink); color: #fff; }
.lv-used__unit { display: flex; align-items: center; gap: .75rem; }
.lv-used__thumb { flex: none; width: 44px; height: 44px; border-radius: 8px; object-fit: cover; background: var(--lv-sand); }
.lv-used__thumb--empty { display: grid; place-items: center; color: var(--lv-muted); }
.lv-used__thumb--empty .icon { width: 1.25rem; height: 1.25rem; }
.lv-tradein { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.lv-tradein__photo { flex: none; width: 56px; height: 56px; border-radius: 10px; object-fit: cover; }
.lv-tradein__main { display: grid; flex: 1 1 12rem; min-width: 0; font-size: .875rem; }
.lv-tradein__values { display: flex; gap: 1.5rem; margin: 0; }
.lv-tradein__values dt { font-size: .75rem; font-weight: 500; color: var(--lv-muted); }
.lv-tradein__values dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-summary__pending { padding: .6rem .75rem; border-radius: 8px; border: 1px dashed #d6d3ca; }
.lv-summary__pending small { font-weight: 400; color: var(--lv-muted); }
.lv-summary__pending dd { color: var(--lv-muted); }
.lv-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.lv-gallery li { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--lv-sand); }
.lv-gallery a { display: block; height: 100%; }
.lv-gallery img { width: 100%; height: 100%; object-fit: contain; }
.lv-gallery__del { position: absolute; top: .4rem; right: .4rem; background: rgba(255, 255, 255, .92); color: #d63939; }
@media (max-width: 767.98px) {
  .lv-used thead { display: none; }
  .lv-used, .lv-used tbody { display: block; }
  .lv-used tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem .75rem; padding: .8rem 1rem; border-bottom: 1px solid var(--lv-line);
    grid-template-areas: "unit unit" "status value" "origin price"; }
  .lv-used td { display: block; padding: 0 !important; border: 0 !important; font-size: .875rem; }
  .lv-used td:nth-child(1) { grid-area: unit; }
  .lv-used td:nth-child(2) { grid-area: status; }
  .lv-used td:nth-child(3) { grid-area: origin; }
  .lv-used td:nth-child(4) { grid-area: value; }
  .lv-used td:nth-child(5) { grid-area: price; }
  .lv-used td:nth-child(5)::before { content: "Sugerido "; color: var(--lv-muted); font-weight: 400; }
}

/* ---------- Expedição (Etapa 10) ---------- */
.lv-item__moved { display: flex; align-items: center; gap: .3rem; margin-top: .25rem; font-size: .75rem; font-weight: 600; color: var(--lv-info); }
.lv-item__moved .icon { width: .85rem; height: .85rem; }
.lv-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.lv-tabs__count.is-alert { background: #d63939; color: #fff; }
.lv-block { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .85rem 1rem; border-radius: var(--lv-radius); background: #fff7e6; border: 1px solid #f2d39a; }
.lv-block > .icon { width: 1.4rem; height: 1.4rem; color: #b26a00; }
.lv-block__text { display: grid; flex: 1 1 16rem; font-size: .875rem; }
.lv-block__text span { color: #5d5b55; }
.lv-choice { display: flex; flex-wrap: wrap; gap: .5rem; }
.lv-choice__opt { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .85rem; border: 1px solid var(--lv-line); border-radius: 10px; font-size: .875rem; font-weight: 600; cursor: pointer; }
.lv-choice__opt:has(input:checked) { border-color: var(--lv-ink); box-shadow: inset 0 0 0 1px var(--lv-ink); }
.lv-choice__opt .icon { width: 1.1rem; height: 1.1rem; }
.lv-qty-table { margin: 0; font-size: .875rem; }
.lv-qty-table__in { width: 9rem; }
.lv-qty-table label { margin: 0; }
.lv-queue thead th, .lv-shipments thead th { font-size: .6875rem; letter-spacing: .08em; background: #faf9f6; }
.lv-queue td small, .lv-shipments td small { display: block; margin-top: .1rem; font-size: .75rem; color: var(--lv-muted); }
.lv-queue__id, .lv-queue__due, .lv-shipments__id { white-space: nowrap; }
.lv-queue__list { margin: 0; padding: 0; list-style: none; font-size: .8125rem; }
.lv-queue__list li { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 22rem; }
.lv-queue__qty { font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-queue__status .lv-status, .lv-queue__pend .lv-status { margin: .1rem 0; }
.lv-queue__pend { min-width: 11rem; }
.lv-queue__actions, .lv-shipments__actions { width: 1%; white-space: nowrap; }
.lv-queue tr.is-late td:first-child { box-shadow: inset 3px 0 0 #d63939; }
.lv-shipments tr.is-cancelled td { opacity: .55; }
.lv-shipments__items .lv-chip { margin: .1rem 0; }
.lv-packages .list-group-item.is-cancelled { opacity: .6; }
.lv-packages__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.lv-packages__items { margin: .5rem 0; padding: 0; list-style: none; font-size: .875rem; }
.lv-packages__facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .4rem 1rem; margin: 0; font-size: .8125rem; }
.lv-packages__facts dt { font-weight: 500; color: var(--lv-muted); }
.lv-packages__facts dd { margin: 0; font-weight: 600; }
.lv-packages__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; margin-top: .6rem; }
.lv-supplier-group + .lv-supplier-group { border-top: 1px solid var(--lv-line); }
.lv-supplier-group__title { display: flex; align-items: center; gap: .4rem; margin: 0; padding: .9rem 1rem .4rem; font-size: .9375rem; font-weight: 700; }
.lv-supplier-group__title .icon { width: 1.1rem; height: 1.1rem; }
.lv-transit { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; font-size: .875rem; }
.lv-transit > div:first-child { flex: 1 1 16rem; }
.lv-transit__when { font-size: .8125rem; }
@media (max-width: 767.98px) {
  .lv-queue thead, .lv-shipments thead { display: none; }
  .lv-queue, .lv-queue tbody, .lv-shipments, .lv-shipments tbody { display: block; }
  .lv-queue tr, .lv-shipments tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .75rem; padding: .9rem 1rem; border-bottom: 1px solid var(--lv-line); }
  .lv-queue td, .lv-shipments td { display: block; padding: 0 !important; border: 0 !important; }
  .lv-queue tr { grid-template-areas: "client id" "items items" "status status" "due due" "pend pend"; }
  .lv-queue__client { grid-area: client; } .lv-queue__id { grid-area: id; text-align: right; }
  .lv-queue__items { grid-area: items; } .lv-queue__status { grid-area: status; } .lv-queue__due { grid-area: due; font-size: .8125rem; }
  .lv-queue__pend { grid-area: pend; min-width: 0; } .lv-queue__actions { display: none !important; }
  .lv-queue__list li { max-width: none; white-space: normal; }
  .lv-shipments tr { grid-template-areas: "client id" "items items" "origin origin" "status actions"; }
  .lv-shipments__client { grid-area: client; } .lv-shipments__id { grid-area: id; text-align: right; }
  .lv-shipments__items { grid-area: items; } .lv-shipments__origin { grid-area: origin; font-size: .8125rem; }
  .lv-shipments__status { grid-area: status; } .lv-shipments__actions { grid-area: actions; align-self: end; }
}
@media (max-width: 767.98px) {
  .lv-ship-items thead { display: none; }
  .lv-ship-items, .lv-ship-items tbody { display: block; }
  .lv-ship-items tr { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem .5rem; padding: .8rem 1rem; border-bottom: 1px solid var(--lv-line); }
  .lv-ship-items td { display: block; padding: 0 !important; border: 0 !important; text-align: left !important; font-size: .875rem; }
  .lv-ship-items td:nth-child(1), .lv-ship-items td:nth-child(2) { grid-column: 1 / -1; }
  .lv-ship-items td[data-label]::before { content: attr(data-label); display: block; font-size: .6875rem; font-weight: 500; color: var(--lv-muted); }
}

/* ---------- Devoluções, ajustes e inventário (Etapa 11) ---------- */
.lv-choice--stack { flex-direction: column; }
.lv-choice--stack .lv-choice__opt { align-items: flex-start; }
.lv-choice--stack .lv-choice__opt input { margin-top: .25rem; }
.lv-choice__opt.is-disabled { opacity: .55; cursor: not-allowed; }
.lv-count__in { width: 8rem; }
.lv-count tr.is-plus .lv-count__diff { color: #2fb344; }
.lv-count tr.is-minus .lv-count__diff { color: #d63939; }
.lv-count__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }

/* ---------- Metas e ranking (Etapa 12) ---------- */
.lv-period__day { margin-left: .35rem; }
.lv-period__day .form-control { width: 10.5rem; }
.lv-copy .card-body { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; }
.lv-copy__label { margin: 0; font-weight: 600; }
.lv-copy__month { width: 11rem; }
.lv-goals__in { width: 11rem; }
.lv-goals tr.is-nogoal td:first-child { box-shadow: inset 3px 0 0 #f59f00; }
.lv-goals .lv-minibar, .lv-ranking .lv-minibar { width: 8rem; margin: .3rem 0 .15rem; }
.lv-goals tfoot th, .lv-goals tfoot td { background: #faf9f6; }
.lv-podium { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }
.lv-podium__card { display: flex; flex-direction: column; align-items: center; gap: .3rem; padding: 1.1rem 1rem; text-align: center; color: inherit; text-decoration: none; }
.lv-podium__card:hover { border-color: var(--lv-ink); }
.lv-podium__card--1 { box-shadow: inset 0 3px 0 #c9a84c; }
.lv-podium__pos { display: inline-flex; align-items: center; gap: .3rem; font-family: var(--lv-display); font-size: 1.1rem; font-weight: 700; }
.lv-podium__card--1 .lv-podium__pos { color: #a8862e; }
.lv-podium__name { font-size: 1rem; }
.lv-podium__value { font-family: var(--lv-display); font-size: 1.6rem; font-weight: 700; line-height: 1; }
.lv-ranking thead th { font-size: .6875rem; letter-spacing: .08em; background: #faf9f6; }
.lv-ranking__pos { width: 3rem; font-family: var(--lv-display); font-size: 1.1rem; font-weight: 700; }
.lv-ranking tr.is-zero td { color: var(--lv-muted); }
.lv-ranking__recv { font-variant-numeric: tabular-nums; }
.lv-seller-card { display: flex; flex-direction: column; align-items: center; gap: .4rem; text-align: center; }
@media (max-width: 767.98px) {
  .lv-ranking thead, .lv-goals thead { display: none; }
  .lv-ranking, .lv-ranking tbody, .lv-goals, .lv-goals tbody { display: block; }
  .lv-ranking tr, .lv-goals tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem .75rem; padding: .85rem 1rem; border-bottom: 1px solid var(--lv-line); }
  .lv-ranking td, .lv-goals tbody td { display: block; padding: 0 !important; border: 0 !important; text-align: left !important; }
  .lv-ranking__pos { display: none !important; }
  .lv-ranking__seller, .lv-goals__seller { grid-column: 1 / -1; }
  .lv-ranking td[data-label]::before, .lv-goals td[data-label]::before { content: attr(data-label); display: block; font-size: .6875rem; color: var(--lv-muted); }
  .lv-goals__in { width: auto; }
  .lv-goals tfoot { display: none; }
}
@media (max-width: 575.98px) {
  .lv-period { flex-wrap: wrap; width: 100%; }
  .lv-period .dropdown { flex: 1; }
  .lv-period__label { width: 100%; min-width: 0; }
  .lv-period__day { flex-basis: 100%; margin-left: 0; }
  .lv-period__day .form-control { width: 100%; }
}

/* ---------- Dashboard OTE (Etapa 13) ---------- */
.lv-bands .card-body { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .75rem 1rem; }
.lv-bands__title { margin-right: .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #3d3c39; }
.lv-minibar--lg { height: 10px; margin: .5rem 0 .35rem; }
.lv-ote-team .card-body { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2.5rem; }
.lv-ote-team__main { flex: 1 1 18rem; }
.lv-ote-team__title { margin: 0 0 .25rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--lv-muted); }
.lv-ote-team__pct { display: flex; align-items: center; gap: .6rem; font-family: var(--lv-display); font-size: 2.2rem; font-weight: 700; line-height: 1; }
.lv-ote-team__facts { display: grid; grid-template-columns: repeat(3, auto); gap: .25rem 2rem; margin: 0; }
.lv-ote-team__facts dt { font-size: .75rem; font-weight: 500; color: var(--lv-muted); }
.lv-ote-team__facts dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-ote-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .75rem; }
.lv-ote-card { border-top: 3px solid #d6d3ca; }
.lv-ote-card--vermelho { border-top-color: var(--lv-bad-mark); }
.lv-ote-card--amarelo { border-top-color: var(--lv-warn-mark); }
.lv-ote-card--verde { border-top-color: var(--lv-ok); }
.lv-ote-card--diamante { border-top-color: var(--lv-diamond); }
.lv-ote-card__head { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.lv-ote-card__name { margin: 0 0 .2rem; font-size: 1rem; font-weight: 700; }
.lv-ote-card__pct { font-family: var(--lv-display); font-size: 2.4rem; font-weight: 700; line-height: 1; }
.lv-ote-card__value { font-family: var(--lv-display); font-size: 1.8rem; font-weight: 700; line-height: 1; }
.lv-ote-card__value small { margin-left: .4rem; font-family: var(--bs-font-sans-serif, inherit); font-size: .8rem; font-weight: 500; color: var(--lv-muted); }
.lv-ote-card__nogoal { display: flex; align-items: center; gap: .4rem; margin: 0 0 .5rem; font-size: .8125rem; color: var(--lv-muted); }
.lv-ote-card__facts { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem 1rem; margin: .75rem 0; font-size: .8125rem; }
.lv-ote-card__facts dt { font-weight: 500; color: var(--lv-muted); }
.lv-ote-card__facts dd { margin: 0; font-weight: 600; }
.lv-ote-evo { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; padding-top: .5rem; border-top: 1px solid var(--lv-line); }
.lv-ote-evo__col { display: grid; justify-items: center; gap: .15rem; font-size: .75rem; }
.lv-ote-evo__col small { color: var(--lv-muted); }
.lv-ote-evo__col.is-current strong { color: var(--lv-ink); }
.lv-ote-evo__track { display: flex; align-items: flex-end; width: 18px; height: 54px; border-radius: 4px; background: var(--lv-sand-2); overflow: hidden; }
.lv-ote-evo__bar { display: block; width: 100%; border-radius: 4px 4px 0 0; }
.lv-catlist { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; font-size: .8125rem; }
.lv-catlist li { display: grid; grid-template-columns: minmax(0, 1fr) 4rem auto 2.5rem; align-items: center; gap: .5rem; }
.lv-catlist li small { text-align: right; color: var(--lv-muted); }
.lv-catlist__bar { height: 6px; border-radius: 999px; background: var(--lv-sand-2); overflow: hidden; }
.lv-catlist__bar span { display: block; height: 100%; background: var(--lv-series-2); }
.lv-catlist__total { padding-top: .35rem; border-top: 1px solid var(--lv-line); font-weight: 700; }
@media (max-width: 575.98px) { .lv-ote-team__facts { grid-template-columns: 1fr 1fr; } }

/* ---------- Visão Executiva (Etapa 14) ---------- */
.lv-exec-filters .card-body { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; padding: .75rem 1rem; }
.lv-exec-filters .form-select { width: auto; min-width: 12rem; }
@media (max-width: 575.98px) { .lv-exec-filters .form-select { flex: 1 1 100%; } }

/* ---------- Dashboard de Estoque (Etapa 15) ---------- */
.lv-kpi-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.lv-kpi-link .lv-kpi { height: 100%; transition: border-color .12s; }
.lv-kpi-link:hover .lv-kpi { border-color: var(--lv-ink); }
.lv-out-tabs .nav-link { display: inline-flex; align-items: center; gap: .35rem; }
.lv-aging { display: grid; gap: .35rem; margin: .5rem 0 0; padding: 0; list-style: none; font-size: .8125rem; }
.lv-aging li { display: grid; grid-template-columns: 7rem 1fr 1.5rem; align-items: center; gap: .5rem; }
.lv-aging li strong { text-align: right; }
.lv-aging__bar { height: 6px; border-radius: 999px; background: var(--lv-sand-2); overflow: hidden; }
.lv-aging__bar span { display: block; height: 100%; background: var(--lv-series-1); }
.lv-range { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.lv-range .form-control { width: 9.5rem; }
.lv-rankline { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 6rem 4rem; align-items: center; gap: .6rem; font-size: .875rem; }
.lv-rankline__pos { font-family: var(--lv-display); font-weight: 700; }
.lv-rankline__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; font-weight: 600; }
.lv-rankline__bar { height: 6px; border-radius: 999px; background: var(--lv-sand-2); overflow: hidden; }
.lv-rankline__bar span { display: block; height: 100%; background: var(--lv-series-1); }
.lv-rankline strong { text-align: right; }
@media (max-width: 575.98px) { .lv-rankline { grid-template-columns: 1.5rem minmax(0, 1fr) 3.5rem; } .lv-rankline__bar { display: none; } }
.card-header:has(.lv-out-tabs) { flex-wrap: wrap; gap: .5rem; }
@media (max-width: 767.98px) {
  .lv-out-tabs { flex-direction: row; flex-wrap: nowrap; width: 100%; margin: 0 !important; overflow-x: auto; }
  .lv-out-tabs .nav-link { white-space: nowrap; }
}

/* ---------- Histórico de alterações e exportações (Etapa 16) ---------- */
.lv-audit .list-group-item { font-size: .875rem; }
.lv-audit__head { display: grid; grid-template-columns: minmax(12rem, 1.2fr) minmax(10rem, 1fr) auto; align-items: baseline; gap: .25rem 1rem; }
.lv-audit__entity { color: var(--lv-muted); }
.lv-audit__when { color: var(--lv-muted); font-size: .8125rem; text-align: right; }
.lv-audit__reason { display: flex; align-items: center; gap: .35rem; margin-top: .3rem; color: #4d4b46; }
.lv-audit__reason .icon { width: .95rem; height: .95rem; }
.lv-audit__changes { margin-top: .35rem; }
.lv-audit__changes summary { cursor: pointer; font-size: .8125rem; color: var(--lv-muted); }
.lv-audit__changes ul { margin: .35rem 0 0; padding-left: 1.1rem; font-size: .8125rem; word-break: break-word; }
@media (max-width: 767.98px) { .lv-audit__head { grid-template-columns: 1fr; } .lv-audit__when { text-align: left; } }
.lv-export-menu { min-width: 16rem; }
.lv-export-menu .dropdown-item { white-space: normal; }
/* Tabelas roláveis contêm os textos "visually-hidden" (absolutos): sem isso eles alargam a página no celular. */
.table-responsive, [class*="table-responsive-"] { position: relative; }

/* ---------- Mapa de Vendas ---------- */
.lv-map { --lv-stage: #121211; --lv-stage-2: #1a1a18; --lv-stage-line: #2c2c29; --lv-stage-ink: #f4f3ef; --lv-stage-muted: #a9a79f; }
.lv-map__tabs { display: inline-flex; gap: .25rem; padding: .25rem; margin-bottom: 1rem; border-radius: 12px; background: var(--lv-sand-2); }
.lv-map__tab { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem 1rem; border: 0; border-radius: 9px; background: transparent; color: #4d4b46; font-weight: 600; font-size: .9rem; transition: background .25s var(--lv-ease), color .25s, box-shadow .25s; }
.lv-map__tab .icon { width: 1.1rem; height: 1.1rem; }
.lv-map__tab:hover { color: var(--lv-ink); }
.lv-map__tab.is-active { background: var(--lv-ink); color: #fff; box-shadow: 0 6px 16px -8px rgba(0,0,0,.6); }
.lv-map__tab-count { min-width: 1.4rem; padding: 0 .4rem; border-radius: 99px; background: rgba(0,0,0,.08); font-size: .75rem; line-height: 1.4rem; text-align: center; font-variant-numeric: tabular-nums; }
.lv-map__tab.is-active .lv-map__tab-count { background: rgba(255,255,255,.18); }

.lv-map__kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.lv-map__kpis:not([hidden]) .lv-mkpi { animation: lv-rise .5s var(--lv-ease) both; }
.lv-map__kpis .lv-mkpi:nth-child(2) { animation-delay: .05s; }
.lv-map__kpis .lv-mkpi:nth-child(3) { animation-delay: .1s; }
.lv-map__kpis .lv-mkpi:nth-child(4) { animation-delay: .15s; }
.lv-mkpi { display: flex; flex-direction: column; gap: .2rem; min-width: 0; padding: .9rem 1rem; border: 1px solid var(--lv-line); border-radius: var(--lv-radius); background: var(--lv-paper); }
.lv-mkpi__label { display: flex; align-items: center; gap: .35rem; font-size: .8125rem; font-weight: 600; color: #4d4b46; }
.lv-mkpi__label .icon { width: 1rem; height: 1rem; color: var(--lv-muted); }
.lv-mkpi__value { font-family: var(--lv-display); font-size: 2rem; font-weight: 700; line-height: 1.05; color: var(--lv-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.lv-mkpi__foot { font-size: .75rem; color: var(--lv-muted); }
.lv-mkpi--alert.is-on { border-color: #f3c4c5; background: var(--lv-bad-bg); }
.lv-mkpi--alert.is-on .lv-mkpi__value, .lv-mkpi--alert.is-on .lv-mkpi__label .icon { color: var(--lv-bad); }

.lv-map__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1rem; align-items: stretch; }
.lv-map__stage { position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: 16px; background: var(--lv-stage); color: var(--lv-stage-ink); box-shadow: 0 20px 40px -24px rgba(0,0,0,.55); }
.lv-map__toolbar { position: relative; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem; border-bottom: 1px solid var(--lv-stage-line); }
.lv-map__toolbar-end { display: flex; flex-wrap: wrap; gap: .5rem; }
.lv-mseg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; border-radius: 10px; background: var(--lv-stage-2); border: 1px solid var(--lv-stage-line); }
.lv-mseg button { padding: .35rem .7rem; border: 0; border-radius: 7px; background: transparent; color: var(--lv-stage-muted); font-size: .8125rem; font-weight: 600; white-space: nowrap; transition: background .2s, color .2s; }
.lv-mseg button:hover { color: var(--lv-stage-ink); }
.lv-mseg button.is-active { background: var(--lv-stage-ink); color: var(--lv-ink); }
.lv-mseg button span { opacity: .7; font-variant-numeric: tabular-nums; }
.lv-mseg button:focus-visible, .lv-map__tab:focus-visible, .lv-map__reset:focus-visible { outline: 2px solid #5eb1ff; outline-offset: 2px; }

.lv-map__view { position: relative; flex: 1; display: flex; flex-direction: column; }
.lv-map__canvas { flex: 1; min-height: 580px; background:
    radial-gradient(circle at 70% 30%, rgba(255,140,80,.07), transparent 55%),
    radial-gradient(rgba(255,255,255,.06) 1px, transparent 1.2px) 0 0 / 18px 18px,
    var(--lv-stage); }
.lv-map.is-transit .lv-map__canvas { background:
    radial-gradient(circle at 80% 25%, rgba(94,177,255,.09), transparent 55%),
    radial-gradient(rgba(255,255,255,.06) 1px, transparent 1.2px) 0 0 / 18px 18px,
    var(--lv-stage); }
.lv-map .leaflet-container { font: inherit; background: transparent; }
.lv-map .leaflet-container:focus-visible { outline: 2px solid #5eb1ff; outline-offset: -2px; }
.lv-map .lv-uf { cursor: pointer; transition: fill .6s var(--lv-ease), stroke .2s; }
.lv-map.is-transit .lv-uf { cursor: grab; }
.lv-map .leaflet-control-zoom { border: 1px solid var(--lv-stage-line) !important; border-radius: 10px; overflow: hidden; box-shadow: none; }
.lv-map .leaflet-control-zoom a { width: 34px; height: 34px; line-height: 32px; background: var(--lv-stage-2); color: var(--lv-stage-ink); border-color: var(--lv-stage-line); }
.lv-map .leaflet-control-zoom a:hover { background: #2a2a27; }

.lv-map__reset { position: absolute; z-index: 500; top: .75rem; left: .75rem; display: inline-flex; align-items: center; gap: .3rem; padding: .35rem .7rem; border: 1px solid var(--lv-stage-line); border-radius: 8px; background: rgba(26,26,24,.9); color: var(--lv-stage-ink); font-size: .8125rem; font-weight: 600; animation: lv-rise .3s var(--lv-ease); }
.lv-map__reset .icon { width: 1rem; height: 1rem; }
.lv-map__legend { position: absolute; z-index: 500; left: .75rem; bottom: .75rem; max-width: 260px; padding: .6rem .75rem; border: 1px solid var(--lv-stage-line); border-radius: 10px; background: rgba(18,18,17,.82); backdrop-filter: blur(6px); font-size: .75rem; color: var(--lv-stage-muted); pointer-events: none; }
.lv-map__legend-title { margin-bottom: .4rem; font-weight: 600; color: var(--lv-stage-ink); }
.lv-map__ramp { display: flex; gap: 2px; }
.lv-map__ramp i { flex: 1; height: 10px; border-radius: 2px; }
.lv-map__ramp i:first-child { border-radius: 4px 2px 2px 4px; }
.lv-map__ramp i:last-child { border-radius: 2px 4px 4px 2px; }
.lv-map__ramp-labels { display: flex; justify-content: space-between; margin-top: .25rem; font-variant-numeric: tabular-nums; }
.lv-map__legend-note { margin-top: .3rem; }
.lv-map__keys { margin: 0; padding: 0; list-style: none; display: grid; gap: .3rem; }
.lv-map__keys li { display: flex; align-items: center; gap: .5rem; }
.lv-key { flex: 0 0 22px; height: 0; border-top: 2.5px solid #5eb1ff; }
.lv-key--forn { border-top: 2.5px dashed #b89dff; }
.lv-key--pkg { flex-basis: 10px; height: 10px; margin: 0 6px; border: 0; border-radius: 50%; background: #5eb1ff; box-shadow: 0 0 0 3px rgba(94,177,255,.25); }
.lv-key--late { flex-basis: 14px; height: 14px; margin: 0 4px; border: 2px solid #ff5d5d; border-radius: 50%; }
.lv-map__loading { position: absolute; z-index: 600; inset: 0; display: grid; place-items: center; place-content: center; grid-auto-flow: column; gap: .5rem; color: var(--lv-stage-muted); font-size: .875rem; text-align: center; padding: 1rem; }
.lv-map__loading[hidden] { display: none; }
.lv-map__source { margin: .75rem 0 0; font-size: .75rem; color: var(--lv-muted); }

/* Tooltip */
.leaflet-tooltip.lv-map-tip { display: grid; gap: .1rem; padding: .5rem .65rem; border: 1px solid #35352f; border-radius: 9px; background: rgba(14,14,13,.96); color: #f4f3ef; font-size: .8125rem; line-height: 1.35; box-shadow: 0 10px 24px -10px rgba(0,0,0,.7); }
.leaflet-tooltip.lv-map-tip::before { display: none; }
.lv-map-tip strong { font-size: .875rem; }
.lv-map-tip span { font-variant-numeric: tabular-nums; }
.lv-map-tip small { color: #a9a79f; }
.lv-map-tip small.is-late { color: #ff8a8a; }

/* Bolhas, rotas e marcadores */
.lv-bubble { cursor: pointer; transition: fill .5s var(--lv-ease); }
.lv-bubble:hover { stroke: #fff; }
.lv-bubble.is-focused { stroke: #fff; stroke-width: 2.5; }
.lv-arc-flow.is-moving { animation: lv-flow 1.4s linear infinite; }
.lv-arc-hit { cursor: pointer; }
@keyframes lv-flow { to { stroke-dashoffset: -32; } }
.lv-arrow i { position: absolute; inset: 0; transform: rotate(var(--a)); }
.lv-arrow i::after { content: ""; position: absolute; top: 2px; left: 2px; border-left: 11px solid var(--c); border-top: 5px solid transparent; border-bottom: 5px solid transparent; filter: drop-shadow(0 0 3px rgba(0,0,0,.6)); }
.lv-pkg i { position: absolute; inset: 1px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 30%, transparent), 0 0 12px var(--c); animation: lv-glow 1.8s ease-in-out infinite; cursor: pointer; }
@keyframes lv-glow { 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--c) 18%, transparent), 0 0 18px var(--c); } }
.lv-dest { display: grid !important; place-items: center; border-radius: 50%; background: #1c1c1a; border: 2px solid #f4f3ef; color: #f4f3ef; font-size: .75rem; font-weight: 700; font-variant-numeric: tabular-nums; box-shadow: 0 0 0 4px rgba(244,243,239,.12); cursor: pointer; transition: transform .2s var(--lv-ease); animation: lv-pop .45s var(--lv-ease) both; }
.lv-dest:hover, .lv-dest.is-selected { box-shadow: 0 0 0 6px rgba(244,243,239,.22); }
.lv-dest.is-selected { background: #f4f3ef; color: #121211; }
.lv-dest.is-late { border-color: #ff5d5d; box-shadow: 0 0 0 4px rgba(255,93,93,.18); }
.lv-dest.is-late::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid #ff5d5d; animation: lv-ring 1.8s ease-out infinite; }
.lv-origin i { position: absolute; inset: 3px; border-radius: 50%; background: #fff; box-shadow: 0 0 14px rgba(255,255,255,.9); }
.lv-origin b { position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(255,255,255,.7); animation: lv-ring 2.4s ease-out infinite; }
.lv-origin b + b { animation-delay: 1.2s; }
.lv-origin--focus i { background: #ffab7a; box-shadow: 0 0 14px #ffab7a; }
.lv-origin--focus b { border-color: #ffab7a; }
@keyframes lv-ring { from { transform: scale(.6); opacity: 1; } to { transform: scale(2.6); opacity: 0; } }
@keyframes lv-pop { from { transform: scale(.2); opacity: 0; } }
@keyframes lv-rise { from { transform: translateY(8px); opacity: 0; } }

/* Painel lateral */
.lv-map__panel { min-width: 0; max-height: 680px; overflow: auto; }
.lv-map__panel-body { padding: 1rem; }
.lv-map__panel-body.is-in { animation: lv-rise .35s var(--lv-ease); }
.lv-panel__title { display: flex; flex-direction: column; gap: .15rem; margin: 0 0 .9rem; font-family: var(--lv-display); font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.lv-panel__title small { font-family: var(--tblr-font-sans-serif); font-size: .8125rem; font-weight: 500; color: var(--lv-muted); }
.lv-panel__sub { margin: 1rem 0 .5rem; font-size: .8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--lv-muted); }
.lv-panel__back { display: inline-flex; align-items: center; gap: .25rem; margin: 0 0 .6rem; padding: .2rem .5rem .2rem .3rem; border: 0; border-radius: 6px; background: var(--lv-sand); color: #3d3c39; font-size: .8125rem; font-weight: 600; }
.lv-panel__back .icon { width: 1rem; height: 1rem; }
.lv-panel__back:hover { background: var(--lv-sand-2); }
.lv-panel__hint { margin: .5rem 0 0; font-size: .75rem; color: var(--lv-muted); }
.lv-panel__empty { margin: 0; color: var(--lv-muted); font-size: .875rem; }
.lv-panel__empty--big { display: grid; justify-items: center; gap: .5rem; padding: 2rem 0; text-align: center; }
.lv-panel__empty--big .icon { width: 2rem; height: 2rem; }
.lv-panel__note { display: flex; gap: .5rem; align-items: flex-start; width: 100%; margin: 1rem 0 0; padding: .6rem .7rem; border: 0; border-radius: 9px; background: var(--lv-warn-bg); color: var(--lv-warn); font-size: .8125rem; text-align: left; }
.lv-panel__note .icon { flex-shrink: 0; width: 1rem; height: 1rem; margin-top: .1rem; }
.lv-panel__note--btn:hover { filter: brightness(.97); text-decoration: underline; }
.lv-panel__stats { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: 0; }
.lv-panel__stats div { padding: .6rem .7rem; border-radius: 10px; background: var(--lv-sand); }
.lv-panel__stats dt { font-size: .75rem; font-weight: 500; color: var(--lv-muted); }
.lv-panel__stats dd { margin: 0; font-family: var(--lv-display); font-size: 1.3rem; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }

.lv-ranklist { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.lv-rank { display: grid; grid-template-columns: 1.6rem minmax(0, 1fr) auto; align-items: center; gap: .6rem; width: 100%; padding: .45rem .5rem; border: 0; border-radius: 8px; background: transparent; text-align: left; transition: background .15s; }
.lv-rank:hover, .lv-rank:focus-visible { background: var(--lv-sand); }
.lv-rank__pos { font-size: .75rem; font-weight: 700; color: var(--lv-muted); text-align: center; font-variant-numeric: tabular-nums; }
.lv-rank__main { display: grid; gap: .3rem; min-width: 0; }
.lv-rank__name { overflow: hidden; font-size: .875rem; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
.lv-rank__name small { font-weight: 500; color: var(--lv-muted); }
.lv-rank__bar { height: 6px; border-radius: 3px; background: var(--lv-sand-2); overflow: hidden; }
.lv-rank__bar i { display: block; width: var(--w); height: 100%; border-radius: 3px; background: linear-gradient(90deg, #cc5521, #f0733b); transform-origin: left; animation: lv-grow .6s var(--lv-ease) both; }
@keyframes lv-grow { from { transform: scaleX(0); } }
.lv-rank__value { font-size: .875rem; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }

.lv-dests { margin: 0; padding: 0; list-style: none; display: grid; gap: .4rem; }
.lv-destrow { display: grid; grid-template-columns: 2.1rem minmax(0, 1fr) auto; align-items: center; gap: .65rem; width: 100%; padding: .55rem .6rem; border: 1px solid var(--lv-line); border-radius: 10px; background: var(--lv-paper); text-align: left; transition: border-color .15s, transform .15s var(--lv-ease), box-shadow .15s; }
.lv-destrow:hover { border-color: #cfccc4; transform: translateX(2px); box-shadow: 0 4px 12px -8px rgba(0,0,0,.3); }
.lv-destrow__count { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--lv-ink); color: #fff; font-size: .8125rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-destrow.is-late .lv-destrow__count { background: var(--lv-bad); }
.lv-destrow__main { display: grid; min-width: 0; }
.lv-destrow__main strong { overflow: hidden; font-size: .875rem; white-space: nowrap; text-overflow: ellipsis; }
.lv-destrow__main small { font-size: .75rem; color: var(--lv-muted); }
.lv-destrow__late { display: inline-flex; align-items: center; gap: .2rem; font-weight: 600; color: var(--lv-bad); }
.lv-destrow__late .icon { width: .85rem; height: .85rem; }
.lv-destrow__go { font-size: 1.25rem; color: var(--lv-muted); }

.lv-ship { margin-bottom: .75rem; padding: .8rem; border: 1px solid var(--lv-line); border-left: 3px solid #2a78d6; border-radius: 10px; background: var(--lv-paper); animation: lv-rise .35s var(--lv-ease) both; }
.lv-ship.is-late { border-left-color: var(--lv-bad); }
.lv-ship header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; margin-bottom: .35rem; }
.lv-ship__sale { font-family: var(--lv-display); font-size: 1.15rem; font-weight: 700; }
.lv-ship__client { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: 0 0 .4rem; font-size: .875rem; font-weight: 600; }
.lv-ship__client .icon { width: 1rem; height: 1rem; color: var(--lv-muted); }
.lv-ship__client small { font-weight: 500; color: var(--lv-muted); }
.lv-ship__items { margin: 0 0 .5rem; padding: .45rem .6rem; list-style: none; border-radius: 8px; background: var(--lv-sand); font-size: .8125rem; }
.lv-ship__items b { font-variant-numeric: tabular-nums; }
.lv-ship__meta { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .75rem; margin: 0; font-size: .8125rem; }
.lv-ship__meta dt { font-size: .6875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--lv-muted); }
.lv-ship__meta dd { margin: 0; overflow-wrap: anywhere; }
.lv-ship__meta dd small { color: var(--lv-muted); }
.lv-ship__meta code { padding: 0; background: none; color: inherit; font-size: .8125rem; }
.lv-ship__progress { height: 6px; margin-top: .6rem; border-radius: 3px; background: var(--lv-sand-2); overflow: hidden; }
.lv-ship__progress i { display: block; width: var(--w); height: 100%; border-radius: 3px; background: #2a78d6; transform-origin: left; animation: lv-grow .7s var(--lv-ease) both; }
.lv-ship.is-late .lv-ship__progress i { background: var(--lv-bad); }
.lv-ship__link { display: inline-flex; align-items: center; gap: .3rem; margin-top: .6rem; font-size: .8125rem; font-weight: 600; }
.lv-ship__link .icon { width: .95rem; height: .95rem; }
.lv-chip { display: inline-flex; align-items: center; gap: .25rem; font-weight: 600; }
.lv-chip .icon { width: .95rem; height: .95rem; }
.lv-chip--loja .icon { color: #2a78d6; }
.lv-chip--forn .icon { color: #7a5ce0; }

@media (max-width: 1199.98px) {
  .lv-map__grid { grid-template-columns: minmax(0, 1fr) 320px; }
}
@media (max-width: 991.98px) {
  .lv-map__grid { grid-template-columns: minmax(0, 1fr); }
  .lv-map__panel { max-height: none; }
  .lv-map__canvas { min-height: 460px; }
}
@media (max-width: 767.98px) {
  .lv-map__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .lv-mkpi { padding: .7rem .8rem; }
  .lv-mkpi__value { font-size: 1.45rem; }
  .lv-map__tabs { display: flex; }
  .lv-map__tab { flex: 1; justify-content: center; padding: .5rem .6rem; }
  .lv-map__canvas { min-height: 380px; }
  .lv-map__toolbar { padding: .5rem; }
  .lv-map__toolbar-end { width: 100%; justify-content: space-between; }
  .lv-mseg { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
  .lv-mseg::-webkit-scrollbar { display: none; }
  .lv-mseg button { padding: .3rem .55rem; font-size: .75rem; }
  .lv-map__legend { position: static; max-width: none; padding: .6rem .75rem; border: 0; border-top: 1px solid var(--lv-stage-line); border-radius: 0; background: transparent; backdrop-filter: none; font-size: .6875rem; }
  .lv-map__keys { grid-template-columns: 1fr 1fr; gap: .3rem .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .lv-map *, .lv-map *::before, .lv-map *::after { animation: none !important; transition: none !important; }
}
