/* VIDEREVOX — Painel Administrativo (desktop 1920x1080 de referência) */

/* ------------------------------- telas de auth ---------------------------- */
.auth-wrap { min-height: 100vh; display: grid; place-items: center; padding: 32px 20px; }
.auth-brand { position: fixed; top: 26px; left: 34px; }
.auth-card {
  width: 100%; max-width: 430px; background: rgba(6,14,26,.82); backdrop-filter: blur(6px);
  border: 1px solid rgba(120,160,200,.16); border-radius: 14px; padding: 34px 32px 30px; box-shadow: var(--vdx-shadow);
}
.auth-card h1 { margin: 0 0 22px; text-align: center; font-size: 26px; }
.auth-card .input { background: #fff; color: #111827; text-align: center; font-weight: 500; }
.auth-card .input::placeholder { color: #6b7280; }
.auth-sep { border: 0; border-top: 1px solid rgba(255,255,255,.1); margin: 22px 0; }
.auth-link { display: block; text-align: center; color: #dbeafe; font-size: 14px; text-decoration: underline; background: none; border: 0; cursor: pointer; width: 100%; padding: 4px; }

.register-card { max-width: 1120px; padding: 34px 40px 38px; }
.register-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.register-grid h2 { font-size: 18px; margin: 0 0 4px; }
.register-grid .col-note { font-size: 13px; color: #9fb3c8; margin: 0 0 18px; }
.avatar-drop {
  border: 2px dashed rgba(255,255,255,.28); border-radius: 12px; padding: 22px; text-align: center;
  cursor: pointer; margin-bottom: 16px; background: rgba(255,255,255,.03);
}
.avatar-drop:hover { border-color: var(--vdx-cyan); }
.avatar-preview { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; display: block; border: 3px solid var(--vdx-cyan); }
.pwd-rules { font-size: 12px; color: #9fb3c8; margin: -4px 0 12px; }
.pwd-rules li.ok { color: var(--vdx-green); }

/* --------------------------------- shell ---------------------------------- */
.shell { display: grid; grid-template-columns: auto 1fr; min-height: 100vh; }

.sidebar {
  background: var(--vdx-sidebar); width: 140px; padding: 108px 0 22px; position: relative;
  display: flex; flex-direction: column; gap: 4px; transition: width .2s ease;
}
.sidebar.collapsed { width: 72px; }
.sidebar-toggle {
  position: absolute; right: -11px; top: 50%; width: 22px; height: 42px; border: 0; cursor: pointer;
  background: var(--vdx-sidebar); color: var(--vdx-cyan); border-radius: 0 6px 6px 0; display: grid; place-items: center;
}
.nav-item {
  display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 13px 6px;
  color: #cbd5e1; background: none; border: 0; cursor: pointer; font: inherit; font-size: 12px;
  position: relative; width: 100%; text-align: center;
}
.nav-item svg { width: 26px; height: 26px; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.05); }
.nav-item.active { color: var(--vdx-cyan); }
.nav-item.active::after { content: ""; position: absolute; right: 0; top: 6px; bottom: 6px; width: 4px; background: var(--vdx-cyan); }
.sidebar.collapsed .nav-item span { display: none; }
.nav-spacer { flex: 1; }

.topbar {
  position: fixed; top: 0; left: 0; right: 0; height: 96px; z-index: 50;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 28px 0 28px;
  pointer-events: none;
}
.topbar > * { pointer-events: auto; }
.topbar-store { justify-self: center; display: flex; align-items: center; gap: 12px; font-size: 24px; }
.topbar-store svg { width: 30px; height: 30px; color: var(--vdx-green-2); }
.topbar-right { justify-self: end; display: flex; align-items: center; gap: 14px; }
.notif-btn {
  position: relative; background: var(--vdx-cyan); border: 0; color: #fff; border-radius: 6px;
  padding: 6px 12px 6px 10px; cursor: pointer; display: flex; align-items: center; gap: 6px; font: inherit; font-weight: 700;
}
.notif-btn svg { width: 16px; height: 16px; }
.avatar-circle {
  width: 62px; height: 62px; border-radius: 50%; border: 3px solid #fff; display: grid; place-items: center;
  background: linear-gradient(160deg, #2e86c1, #1a5276); font-weight: 700; font-size: 20px; cursor: pointer; color: #fff;
}
.user-menu { position: absolute; right: 28px; top: 92px; background: #10233b; border-radius: 10px; box-shadow: var(--vdx-shadow); min-width: 220px; padding: 8px; z-index: 60; }
.user-menu b { display: block; padding: 8px 12px 2px; }
.user-menu small { display: block; padding: 0 12px 10px; color: #9fb3c8; }
.user-menu button { width: 100%; text-align: left; background: none; border: 0; color: #fff; font: inherit; padding: 10px 12px; border-radius: 6px; cursor: pointer; }
.user-menu button:hover { background: rgba(255,255,255,.08); }

.main { padding: 96px 0 40px; min-width: 0; }

/* --------------------------------- páginas -------------------------------- */
.page-banner {
  position: relative; margin: 8px 36px 0; border-radius: 4px; overflow: hidden; padding: 30px 34px 26px; min-height: 150px;
}
.page-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,10,20,.9) 30%, rgba(3,10,20,.25) 100%); }
.page-banner > * { position: relative; z-index: 1; }
.page-banner h1 { margin: 0 0 14px; font-size: 40px; font-weight: 400; }
.banner-produtos   { background: linear-gradient(115deg, #0c5f6b, #10a37f); }
.banner-categorias { background: linear-gradient(115deg, #072e35, #1ea87a); }
.banner-setores    { background: linear-gradient(115deg, #0a2d52, #1a7fbf); }
.banner-pessoal    { background: linear-gradient(115deg, #073b32, #17a06f); }
.banner-promocoes  { background: linear-gradient(115deg, #3a2c05, #b98a10); }
.banner-metricas   { background: linear-gradient(115deg, #03302a, #0f9f8b); }

.search-box { position: relative; max-width: 415px; }
.search-box .input { background: #000; padding-right: 44px; font-size: 14px; font-weight: 600; }
.search-box .search-ico { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: #fff; pointer-events: none; }

.tabs { display: flex; gap: 4px; margin: 22px 36px 0; }
.tab {
  background: transparent; border: 0; color: #8fa3b8; font: inherit; font-size: 17px; font-weight: 600;
  padding: 16px 26px; cursor: pointer; border-radius: 8px 8px 0 0; display: flex; align-items: center; gap: 9px;
}
.tab svg { width: 20px; height: 20px; }
.tab.active { background: #fff; color: var(--vdx-ink); }
.tab:hover:not(.active) { color: #fff; }

.panel { background: #fff; color: var(--vdx-ink); margin: 0 36px; padding: 28px 30px 34px; min-height: 420px; border-radius: 0 8px 8px 8px; }
.panel h2 { margin: 0 0 18px; font-size: 20px; }
.panel .sub-title { color: var(--vdx-cyan); font-size: 26px; font-weight: 400; margin: 4px 0 16px; }

.filter-pill {
  background: var(--vdx-cyan); color: #fff; border: 0; border-radius: 5px; font: inherit; font-weight: 700;
  padding: 12px 34px 12px 18px; cursor: pointer; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #fff 50%), linear-gradient(135deg, #fff 50%, transparent 50%);
  background-position: right 16px center, right 11px center; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat;
  margin-bottom: 20px;
}

/* Listas do admin (produtos, categorias, setores, promoções) */
.list-row {
  display: grid; align-items: center; gap: 16px; border: 1px solid var(--vdx-line);
  padding: 0; margin-bottom: 12px; background: #fff; border-radius: 3px; overflow: hidden;
}
.row-products { grid-template-columns: 96px minmax(200px,2fr) 150px 110px 130px 108px; }
.row-simple { grid-template-columns: 1fr auto; padding: 16px 20px; gap: 12px; }
.prod-thumb { width: 96px; height: 96px; display: grid; place-items: center; font-weight: 800; color: #fff; font-size: 11px; text-align: center; padding: 6px; line-height: 1.15; }
.prod-name { font-weight: 700; font-size: 15px; }
.prod-sub { color: var(--vdx-ink-soft); font-size: 13.5px; }
.price-old { text-decoration: line-through; color: #6b7280; font-size: 14px; display: block; }
.price-new { color: #16a92f; font-weight: 700; font-size: 19px; }
.col-label { font-size: 12.5px; color: var(--vdx-ink-soft); font-weight: 600; }
.col-value { font-weight: 700; font-size: 18px; }
.row-actions { background: #c9ccd1; align-self: stretch; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 0 14px; }
.icon-btn { width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--vdx-cyan); color: #fff; display: grid; place-items: center; cursor: pointer; }
.icon-btn svg { width: 18px; height: 18px; }
.icon-btn.ghost { background: transparent; color: var(--vdx-ink-soft); }
.icon-btn.ghost:hover { background: #e5e7eb; }
.list-row.inactive { opacity: .55; }

.pagination { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 24px; }
.pagination button {
  min-width: 34px; height: 34px; border-radius: 50%; border: 0; background: transparent;
  color: var(--vdx-ink-soft); font: inherit; font-weight: 600; cursor: pointer;
}
.pagination button.active { color: var(--vdx-cyan); text-decoration: underline; font-weight: 800; }
.pagination button.nav { background: var(--vdx-cyan); color: #fff; }
.pagination button:disabled { opacity: .35; cursor: not-allowed; }

.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; max-width: 1200px; }
.form-grid.narrow { grid-template-columns: repeat(auto-fit, minmax(180px, 260px)); }
.panel .field > label { color: var(--vdx-ink-soft); }
.panel .input, .panel .select, .panel .textarea { background: #e2e4e8; color: var(--vdx-ink); font-weight: 600; }
.panel .input::placeholder, .panel .textarea::placeholder { color: #6b7280; font-weight: 500; }
.panel .input.dark, .panel .select.dark { background: #0e1726; color: #fff; }
.section-title { color: var(--vdx-cyan); font-size: 21px; margin: 26px 0 14px; font-weight: 400; }
.toggle-grid { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 8px; }
.toggle-chip { background: #e2e4e8; border-radius: 5px; padding: 9px 16px; display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 13.5px; color: var(--vdx-ink); }
.divider { border: 0; border-top: 1px solid var(--vdx-line); margin: 26px 0; }
.chip-select { display: flex; flex-wrap: wrap; gap: 9px; margin: 12px 0 20px; }
.chip {
  border: 0; border-radius: 5px; padding: 8px 15px; font: inherit; font-weight: 700; font-size: 13.5px;
  background: var(--vdx-cyan); color: #fff; cursor: pointer;
}
.chip[aria-pressed="true"] { background: var(--vdx-green-2); }

/* Mapa */
.map-stage { position: relative; margin: 8px 36px 0; }
.map-title { display: flex; align-items: center; gap: 14px; font-size: 32px; margin: 0 0 10px; font-weight: 400; }
.map-title svg { width: 34px; height: 34px; color: var(--vdx-green-2); }
.map-canvas { position: relative; width: 100%; background: #0c1a30; border-radius: 4px; overflow: hidden; }
.map-canvas svg { display: block; width: 100%; height: auto; }
.gondola { cursor: pointer; }
.gondola:hover rect { stroke: var(--vdx-cyan); stroke-width: 3; }
.gondola:focus-visible rect { stroke: var(--vdx-cyan); stroke-width: 3; outline: none; }
.sector-label { fill: #fff; font-size: 13px; font-weight: 600; pointer-events: none; text-transform: capitalize; }

.map-toolbar { position: absolute; right: 14px; bottom: 14px; display: flex; gap: 4px; }
.map-tool {
  width: 56px; height: 56px; border: 0; background: #0e2035; color: #fff; cursor: pointer; display: grid; place-items: center; position: relative;
}
.map-tool svg { width: 26px; height: 26px; }
.map-tool.active { background: var(--vdx-cyan); }
.map-tool .badge { position: absolute; top: -12px; right: -6px; background: var(--vdx-red); border-radius: 3px; font-size: 12px; font-weight: 800; padding: 1px 6px; }
.map-legend { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; color: #9fb3c8; align-items: center; }
.legend-dot { width: 12px; height: 12px; border-radius: 3px; display: inline-block; margin-right: 6px; vertical-align: -1px; }
.map-alt-table { margin: 14px 36px 0; }
.map-alt-table summary { cursor: pointer; color: var(--vdx-cyan); font-weight: 600; padding: 8px 0; }
.map-alt-table table { width: 100%; border-collapse: collapse; background: #fff; color: var(--vdx-ink); border-radius: 6px; overflow: hidden; margin-top: 10px; }
.map-alt-table th, .map-alt-table td { padding: 9px 14px; text-align: left; border-bottom: 1px solid var(--vdx-line); font-size: 13.5px; }
.map-alt-table th { background: #eef2f6; font-weight: 700; }

/* Estados vazios (Telas 04/05/06) */
.state-wrap { display: grid; place-items: center; min-height: 62vh; padding: 20px; }
.state-card { background: rgba(6,14,26,.9); border-radius: 10px; padding: 34px 40px; max-width: 470px; text-align: center; position: relative; }
.state-card.success { background: var(--vdx-green-2); }
.state-badge {
  width: 66px; height: 66px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto -20px;
  position: relative; z-index: 2; color: #fff;
}
.state-badge.warn { background: var(--vdx-amber); color: #1a1a00; }
.state-badge.ok { background: var(--vdx-green-2); }
.state-badge svg { width: 34px; height: 34px; }
.state-card h2 { font-size: 21px; margin: 16px 0 14px; }
.state-card hr { border: 0; border-top: 1px solid rgba(120,180,230,.4); margin: 14px 0; }
.state-card p { margin: 0; color: #dbe6f0; line-height: 1.55; }
.state-note { margin-top: 20px; font-size: 13px; color: #7e93a8; }
.robot { width: 130px; margin: 0 auto; display: block; }
.progress-line { max-width: 760px; margin: 22px auto 0; }
.progress-line .bar { background: #fff; border-radius: 2px; height: 22px; padding: 3px; }
.progress-line .bar > i { display: block; height: 100%; background: var(--vdx-cyan); transition: width .4s ease; }

/* Detalhe da gôndola (Tela 12) */
.gond-modal { padding: 0 0 28px; }
.gond-hero { height: 190px; margin: 22px 28px 0; border-radius: 4px; background: linear-gradient(100deg, #0b6a3e, #1e88c7); position: relative; overflow: hidden; }
.gond-hero .cam { position: absolute; left: 16px; bottom: 14px; background: rgba(0,0,0,.55); padding: 6px 12px; border-radius: 4px; font-size: 13px; font-weight: 700; }
.gond-close { position: absolute; right: 20px; top: 16px; background: none; border: 0; color: #fff; cursor: pointer; }
.gond-close svg { width: 30px; height: 30px; }
.gond-body { padding: 22px 28px 0; }
.gond-head { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; margin-bottom: 22px; }
.gond-head h2 { font-size: 30px; margin: 0; font-weight: 400; flex: 1; min-width: 220px; }
.repo-meter { min-width: 260px; }
.repo-meter small { display: block; margin-bottom: 6px; font-size: 13px; }
.repo-meter .bar { background: #fff; border-radius: 3px; height: 20px; padding: 3px; }
.repo-meter .bar > i { display: block; height: 100%; background: var(--vdx-red); border-radius: 2px; }
.gond-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }
.white-box { background: #fff; color: var(--vdx-ink); border-radius: 4px; padding: 0 0 16px; }
.white-box h3 { margin: 0; padding: 15px 20px; font-size: 15px; border-bottom: 1px solid var(--vdx-line); }
.white-box .box-body { padding: 16px 20px 0; }
.donuts { display: flex; gap: 26px; flex-wrap: wrap; }
.donut { text-align: center; }
.donut figcaption { font-size: 14px; margin-top: 6px; }
.donut .qty { font-size: 26px; font-weight: 700; }
.donut .val { font-size: 14px; color: #cbd5e1; }
.repo-list { margin-top: 22px; }
.repo-item { display: grid; grid-template-columns: 60px 1fr 240px; gap: 16px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.repo-avatar { width: 56px; height: 56px; border-radius: 6px; display: grid; place-items: center; font-weight: 700; color: #fff; font-size: 18px; }
.gond-prod-row { display: grid; grid-template-columns: 60px 1fr auto; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid #eef1f5; }

/* Métricas */
.metrics { padding: 0 36px; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin: 22px 0; }
.kpi { background: #0e2138; border-radius: 10px; padding: 20px 22px; }
.kpi .label { color: #9fb3c8; font-size: 14px; }
.kpi .value { font-size: 34px; font-weight: 700; margin: 8px 0 4px; }
.kpi .delta { font-size: 13px; font-weight: 700; }
.kpi .delta.up { color: var(--vdx-green); }
.kpi .delta.down { color: var(--vdx-cyan); }
.metric-card { background: #0e2138; border-radius: 10px; padding: 22px; margin-bottom: 18px; }
.metric-card h3 { margin: 0 0 16px; font-size: 17px; font-weight: 600; }
.metrics-2col { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; align-items: start; }
.bar-row { display: grid; grid-template-columns: 190px 1fr 54px; gap: 12px; align-items: center; margin-bottom: 11px; font-size: 14px; }
.bar-track { background: #fff; border-radius: 999px; height: 14px; overflow: hidden; }
.bar-track > i { display: block; height: 100%; background: var(--vdx-cyan); }
.mtable { width: 100%; border-collapse: collapse; font-size: 14px; }
.mtable th { text-align: left; padding: 10px 12px; color: #9fb3c8; font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.12); }
.mtable td { padding: 11px 12px; border-bottom: 1px solid rgba(255,255,255,.07); }
.mtable tr:hover td { background: rgba(255,255,255,.04); }
.alert-item { border-left: 4px solid var(--vdx-cyan); padding: 10px 14px; margin-bottom: 12px; background: rgba(255,255,255,.04); border-radius: 0 6px 6px 0; }
.alert-item.critical { border-left-color: var(--vdx-red); }
.alert-item.warning { border-left-color: var(--vdx-orange); }
.alert-item.info { border-left-color: var(--vdx-cyan); }
.alert-item b { display: block; font-size: 14px; margin-bottom: 3px; }
.alert-item small { color: #9fb3c8; font-size: 12.5px; }
.sev { font-size: 11px; text-transform: uppercase; font-weight: 800; letter-spacing: .06em; }
.sev.critical { color: #ff6b78; } .sev.warning { color: #f0a53c; } .sev.info { color: #5fc3ee; }

.empty-hint { text-align: center; padding: 46px 20px; color: var(--vdx-ink-soft); }
.loading { text-align: center; padding: 40px; color: #9fb3c8; }

@media (max-width: 1100px) {
  .register-grid, .gond-cols, .metrics-2col { grid-template-columns: 1fr; }
  .row-products { grid-template-columns: 72px 1fr 120px; }
  .row-products > .hide-sm { display: none; }
  .page-banner h1 { font-size: 30px; }
}
