:root {
  --dv-pink: #ed76bc;
  --dv-yellow: #f9da73;
  --dv-text: #0f172a;
  --dv-text-soft: #475569;
  --dv-text-muted: #94a3b8;
  --dv-bg: #fffdfb;
  --dv-card: #ffffff;
  --dv-border: rgba(237, 118, 188, 0.12);
  --dv-border-soft: rgba(15, 23, 42, 0.06);
  --dv-success: #1f9d68;
  --dv-danger: #c2416c;
  --dv-shadow: 0 1px 3px rgba(15,23,42,.04), 0 8px 24px rgba(15,23,42,.06);
  --dv-shadow-hover: 0 2px 6px rgba(15,23,42,.05), 0 12px 32px rgba(15,23,42,.10);
  --dv-radius: 20px;
  --dv-radius-sm: 12px;
  /* Escala de espaciado consistente */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --dv-ease: cubic-bezier(.4, 0, .2, 1);
}

.davinci-shell,
.davinci-shell * {
  box-sizing: border-box;
}

.davinci-shell {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--dv-text);
  padding: 20px 0 40px;
}

.davinci-app,
.davinci-admin {
  width: 100%;
}

.mobile-app {
  max-width: 500px;
  margin: 0 auto;
}

.davinci-admin {
  max-width: 1380px;
  margin: 0 auto;
}

.davinci-card,
.davinci-wallet,
.davinci-modal-card {
  background: var(--dv-card);
  border: 1px solid var(--dv-border);
  border-radius: var(--dv-radius);
  box-shadow: var(--dv-shadow);
}

.davinci-login-card {
  max-width: 400px;
  margin: 0 auto;
  padding: 40px 36px;
  text-align: left;
  background: #fff;
  border: 1px solid rgba(237,118,188,.08);
  border-radius: 24px;
  box-shadow: 0 10px 40px rgba(237,118,188,.10), 0 2px 8px rgba(0,0,0,.04);
}

.davinci-header,
.davinci-admin-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.davinci-header h1,
.davinci-admin-header h1 {
  margin: 0 0 4px;
  font-size: 34px;
  line-height: 1.05;
}

.davinci-header p,
.davinci-admin-header p,
.section-head p,
.wallet-sub,
.wallet-label,
.empty-state,
.davinci-alert,
.stat-card span,
.manage-item summary span,
.sale-details span,
.sale-accordion summary span {
  color: var(--dv-text-soft);
}

.davinci-logout {
  text-decoration: none;
  color: var(--dv-text);
  font-weight: 600;
  background: rgba(255,255,255,0.6);
  border: 1px solid var(--dv-border);
  padding: 10px 14px;
  border-radius: 999px;
}

.davinci-wallet {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #111827 0%, #1e293b 50%, #4b5563 100%);
  color: white;
  padding: 28px;
  margin-bottom: 18px;
}

.davinci-wallet::before,
.davinci-wallet::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(237,118,188,.85), rgba(249,218,115,.7));
  filter: blur(12px);
}

.davinci-wallet::before { width: 180px; height: 180px; top: -60px; right: -40px; }
.davinci-wallet::after { width: 140px; height: 140px; bottom: -50px; left: -30px; opacity: .45; }

.wallet-chip {
  width: 48px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(249,218,115,.95), rgba(237,118,188,.9));
  margin-bottom: 20px;
}

.davinci-wallet h2 {
  font-size: clamp(34px, 6vw, 52px);
  margin: 8px 0;
  color: white;
}

.wallet-label,
.wallet-sub { margin: 0; }
.wallet-label { opacity: .82; }
.wallet-sub { color: rgba(255,255,255,.7); }

.davinci-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.admin-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.davinci-card {
  padding: 22px;
  margin-bottom: 18px;
}

.stat-card strong {
  display: block;
  margin-top: 10px;
  font-size: 30px;
  line-height: 1;
}

.section-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  margin-bottom: 18px;
}

.section-head h3 {
  margin: 0;
  font-size: 22px;
}

.davinci-form label,
.davinci-filters label {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.davinci-form label span,
.davinci-filters label span {
  font-size: 13px;
  color: var(--dv-text-soft);
  font-weight: 600;
}

.field-grid,
.davinci-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.davinci-form.compact .field-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.davinci-form input,
.davinci-form select,
.davinci-filters input,
.davinci-filters select {
  width: 100%;
  border: 1px solid var(--dv-border);
  border-radius: 16px;
  padding: 14px 15px;
  min-height: 50px;
  background: #fff;
  color: var(--dv-text);
  outline: none;
}

.davinci-form input:focus,
.davinci-form select:focus,
.davinci-filters input:focus,
.davinci-filters select:focus {
  border-color: rgba(237, 118, 188, 0.4);
  box-shadow: 0 0 0 4px rgba(237, 118, 188, 0.09);
}

.davinci-button,
.mini-btn {
  appearance: none;
  border: 0;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 16px;
  padding: 14px 18px;
  font-weight: 700;
  transition: transform .15s ease, opacity .15s ease;
}

.davinci-button:hover,
.mini-btn:hover { transform: translateY(-1px); }

.davinci-button {
  width: 100%;
  margin-top: 16px;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  color: #fff;
}

.davinci-button.secondary {
  background: #fff;
  color: var(--dv-text);
  border: 1px solid var(--dv-border);
}

.davinci-button.danger {
  background: linear-gradient(135deg, #d84f78, #e77a93);
}

.mini-btn {
  background: rgba(237,118,188,.12);
  color: var(--dv-text);
  padding: 10px 14px;
  border-radius: 12px;
}

.accordion-list,
.manage-item-body,
.inline-actions {
  display: grid;
  gap: 12px;
}

.sale-accordion,
.manage-item {
  border: 1px solid var(--dv-border);
  border-radius: 20px;
  overflow: hidden;
  background: linear-gradient(180deg, #fff, #fff9fb);
}

.sale-accordion summary,
.manage-item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  align-items: center;
}

/* Columna izquierda del summary: nombre arriba, dato abajo */
.davinci-app .sale-accordion summary > div:first-child,
.davinci-app .manage-item summary > div:first-child,
.sale-accordion summary > div:first-child,
.manage-item summary > div:first-child {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 3px;
  min-width: 0;
}
.sale-accordion summary > div:first-child strong,
.manage-item summary > div:first-child strong {
  line-height: 1.2;
  display: block;
}
.sale-accordion summary > div:first-child span,
.manage-item summary > div:first-child span {
  font-size: 12px;
  color: var(--dv-text-soft);
  line-height: 1.2;
  overflow-wrap: anywhere;
  display: block;
}

.sale-accordion summary::-webkit-details-marker,
.manage-item summary::-webkit-details-marker { display: none; }

.sale-summary-right {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex-shrink: 0;
}
.sale-summary-right span { line-height: 1.2; }
.sale-summary-right strong { line-height: 1.2; }

.sale-details,
.manage-item-body {
  padding: 0 18px 18px;
}

.sale-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.sale-details > div { min-width: 0; }

.sale-details strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.davinci-alert {
  padding: 14px 18px;
  border-radius: 18px;
  margin-bottom: 18px;
  border: 1px solid var(--dv-border);
  background: #fff;
}

.davinci-alert-success {
  border-color: rgba(31,157,104,.18);
  color: var(--dv-success);
}

.davinci-alert-error {
  border-color: rgba(194,65,108,.18);
  color: var(--dv-danger);
}

.davinci-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.davinci-tabs a {
  padding: 12px 16px;
  border-radius: 999px;
  text-decoration: none;
  color: var(--dv-text);
  border: 1px solid var(--dv-border);
  background: rgba(255,255,255,.8);
  font-weight: 600;
}

.davinci-tabs a.active {
  background: linear-gradient(135deg, rgba(237,118,188,.16), rgba(249,218,115,.22));
  border-color: rgba(237, 118, 188, 0.28);
}

.filter-actions,
.inline-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.filter-actions .davinci-button,
.inline-actions .davinci-button {
  width: auto;
  margin-top: 0;
}

.table-wrap {
  overflow: auto;
  border: 1px solid var(--dv-border);
  border-radius: 20px;
}

.davinci-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 1080px;
  background: #fff;
}

.davinci-table th,
.davinci-table td {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  text-align: left;
  font-size: 14px;
}

.davinci-table thead th {
  background: #fff8fb;
  position: sticky;
  top: 0;
  z-index: 1;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 12px;
  font-weight: 700;
}

.status-registered,
.status-active {
  background: rgba(31,157,104,.12);
  color: var(--dv-success);
}

.status-corrected {
  background: rgba(249,218,115,.2);
  color: #8a6b09;
}

.status-cancelled,
.status-inactive {
  background: rgba(194,65,108,.12);
  color: var(--dv-danger);
}

.admin-grid-2 {
  display: grid;
  grid-template-columns: 420px minmax(0, 1fr);
  gap: 18px;
}

.davinci-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15,23,42,.45);
  z-index: 9999;
}

.davinci-modal.is-open { display: flex; }

.davinci-modal-card {
  width: min(920px, 100%);
  max-height: 90vh;
  overflow: auto;
  padding: 24px;
  position: relative;
}

.davinci-modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  font-size: 28px;
  cursor: pointer;
}

.empty-state { margin: 0; }

@media (max-width: 980px) {
  .admin-stats,
  .admin-grid-2,
  .field-grid,
  .davinci-filters,
  .davinci-form.compact .field-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 767px) {
  .davinci-shell { padding: 12px 0 24px; }
  .davinci-header,
  .davinci-admin-header,
  .section-head { flex-direction: column; align-items: flex-start; }
  /* El header del vendedor se mantiene en fila: nombre izquierda, Salir derecha */
  .dv-vendor-header-pro {
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
  }
  .davinci-stat-grid,
  .admin-stats,
  .admin-grid-2,
  .field-grid,
  .davinci-filters,
  .davinci-form.compact .field-grid,
  .sale-details { grid-template-columns: 1fr; }
  .davinci-card,
  .davinci-wallet { padding: 18px; }
  .davinci-header h1,
  .davinci-admin-header h1 { font-size: 28px; }
  .filter-actions,
  .inline-actions { flex-direction: column; align-items: stretch; }
  .filter-actions .davinci-button,
  .inline-actions .davinci-button,
  .davinci-logout { width: 100%; }
  .dv-vendor-header-pro .dv-vh-logout { width: auto !important; }
}

/* ── WordPress Admin wrap ───────────────────────────────── */
.davinci-wp-admin-wrap {
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
}

.davinci-wp-admin-wrap .davinci-shell {
  padding: 20px 20px 40px;
}

/* Evitar que el h1 de WordPress choque con el del plugin */
.davinci-wp-admin-wrap .davinci-admin-header h1 {
  font-size: 26px;
}

/* El menú de wp-admin añade un margen lateral, compensamos */
@media (min-width: 783px) {
  .davinci-wp-admin-wrap .davinci-admin {
    max-width: 100%;
  }
}

/* ── Animación venta nueva (AJAX) ───────────────────── */
@keyframes dv-slide-in {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.sale-new { animation: dv-slide-in .35s ease forwards; }

/* ── Botón cargando ─────────────────────────────────── */
.davinci-button:disabled { opacity: .65; cursor: not-allowed; transform: none !important; }

/* ── WP Admin wrap ──────────────────────────────────── */
.wrap.davinci-wp-admin-wrap { padding: 0 !important; margin: 0 !important; max-width: 100% !important; }
.wrap.davinci-wp-admin-wrap .davinci-shell { padding: 20px 20px 40px; }

/* ══════════════════════════════════════════════════════
   LOGIN PAGE
══════════════════════════════════════════════════════ */
.davinci-login-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  gap: 18px;
  background: linear-gradient(135deg, #fdf2f8 0%, #fffbeb 100%);
}

.login-brand {
  text-align: center;
  margin-bottom: 4px;
}

.login-logo-box {
  width: 60px;
  height: 60px;
  margin: 0 auto 14px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(237,118,188,.3);
}

.login-logo-box svg {
  width: 28px;
  height: 28px;
}

.login-brand-name {
  margin: 0;
  font-size: 30px;
  font-weight: 800;
  font-family: 'Outfit', sans-serif;
  background: linear-gradient(135deg, var(--dv-pink), #f0a868);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.login-brand-sub {
  margin: 6px 0 0;
  color: var(--dv-text-soft);
  font-size: 14px;
  font-weight: 500;
}

.login-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, #eee, transparent);
  margin: 0 0 26px;
}

.login-field-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 18px;
}

.login-field-group label {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.login-field-group label span {
  font-size: 13px;
  font-weight: 600;
  color: #5a6070;
}

.login-input-wrap {
  position: relative;
}

.login-input-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: #b8bdc8;
  pointer-events: none;
}

.login-field-group input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #e8eaed;
  border-radius: 14px;
  padding: 13px 14px 13px 42px;
  min-height: 50px;
  background: #fcfcfd;
  color: var(--dv-text);
  font-size: 15px;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}

.login-field-group input:focus {
  border-color: rgba(237,118,188,.45);
  box-shadow: 0 0 0 4px rgba(237,118,188,.09);
  background: #fff;
}

/* Campo de contraseña: espacio para icono izq + ojo der */
.login-input-wrap input[type="password"],
.login-input-wrap input#dv-login-pass {
  padding-right: 46px;
}

.eye-toggle {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  cursor: pointer;
  color: #b8bdc8;
  padding: 4px;
  display: flex;
  align-items: center;
  transition: color .15s;
}

.eye-toggle:hover { color: var(--dv-pink); }

.eye-toggle svg {
  width: 18px;
  height: 18px;
}

.login-extras {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}

.davinci-login-page .check-label {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 9px;
  font-size: 13.5px;
  color: #5a6070;
  cursor: pointer;
  margin: 0;
  text-align: left;
}

.davinci-login-page .check-label input[type="checkbox"] {
  width: 17px;
  height: 17px;
  min-width: 17px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--dv-pink);
  cursor: pointer;
}

.davinci-login-page .check-label span {
  display: inline;
  line-height: 1.3;
}

.login-footer-note {
  font-size: 12px;
  color: #a8adb8;
  margin: 0;
  text-align: center;
}

/* ── Responsivo login ── */
@media (max-width: 480px) {
  .davinci-login-page { padding: 24px 16px; }
  .davinci-login-card { padding: 32px 24px; border-radius: 20px; }
  .login-brand-name { font-size: 26px; }
  .login-field-group input { font-size: 16px; } /* evita zoom en iOS */
}

/* Spinner en botón de login */
.davinci-button.is-loading::after {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255,255,255,.5);
  border-top-color: #fff;
  border-radius: 50%;
  animation: dv-spin .7s linear infinite;
  margin-left: 8px;
  vertical-align: middle;
}

@keyframes dv-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 480px) {
  .login-card-v2 {
    padding: 28px 20px;
    border-radius: 20px;
  }
}

/* ══════════════════════════════════════════════════════
   TANDA 1 — MEJORAS
══════════════════════════════════════════════════════ */

/* ── Stats grid extendido (4 cards) ─────────────────── */
.davinci-stat-grid.vendor-stats {
  grid-template-columns: repeat(2, minmax(0,1fr));
}

/* ── Filtros historial vendedor ──────────────────────── */
.dv-vendor-filters {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--dv-border);
}

.dv-vendor-filters label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--dv-text-soft);
}

.dv-vendor-filters input,
.dv-vendor-filters select {
  border: 1px solid var(--dv-border);
  border-radius: 14px;
  padding: 11px 13px;
  background: #fff;
  color: var(--dv-text);
  font-size: 14px;
  outline: none;
  width: 100%;
}

.dv-vendor-filters input:focus,
.dv-vendor-filters select:focus {
  border-color: rgba(237,118,188,.4);
  box-shadow: 0 0 0 3px rgba(237,118,188,.09);
}

.dv-filter-btn {
  grid-column: 1 / -1;
  margin-top: 0 !important;
}

.filter-clear-link {
  font-size: 13px;
  color: var(--dv-pink);
  text-decoration: none;
  font-weight: 600;
  white-space: nowrap;
}

.filter-clear-link:hover { text-decoration: underline; }

.vendor-history-count {
  font-size: 13px;
  color: var(--dv-text-soft);
  margin: 0 0 12px;
}

/* ── Botón dinámico nav ──────────────────────────────── */
.davinci-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  color: #fff !important;
  font-weight: 700;
  padding: 12px 24px;
  border-radius: 999px;
  text-decoration: none !important;
  transition: transform .15s ease, opacity .15s ease;
}
.davinci-nav-btn:hover { transform: translateY(-1px); opacity: .92; }

@media (max-width: 767px) {
  .dv-vendor-filters { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════
   TANDA 2 — DASHBOARD
══════════════════════════════════════════════════════ */

/* ── Gráfico ─────────────────────────────────────────── */
.dv-chart-card { margin-bottom: 18px; }
.dv-chart-wrap {
  position: relative;
  height: 220px;
}

/* ── Ranking vendedores ──────────────────────────────── */
.dv-ranking-list { display: flex; flex-direction: column; gap: 12px; }

.dv-ranking-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 16px;
  background: linear-gradient(180deg, #fff, #fff9fb);
  border: 1px solid var(--dv-border);
}

.dv-rank-pos {
  font-size: 22px;
  min-width: 36px;
  text-align: center;
  font-weight: 700;
  color: var(--dv-text-soft);
}

.dv-rank-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dv-rank-info strong { font-size: 15px; }
.dv-rank-info span   { font-size: 12px; color: var(--dv-text-soft); }

.dv-rank-count {
  text-align: center;
  min-width: 48px;
}
.dv-rank-count strong {
  display: block;
  font-size: 22px;
  line-height: 1;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.dv-rank-count span { font-size: 11px; color: var(--dv-text-soft); }

/* ── Por clínica ─────────────────────────────────────── */
.dv-clinic-row {
  margin-bottom: 14px;
}

.dv-clinic-name {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
  font-size: 14px;
}

.dv-clinic-name strong { color: var(--dv-text); }
.dv-clinic-name span   { color: var(--dv-text-soft); font-size: 13px; }

.dv-clinic-bar-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.dv-clinic-bar-wrap > div {
  flex: 1;
  background: rgba(237,118,188,.1);
  border-radius: 999px;
  height: 10px;
  overflow: hidden;
}

.dv-clinic-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--dv-pink), var(--dv-yellow));
  border-radius: 999px;
  transition: width .6s ease;
}

.dv-clinic-count {
  font-size: 13px;
  font-weight: 700;
  color: var(--dv-text);
  min-width: 28px;
  text-align: right;
}

/* ── Ranking vendedor — fila propia destacada ────────── */
.dv-vendor-ranking .dv-ranking-list { gap: 8px; }

.dv-ranking-me {
  background: linear-gradient(135deg, rgba(237,118,188,.12), rgba(249,218,115,.10)) !important;
  border-color: rgba(237,118,188,.3) !important;
}

.dv-me-badge {
  display: inline-block;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
  vertical-align: middle;
  margin-left: 4px;
}

/* ══════════════════════════════════════════════════════
   NÓMINA Y BONOS
══════════════════════════════════════════════════════ */

/* ── Selector de período ─────────────────────────────── */
.dv-period-form {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--dv-border);
}
.dv-period-form label {
  display: flex; flex-direction: column; gap: 6px;
  font-size: 13px; font-weight: 600; color: var(--dv-text-soft);
}
.dv-period-form select {
  border: 1px solid var(--dv-border); border-radius: 14px;
  padding: 10px 14px; background: #fff; color: var(--dv-text);
  font-size: 14px; outline: none; cursor: pointer;
}
.dv-period-form select:focus { border-color: rgba(237,118,188,.4); }

/* ── Botones export ──────────────────────────────────── */
.payroll-exports { display: flex; gap: 8px; align-items: center; }
.payroll-exports .davinci-button { width: auto; margin-top: 0; padding: 10px 16px; }

/* ── Tabla nómina ────────────────────────────────────── */
.payroll-table .neto-col { color: var(--dv-success); font-weight: 700; }
.payroll-table .ret-col  { color: var(--dv-danger); }

.payroll-total td {
  font-weight: 700;
  background: #fff8fb;
  border-top: 2px solid rgba(237,118,188,.3);
}
.payroll-total .neto-col { color: var(--dv-success); font-size: 16px; }

.comm-badge {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; padding: 4px 10px; font-size: 12px; font-weight: 700;
}
.comm-fixed   { background: rgba(249,218,115,.3); color: #8a6b09; }
.comm-percent { background: rgba(237,118,188,.15); color: #b5309a; }

/* ── Lista de bonos ──────────────────────────────────── */
.dv-bonus-period-title {
  font-size: 14px; color: var(--dv-text-soft); margin-bottom: 12px;
}
.dv-bonus-list { display: flex; flex-direction: column; gap: 8px; }

.dv-bonus-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px;
  border: 1px solid var(--dv-border);
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, #fff9fb);
}
.dv-bonus-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.dv-bonus-info strong { font-size: 14px; }
.dv-bonus-info span   { font-size: 12px; color: var(--dv-text-soft); }
.dv-bonus-amount { color: var(--dv-success); font-size: 15px; white-space: nowrap; }

.danger-mini {
  appearance: none; border: 0; cursor: pointer;
  background: rgba(194,65,108,.1); color: var(--dv-danger);
  border-radius: 8px; padding: 6px 10px; font-size: 13px; font-weight: 700;
}
.danger-mini:hover { background: rgba(194,65,108,.2); }

/* ── Tipo comisión en form vendedores ────────────────── */
.comm-type-field { grid-column: 1 / -1; }

/* ══════════════════════════════════════════════════════
   FIXES RESPONSIVE
══════════════════════════════════════════════════════ */

/* ── Botón Salir responsivo en móvil ────────────────── */
@media (max-width: 480px) {
  .davinci-header {
    flex-wrap: wrap;
    gap: 10px;
  }

  /* El header del vendedor NO se apila: nombre izquierda, Salir derecha */
  .dv-vendor-header-pro {
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 12px;
  }
  .dv-vendor-header-pro .dv-vh-logout {
    width: auto !important;
    flex-shrink: 0;
  }

  .davinci-logout {
    width: 100%;
    text-align: center;
    padding: 12px;
    font-size: 14px;
    border-radius: 16px;
  }

  /* Stat grid 2 columnas en móvil pequeño */
  .davinci-stat-grid {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .stat-card strong {
    font-size: 22px;
  }

  .stat-card span {
    font-size: 11px;
  }

  /* Íconos del ranking más pequeños en móvil */
  .dv-rank-pos {
    font-size: 16px;
    min-width: 28px;
  }

  .dv-rank-count strong {
    font-size: 18px;
  }

  /* Wallet más compacta */
  .davinci-wallet h2 {
    font-size: clamp(28px, 8vw, 44px);
  }

  /* Formulario en 1 columna en móvil */
  .field-grid {
    grid-template-columns: 1fr;
  }

  /* Header más compacto */
  .davinci-header h1 {
    font-size: 24px;
  }

  /* Login card más compacta */
  .login-card-v2 {
    padding: 24px 18px;
  }

  /* Tabs scrollable horizontalmente */
  .davinci-tabs {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
  }

  .davinci-tabs a {
    white-space: nowrap;
    flex-shrink: 0;
  }
}

/* ── Ajuste ranking vendedor en móvil ────────────────── */
@media (max-width: 600px) {
  .dv-ranking-row {
    padding: 10px 12px;
    gap: 10px;
  }

  .dv-rank-info strong {
    font-size: 14px;
  }

  .dv-rank-info span {
    font-size: 11px;
  }
}

/* ══════════════════════════════════════════════════════
   TANDA 3 — ALERTAS
══════════════════════════════════════════════════════ */

.dv-alerts-card {
  border-left: 4px solid #f9da73;
}

.dv-alert-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dv-alert-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--dv-border);
  background: #fff;
}

.dv-alert-high { border-color: rgba(194,65,108,.25); background: rgba(194,65,108,.04); }
.dv-alert-med  { border-color: rgba(249,218,115,.5); background: rgba(249,218,115,.08); }

.dv-alert-icon { font-size: 18px; flex-shrink: 0; }

.dv-alert-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dv-alert-info strong { font-size: 14px; }
.dv-alert-info span   { font-size: 12px; color: var(--dv-text-soft); }

/* ══════════════════════════════════════════════════════
   TANDA 1 MEJORAS — DESCUENTO EN HISTORIAL + BONOS
══════════════════════════════════════════════════════ */

/* ── Badge de descuento en el resumen del acordeón ──── */
.sale-summary-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.sale-disc-badge {
  font-size: 11px;
  font-weight: 700;
  color: var(--dv-danger);
  background: rgba(194,65,108,.1);
  border-radius: 999px;
  padding: 2px 8px;
}

/* Acordeón con descuento — borde sutil */
.sale-discounted > summary {
  border-left: 3px solid rgba(194,65,108,.35);
}

/* ── Descuento y comisión dentro del detalle ─────────── */
.sale-disc-row {
  grid-column: 1 / -1;
  background: rgba(194,65,108,.06);
  border-radius: 10px;
  padding: 8px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sale-disc-row span { font-size: 13px; color: var(--dv-text-soft); }

.disc-neg { color: var(--dv-danger); }
.comm-pos { color: var(--dv-success); }

/* ── Ver más ventas (desplegable) ────────────────────── */
.dv-more-sales {
  margin-top: 10px;
  border: 1px solid var(--dv-border);
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(180deg, #fff, #fff9fb);
}

.dv-more-sales > summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--dv-pink);
  text-align: center;
  transition: background .15s;
}

.dv-more-sales > summary::-webkit-details-marker { display: none; }
.dv-more-sales > summary:hover { background: rgba(237,118,188,.05); }

.dv-more-sales[open] > summary { border-bottom: 1px solid var(--dv-border); }

.dv-more-sales-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 10px;
}

.dv-more-sales-list .sale-accordion {
  margin-bottom: 8px;
}

.dv-more-sales-list .sale-accordion:last-child {
  margin-bottom: 0;
}

/* ══════════════════════════════════════════════════════
   CONTROL FINANCIERO
══════════════════════════════════════════════════════ */

/* ── Resumen financiero empresa ──────────────────────── */
.dv-company-net { margin-bottom: 18px; }

.dv-company-net.is-paid {
  border-color: rgba(31,157,104,.25);
  background: linear-gradient(180deg, #fff, rgba(31,157,104,.03));
}

.dv-company-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 18px;
}

.dv-company-stat {
  background: #f8fafc;
  border: 1px solid var(--dv-border);
  border-radius: 16px;
  padding: 14px 16px;
  text-align: center;
}

.dv-company-stat span {
  display: block;
  font-size: 12px;
  color: var(--dv-text-soft);
  margin-bottom: 6px;
  font-weight: 600;
}

.dv-company-stat strong {
  font-family: -apple-system, sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--dv-text);
}

.dv-company-stat strong.neg { color: var(--dv-danger); }

.dv-company-stat.highlight {
  background: linear-gradient(135deg, rgba(31,157,104,.08), rgba(31,157,104,.04));
  border-color: rgba(31,157,104,.2);
}

.dv-company-stat.highlight strong { color: var(--dv-success); font-size: 22px; }

/* ── Badge pagada ────────────────────────────────────── */
.dv-paid-badge {
  background: rgba(31,157,104,.12);
  color: var(--dv-success);
  border: 1px solid rgba(31,157,104,.2);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.dv-paid-info {
  font-size: 13px;
  color: var(--dv-text-soft);
  margin: 0 0 8px;
  padding: 10px 14px;
  background: rgba(31,157,104,.06);
  border-radius: 12px;
}

/* ── Formulario marcar pagada ────────────────────────── */
.dv-mark-paid-form { margin-top: 4px; }

/* ── Responsive financiero ───────────────────────────── */
@media (max-width: 767px) {
  .dv-company-grid { grid-template-columns: 1fr; }
  .dv-company-stat.highlight strong { font-size: 18px; }
}

/* ══════════════════════════════════════════════════════
   TANDA 1 — SEGURIDAD Y GESTIÓN
══════════════════════════════════════════════════════ */

/* ── Log de actividad ────────────────────────────────── */
.dv-log-table td { font-size: 13px; vertical-align: middle; }

.dv-log-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  background: rgba(15,23,42,.06);
  color: var(--dv-text);
}

.dv-log-login          { background: rgba(62,207,142,.12);  color: #1f9d68; }
.dv-log-login_failed   { background: rgba(194,65,108,.12);  color: var(--dv-danger); }
.dv-log-login_locked   { background: rgba(194,65,108,.2);   color: var(--dv-danger); font-weight: 700; }
.dv-log-sale_created   { background: rgba(237,118,188,.12); color: #b5309a; }
.dv-log-sale_updated   { background: rgba(249,218,115,.2);  color: #8a6b09; }
.dv-log-payroll_paid   { background: rgba(62,207,142,.12);  color: #1f9d68; }
.dv-log-settings_saved { background: rgba(100,160,255,.12); color: #3366cc; }
.dv-log-password_changed { background: rgba(100,160,255,.12); color: #3366cc; }

/* ── Log de actividad ────────────────────────────────── */
.dv-log-warn td  { background: rgba(249,218,115,.08); }
.dv-log-danger td { background: rgba(194,65,108,.08); }

/* ══════════════════════════════════════════════════════
   TANDA 2 — COMPARATIVA SEMANAL
══════════════════════════════════════════════════════ */
.dv-comparison-card { margin-bottom: 18px; }

.dv-comparison-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.dv-comp-card {
  background: #f8fafc;
  border: 1px solid var(--dv-border);
  border-radius: 16px;
  padding: 16px 18px;
}

.dv-comp-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--dv-text-soft);
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.dv-comp-main {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.dv-comp-main strong {
  font-family: -apple-system, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--dv-text);
}

.dv-comp-badge {
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
}

.dv-comp-diff {
  font-size: 12px;
  margin: 0;
  color: var(--dv-text-soft);
}

/* Segundo gráfico (líneas) */
.dv-chart-wrap {
  position: relative;
  height: 240px;
}

@media (max-width: 600px) {
  .dv-comparison-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════
   TANDA 4 — MODO OSCURO, BÚSQUEDA, AVATAR
══════════════════════════════════════════════════════ */

/* ── Modo oscuro admin ───────────────────────────────── */
.davinci-dark {
  --dv-bg:        #0f1117;
  --dv-surface:   #1a1d27;
  --dv-border:    rgba(255,255,255,0.08);
  --dv-text:      #e8eaf0;
  --dv-text-soft: rgba(232,234,240,0.55);
  background: var(--dv-bg);
  color: var(--dv-text);
}

.davinci-dark .davinci-card,
.davinci-dark .davinci-card.stat-card,
.davinci-dark .dv-comp-card,
.davinci-dark .dv-stat { background: var(--dv-surface) !important; border-color: var(--dv-border) !important; }

.davinci-dark .davinci-table th { background: rgba(237,118,188,.08); color: var(--dv-text); }
.davinci-dark .davinci-table td { color: var(--dv-text); border-color: var(--dv-border); }
.davinci-dark .davinci-table tr:hover td { background: rgba(255,255,255,.03); }
.davinci-dark input, .davinci-dark select, .davinci-dark textarea { background: #1a1d27 !important; color: var(--dv-text) !important; border-color: var(--dv-border) !important; }
.davinci-dark .davinci-tabs { background: var(--dv-surface); }
.davinci-dark .davinci-tabs a { color: var(--dv-text-soft); }
.davinci-dark .davinci-tabs a.active { background: linear-gradient(135deg,rgba(237,118,188,.15),rgba(249,218,115,.1)); color: var(--dv-text); }
.davinci-dark .section-head h3 { color: var(--dv-text); }
.davinci-dark .sale-accordion,
.davinci-dark .manage-item,
.davinci-dark .dv-ranking-row,
.davinci-dark .dv-bonus-row { background: var(--dv-surface) !important; border-color: var(--dv-border) !important; }
.davinci-dark .dv-search-input { background: #1a1d27; color: var(--dv-text); border-color: var(--dv-border); }

/* Botón modo oscuro */
.admin-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dv-dark-toggle {
  background: none;
  border: 1px solid var(--dv-border);
  border-radius: 12px;
  padding: 8px 12px;
  cursor: pointer;
  font-size: 16px;
  transition: background .15s;
  color: var(--dv-text);
}

.dv-dark-toggle:hover { background: rgba(237,118,188,.1); }

/* ── Búsqueda rápida ─────────────────────────────────── */
.dv-search-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.dv-search-input {
  flex: 1;
  border: 1px solid var(--dv-border);
  border-radius: 14px;
  padding: 11px 16px;
  font-size: 14px;
  font-family: inherit;
  outline: none;
  background: #fff;
  color: var(--dv-text);
  transition: border-color .18s, box-shadow .18s;
}

.dv-search-input:focus {
  border-color: rgba(237,118,188,.4);
  box-shadow: 0 0 0 3px rgba(237,118,188,.08);
}

.dv-search-count {
  font-size: 13px;
  color: var(--dv-text-soft);
  white-space: nowrap;
  font-weight: 600;
}

.dv-row-hidden { display: none !important; }

/* ── Avatar vendedor ─────────────────────────────────── */
.dv-vendor-avatar-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.dv-vendor-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.3);
  flex-shrink: 0;
}

.dv-vendor-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  position: absolute;
  inset: 0;
}

.dv-avatar-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  opacity: 0;
  transition: opacity .2s;
  border-radius: 50%;
}

.dv-vendor-avatar:hover .dv-avatar-overlay { opacity: 1; }

/* ══════════════════════════════════════════════════════
   TANDA 4 — MODO OSCURO ADMIN
══════════════════════════════════════════════════════ */

/* Toggle switch */
.dv-darkmode-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--dv-text-soft);
  user-select: none;
}

.dv-darkmode-toggle input { display: none; }

.dv-toggle-track {
  width: 40px;
  height: 22px;
  background: var(--dv-border);
  border-radius: 999px;
  position: relative;
  transition: background .2s;
}

.dv-toggle-thumb {
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  top: 3px;
  left: 3px;
  transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}

.dv-darkmode-toggle input:checked + .dv-toggle-track {
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
}

.dv-darkmode-toggle input:checked + .dv-toggle-track .dv-toggle-thumb {
  transform: translateX(18px);
}

/* ── Admin dark mode ───────────────────────────────── */
body.dv-dark-admin .davinci-admin,
body.dv-dark-admin .davinci-shell {
  background: #0f1117;
  color: #e8eaf0;
}

body.dv-dark-admin .davinci-card {
  background: #1a1d27;
  border-color: rgba(255,255,255,.07);
}

body.dv-dark-admin .davinci-card h3,
body.dv-dark-admin .davinci-card h2,
body.dv-dark-admin .davinci-admin-header h1 {
  color: #e8eaf0;
}

body.dv-dark-admin .davinci-admin-header p,
body.dv-dark-admin .section-head p,
body.dv-dark-admin .dv-comp-label,
body.dv-dark-admin .dv-rank-count span,
body.dv-dark-admin .dv-rank-info span {
  color: rgba(232,234,240,.5);
}

body.dv-dark-admin .davinci-tabs {
  background: #1a1d27;
  border-color: rgba(255,255,255,.07);
}

body.dv-dark-admin .davinci-tabs a {
  color: rgba(232,234,240,.6);
}

body.dv-dark-admin .davinci-tabs a.active {
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  color: #fff;
}

body.dv-dark-admin .davinci-table th {
  background: #252836;
  color: rgba(232,234,240,.7);
  border-color: rgba(255,255,255,.07);
}

body.dv-dark-admin .davinci-table td {
  border-color: rgba(255,255,255,.05);
  color: #e8eaf0;
}

body.dv-dark-admin .davinci-table tr:hover td {
  background: rgba(255,255,255,.03);
}

body.dv-dark-admin .davinci-stat-grid .stat-card {
  background: #1a1d27;
  border-color: rgba(255,255,255,.07);
}

body.dv-dark-admin .stat-card span { color: rgba(232,234,240,.5); }
body.dv-dark-admin .stat-card strong { color: #e8eaf0; }

body.dv-dark-admin .davinci-filters input,
body.dv-dark-admin .davinci-filters select,
body.dv-dark-admin .davinci-form input,
body.dv-dark-admin .davinci-form select {
  background: #252836;
  border-color: rgba(255,255,255,.1);
  color: #e8eaf0;
}

body.dv-dark-admin .dv-comp-card,
body.dv-dark-admin .dv-ranking-row,
body.dv-dark-admin .manage-item {
  background: #252836;
  border-color: rgba(255,255,255,.07);
}

body.dv-dark-admin .dv-bonus-row {
  background: #252836;
  border-color: rgba(249,218,115,.1);
}

body.dv-dark-admin .dv-alert-row {
  background: #252836;
}

body.dv-dark-admin .payroll-table th { background: #252836; }
body.dv-dark-admin .payroll-total td { background: #252836; }

body.dv-dark-admin details.manage-item summary { color: #e8eaf0; }

body.dv-dark-admin .davinci-modal-card {
  background: #1a1d27;
  color: #e8eaf0;
}

/* ── Búsqueda en historial ─────────────────────────── */
.dv-search-wrap {
  position: relative;
  margin-bottom: 14px;
}

.dv-search-wrap svg {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: var(--dv-text-soft);
  pointer-events: none;
}

.dv-search-input {
  width: 100%;
  border: 1px solid var(--dv-border);
  border-radius: 14px;
  padding: 11px 14px 11px 38px;
  font-size: 14px;
  font-family: inherit;
  background: #fff;
  color: var(--dv-text);
  outline: none;
  transition: border-color .18s, box-shadow .18s;
}

.dv-search-input:focus {
  border-color: rgba(237,118,188,.4);
  box-shadow: 0 0 0 3px rgba(237,118,188,.08);
}

body.dv-dark-admin .dv-search-input {
  background: #252836;
  border-color: rgba(255,255,255,.1);
  color: #e8eaf0;
}

.sale-accordion.dv-hidden { display: none; }
.dv-search-empty { font-size: 13px; color: var(--dv-text-soft); text-align: center; padding: 16px 0; display: none; }

/* ── Avatar / foto de perfil ───────────────────────── */
.dv-avatar-section {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--dv-border);
}

.dv-avatar-img {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid transparent;
  background: linear-gradient(#fff,#fff) padding-box,
              linear-gradient(135deg, var(--dv-pink), var(--dv-yellow)) border-box;
}

.dv-avatar-initials {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: -apple-system, sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
}

.dv-avatar-info strong { display: block; font-size: 17px; margin-bottom: 4px; }
.dv-avatar-info span   { font-size: 13px; color: var(--dv-text-soft); }

.dv-avatar-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--dv-pink);
  cursor: pointer;
  text-decoration: none;
}

.dv-avatar-upload-btn:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════
   MEJORAS ESTÉTICAS — PANEL VENDEDOR
══════════════════════════════════════════════════════ */

/* ── Wallet premium ──────────────────────────────────── */
.dv-wallet-premium {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #1a0a2e 0%, #1e1035 45%, #0d1a30 100%);
  border: 1px solid rgba(237,118,188,.2);
  box-shadow: 0 8px 40px rgba(237,118,188,.18), 0 2px 8px rgba(0,0,0,.15);
}

.wallet-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  animation: dv-orb-float 8s ease-in-out infinite alternate;
}

.wallet-orb-1 {
  width: 240px; height: 240px;
  background: radial-gradient(circle, rgba(237,118,188,.32) 0%, transparent 70%);
  top: -90px; right: -60px;
}

.wallet-orb-2 {
  width: 170px; height: 170px;
  background: radial-gradient(circle, rgba(249,218,115,.22) 0%, transparent 70%);
  bottom: -60px; left: -40px;
  animation-duration: 11s;
  animation-direction: alternate-reverse;
}

@keyframes dv-orb-float {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(14px,-14px) scale(1.1); }
}

.wallet-chip-new {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(237,118,188,.3), rgba(249,218,115,.2));
  border: 1px solid rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  color: var(--dv-yellow);
  margin-bottom: 14px;
  position: relative; z-index: 1;
}

.wallet-amount-anim {
  animation: dv-wallet-in .7s cubic-bezier(.16,1,.3,1) both;
}

@keyframes dv-wallet-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

.wallet-stats-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  position: relative; z-index: 1;
}

.wallet-stat-pill {
  display: flex;
  align-items: center;
  gap: 7px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.85);
}

.wallet-stat-pill strong { color: #fff; }
.wsp-icon { font-size: 15px; }
.wsp-accent { border-color: rgba(237,118,188,.3); }

/* ── Stats con íconos y animación ────────────────────── */
.dv-stats-premium .stat-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 14px;
  animation: dv-stat-in .5s cubic-bezier(.16,1,.3,1) var(--delay, 0s) both;
}

@keyframes dv-stat-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.dv-stat-icon-wrap {
  width: 36px; height: 36px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 8px;
}

.dv-stat-icon-wrap.pink   { background: rgba(237,118,188,.13); color: var(--dv-pink); }
.dv-stat-icon-wrap.yellow { background: rgba(249,218,115,.13); color: #c9930a; }
.dv-stat-icon-wrap.green  { background: rgba(31,157,104,.13);  color: var(--dv-success); }
.dv-stat-icon-wrap.blue   { background: rgba(100,160,255,.13); color: #4a90d9; }

.dv-stats-premium .stat-card span {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--dv-text-soft);
}

.dv-stats-premium .stat-card strong {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  font-family: -apple-system, sans-serif;
}

/* Hover elevación */
.dv-stats-premium .stat-card {
  transition: transform .2s ease, box-shadow .2s ease;
}
.dv-stats-premium .stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(237,118,188,.12);
}

/* ── Confetti canvas ─────────────────────────────────── */
#dv-confetti-canvas {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  z-index: 9999;
}

/* ── Acordeón mejorado ───────────────────────────────── */
.sale-accordion {
  transition: box-shadow .2s ease;
}

.sale-accordion[open] {
  box-shadow: 0 4px 20px rgba(237,118,188,.1);
}

.sale-accordion summary {
  transition: background .15s ease;
}

.sale-accordion summary:hover {
  background: rgba(237,118,188,.03);
}

/* ── Meta semanal ────────────────────────────────────── */
.dv-goal-card {
  transition: border-color .3s, background .3s;
}

.dv-goal-reached {
  border-color: rgba(31,157,104,.3);
  background: linear-gradient(180deg, #fff, rgba(31,157,104,.03));
}

.dv-goal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.dv-goal-header h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 3px;
}

.dv-goal-header p {
  font-size: 13px;
  color: var(--dv-text-soft);
  margin: 0;
}

.dv-goal-counter {
  display: flex;
  align-items: baseline;
  gap: 3px;
  font-family: -apple-system, sans-serif;
}

.dv-goal-counter span:first-child {
  font-size: 32px;
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dv-goal-sep {
  font-size: 18px;
  color: var(--dv-text-soft);
  -webkit-text-fill-color: var(--dv-text-soft) !important;
}

.dv-goal-counter span:last-child {
  font-size: 18px;
  font-weight: 600;
  color: var(--dv-text-soft);
  -webkit-text-fill-color: var(--dv-text-soft) !important;
}

.dv-goal-bar-wrap {
  width: 100%;
  height: 12px;
  background: rgba(237,118,188,.1);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 8px;
}

.dv-goal-bar {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--dv-pink), var(--dv-yellow));
  transition: width .6s cubic-bezier(.34,1.56,.64,1);
  position: relative;
}

/* Brillo animado en la barra */
.dv-goal-bar::after {
  content: '';
  position: absolute;
  top: 0; left: -60px;
  width: 40px; height: 100%;
  background: rgba(255,255,255,.35);
  transform: skewX(-20deg);
  animation: dv-bar-shine 2.5s ease-in-out infinite;
}

@keyframes dv-bar-shine {
  0%   { left: -60px; opacity: 0; }
  30%  { opacity: 1; }
  100% { left: 110%; opacity: 0; }
}

.dv-goal-labels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--dv-text-soft);
  font-weight: 600;
}

.dv-goal-reached .dv-goal-bar {
  background: linear-gradient(90deg, var(--dv-success), #64d4a0);
}

/* ══════════════════════════════════════════════════════
   LOGIN PREMIUM
══════════════════════════════════════════════════════ */

/* Ocultar cualquier estilo anterior del login */
/* login page visible */

/* Página completa */
.dv-login-premium {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  position: relative;
  overflow: hidden;
  background: #080a12;
  font-family: -apple-system, 'Segoe UI', sans-serif;
}

/* Fondo con orbes y grid */
.dv-login-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.dv-login-orb {
  position: absolute;
  border-radius: 50%;
  opacity: .4;
}

@supports (filter: blur(80px)) {
  .dv-login-orb { filter: blur(80px); opacity: .55; }
}

.dv-orb-1 {
  width: 500px; height: 500px;
  background: rgba(237,118,188,.35);
  top: -180px; right: -120px;
  animation: dv-orb-drift 12s ease-in-out infinite alternate;
}

.dv-orb-2 {
  width: 380px; height: 380px;
  background: rgba(100,100,255,.25);
  bottom: -120px; left: -80px;
  animation: dv-orb-drift 15s ease-in-out infinite alternate-reverse;
}

.dv-orb-3 {
  width: 250px; height: 250px;
  background: rgba(249,218,115,.2);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  animation: dv-orb-drift 9s ease-in-out infinite alternate;
}

@keyframes dv-orb-drift {
  from { transform: translate(0,0) scale(1); }
  to   { transform: translate(20px,-20px) scale(1.08); }
}

/* Grid lines de fondo */
.dv-login-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* Tarjeta */
.dv-login-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 420px;
  background: #13152280;
  background: rgba(16,18,36,.97);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 28px;
  padding: 36px 32px;
  box-shadow: 0 32px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(237,118,188,.1);
  animation: dv-login-card-in .6s cubic-bezier(.16,1,.3,1) both;
}

@supports (backdrop-filter: blur(24px)) {
  .dv-login-card {
    background: rgba(16,18,28,.82);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
  }
}

@keyframes dv-login-card-in {
  from { opacity: 0; transform: translateY(24px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Logo */
.dv-login-logo {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.dv-login-logo-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, #ed76bc, #f9da73);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 6px 20px rgba(237,118,188,.4);
}

.dv-login-brand {
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 2px;
  letter-spacing: -.02em;
}

.dv-login-sub {
  font-size: 12px;
  color: rgba(255,255,255,.45);
  margin: 0;
  font-weight: 500;
}

/* Divisor */
.dv-login-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.1), transparent);
  margin-bottom: 24px;
}

/* Títulos */
.dv-login-title {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 6px;
  letter-spacing: -.01em;
}

.dv-login-desc {
  font-size: 14px;
  color: rgba(255,255,255,.45);
  margin: 0 0 24px;
}

/* Campos */
.dv-login-field {
  margin-bottom: 16px;
}

.dv-login-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  margin-bottom: 8px;
}

.dv-login-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.dv-input-icon {
  position: absolute;
  left: 14px;
  color: rgba(255,255,255,.3);
  pointer-events: none;
  flex-shrink: 0;
}

.dv-login-input {
  width: 100%;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  padding: 14px 14px 14px 42px;
  color: #fff;
  font-size: 15px;
  font-family: inherit;
  outline: none;
  transition: border-color .2s, background .2s, box-shadow .2s;
  -webkit-appearance: none;
}

.dv-login-input::placeholder { color: rgba(255,255,255,.2); }

.dv-login-input:focus {
  border-color: rgba(237,118,188,.6);
  background: rgba(255,255,255,.09);
  box-shadow: 0 0 0 4px rgba(237,118,188,.12);
}

.dv-eye-btn {
  position: absolute;
  right: 14px;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,.3);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  transition: color .15s;
}

.dv-eye-btn:hover { color: rgba(255,255,255,.7); }

/* Recordarme */
.dv-login-remember {
  margin-bottom: 22px;
}

.dv-remember-label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 13px;
  color: rgba(255,255,255,.5);
  font-weight: 500;
}

.dv-remember-check { display: none; }

.dv-remember-custom {
  width: 18px; height: 18px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 5px;
  background: rgba(255,255,255,.06);
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s, border-color .15s;
}

.dv-remember-check:checked + .dv-remember-custom {
  background: linear-gradient(135deg, #ed76bc, #f9da73);
  border-color: transparent;
}

.dv-remember-check:checked + .dv-remember-custom::after {
  content: '';
  width: 5px; height: 9px;
  border: 2px solid #fff;
  border-top: 0; border-left: 0;
  transform: rotate(45deg) translateY(-1px);
  display: block;
}

/* Botón */
.dv-login-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 24px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #ed76bc, #f9da73);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  letter-spacing: .01em;
  transition: transform .15s, box-shadow .15s, opacity .15s;
  box-shadow: 0 6px 24px rgba(237,118,188,.4);
}

.dv-login-btn:hover   { transform: translateY(-2px); box-shadow: 0 10px 32px rgba(237,118,188,.5); }
.dv-login-btn:active  { transform: translateY(0); }
.dv-login-btn:disabled { opacity: .55; cursor: not-allowed; transform: none !important; }

/* Alerta */
.dv-login-alert {
  border-radius: 12px;
  padding: 11px 14px;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 16px;
}

.dv-login-alert.success {
  background: rgba(62,207,142,.12);
  color: #3ecf8e;
  border: 1px solid rgba(62,207,142,.2);
  display: block;
}

.dv-login-alert.error {
  background: rgba(240,98,146,.12);
  color: #f49fb6;
  border: 1px solid rgba(240,98,146,.2);
  display: block;
}

/* Footer */
.dv-login-footer {
  font-size: 11px;
  color: rgba(255,255,255,.22);
  text-align: center;
  margin: 22px 0 0;
}

/* Responsive */
@media (max-width: 440px) {
  .dv-login-card { padding: 28px 22px; border-radius: 22px; }
  .dv-login-brand { font-size: 20px; }
}

/* ══════════════════════════════════════════════════════
   TANDA A — FUENTES + SKELETONS + ADMIN PREMIUM
══════════════════════════════════════════════════════ */

/* ── Fuentes globales ────────────────────────────────── */
.davinci-app,
.davinci-admin,
.davinci-shell {
  font-family: 'DM Sans', -apple-system, sans-serif;
}

.davinci-wallet h2,
.dv-wallet-premium h2,
.stat-card strong,
.dv-stat-animated strong,
.dv-rank-count strong,
.dv-goal-counter span:first-child,
.davinci-admin-header h1,
.section-head h3,
.davinci-tabs a {
  font-family: 'Outfit', -apple-system, sans-serif;
}

/* ── Skeleton screens ────────────────────────────────── */
@keyframes dv-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position: 400px 0; }
}

.dv-skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 800px 100%;
  animation: dv-shimmer 1.5s infinite linear;
  border-radius: 8px;
  display: block;
}

.dv-skeleton-card {
  background: #fff;
  border: 1px solid var(--dv-border);
  border-radius: 20px;
  padding: 20px;
  margin-bottom: 14px;
}

.dv-skeleton-wallet {
  border-radius: 24px;
  padding: 28px 24px;
  margin: 0 0 18px;
  background: linear-gradient(135deg, #1a0a2e, #1e1035, #0d1a30);
}

.dv-skeleton-wallet .dv-skeleton {
  background: linear-gradient(90deg, rgba(255,255,255,.08) 25%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.08) 75%);
  background-size: 800px 100%;
}

/* ── Admin premium oscuro ────────────────────────────── */

/* Variables oscuras para admin */
.dv-dark-admin {
  --da-bg:       #0b0d15;
  --da-surface:  #13151f;
  --da-surface2: #1c1e2c;
  --da-border:   rgba(255,255,255,.07);
  --da-text:     #e8eaf0;
  --da-muted:    rgba(232,234,240,.5);
  --da-pink:     #ed76bc;
  --da-yellow:   #f9da73;
  --da-success:  #3ecf8e;
  --da-danger:   #f06292;
}

body.dv-dark-admin .davinci-admin {
  background: var(--da-bg);
  color: var(--da-text);
  min-height: 100vh;
}

body.dv-dark-admin .davinci-card {
  background: var(--da-surface);
  border-color: var(--da-border);
  box-shadow: 0 2px 12px rgba(0,0,0,.3);
}

body.dv-dark-admin .davinci-card:hover {
  border-color: rgba(237,118,188,.15);
}

body.dv-dark-admin .section-head h3,
body.dv-dark-admin .davinci-admin-header h1 {
  color: var(--da-text);
}

body.dv-dark-admin .section-head p,
body.dv-dark-admin .davinci-admin-header p {
  color: var(--da-muted);
}

body.dv-dark-admin .davinci-tabs {
  background: var(--da-surface);
  border-color: var(--da-border);
  gap: 4px;
}

body.dv-dark-admin .davinci-tabs a {
  color: var(--da-muted);
  border-radius: 12px;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
}

body.dv-dark-admin .davinci-tabs a:hover {
  background: rgba(255,255,255,.06);
  color: var(--da-text);
}

body.dv-dark-admin .davinci-tabs a.active {
  background: linear-gradient(135deg, var(--da-pink), var(--da-yellow));
  color: #fff;
  box-shadow: 0 4px 14px rgba(237,118,188,.3);
}

body.dv-dark-admin .stat-card {
  background: var(--da-surface);
  border-color: var(--da-border);
}

body.dv-dark-admin .stat-card span { color: var(--da-muted); }
body.dv-dark-admin .stat-card strong { color: var(--da-text); }

body.dv-dark-admin .davinci-table th {
  background: var(--da-surface2);
  color: var(--da-muted);
  border-color: var(--da-border);
  font-family: 'Outfit', sans-serif;
}

body.dv-dark-admin .davinci-table td {
  border-color: rgba(255,255,255,.04);
  color: var(--da-text);
}

body.dv-dark-admin .davinci-table tbody tr:hover td {
  background: rgba(237,118,188,.04);
}

body.dv-dark-admin .davinci-filters label,
body.dv-dark-admin .davinci-form label span {
  color: var(--da-muted);
}

body.dv-dark-admin .davinci-filters input,
body.dv-dark-admin .davinci-filters select,
body.dv-dark-admin .davinci-form input,
body.dv-dark-admin .davinci-form select {
  background: var(--da-surface2);
  border-color: var(--da-border);
  color: var(--da-text);
}

body.dv-dark-admin .davinci-filters input:focus,
body.dv-dark-admin .davinci-filters select:focus,
body.dv-dark-admin .davinci-form input:focus,
body.dv-dark-admin .davinci-form select:focus {
  border-color: rgba(237,118,188,.45);
  box-shadow: 0 0 0 3px rgba(237,118,188,.1);
}

body.dv-dark-admin .dv-ranking-row,
body.dv-dark-admin .manage-item,
body.dv-dark-admin .dv-bonus-row,
body.dv-dark-admin .dv-comp-card,
body.dv-dark-admin .dv-alert-row {
  background: var(--da-surface2);
  border-color: var(--da-border);
}

body.dv-dark-admin .dv-rank-name,
body.dv-dark-admin .dv-rank-info strong { color: var(--da-text); }
body.dv-dark-admin .dv-rank-info span,
body.dv-dark-admin .dv-rank-count span  { color: var(--da-muted); }

.dv-dark-admin details.manage-item summary { color: var(--da-text); }
.dv-dark-admin details.manage-item summary:hover { background: rgba(255,255,255,.03); }

body.dv-dark-admin .davinci-modal-card {
  background: var(--da-surface);
  border: 1px solid var(--da-border);
  color: var(--da-text);
}

body.dv-dark-admin .payroll-table th { background: var(--da-surface2); }
body.dv-dark-admin .payroll-total td { background: var(--da-surface2); border-color: rgba(237,118,188,.2); }

body.dv-dark-admin .dv-comp-label { color: var(--da-muted); }
body.dv-dark-admin .dv-comp-main strong { color: var(--da-text); }
body.dv-dark-admin .dv-comp-diff { color: var(--da-muted); }

body.dv-dark-admin .empty-state { color: var(--da-muted); }

body.dv-dark-admin .admin-header-actions .dv-dark-toggle { color: var(--da-muted); }

/* Botón secundario en admin oscuro */
body.dv-dark-admin .davinci-button.secondary {
  background: var(--da-surface2);
  border-color: var(--da-border);
  color: var(--da-text);
}

body.dv-dark-admin .davinci-button.secondary:hover {
  border-color: rgba(237,118,188,.3);
  color: var(--da-pink);
}

/* Scrollbar oscura */
body.dv-dark-admin .table-wrap::-webkit-scrollbar { height: 6px; }
body.dv-dark-admin .table-wrap::-webkit-scrollbar-track { background: var(--da-surface2); }
body.dv-dark-admin .table-wrap::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 3px; }

/* ── Toggle de dark mode mejorado ───────────────────── */
.admin-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dv-dark-toggle {
  width: 40px;
  height: 22px;
  border-radius: 999px;
  background: rgba(0,0,0,.1);
  border: 1px solid var(--dv-border);
  cursor: pointer;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, border-color .2s;
  padding: 0;
}

.dv-dark-toggle:hover {
  background: rgba(237,118,188,.1);
  border-color: rgba(237,118,188,.3);
}

/* ══════════════════════════════════════════════════════
   DARK MODE — FIX COLORES DE TEXTO
══════════════════════════════════════════════════════ */

body.dv-dark-admin,
body.dv-dark-admin .davinci-admin,
body.dv-dark-admin .davinci-shell {
  background: #0b0d15 !important;
  color: #e8eaf0 !important;
}

/* Tarjetas */
body.dv-dark-admin .davinci-card {
  background: #13151f !important;
  border-color: rgba(255,255,255,.07) !important;
  color: #e8eaf0 !important;
}

/* Todos los textos dentro del admin */
body.dv-dark-admin .davinci-card *,
body.dv-dark-admin .davinci-admin *,
body.dv-dark-admin .davinci-admin-header *,
body.dv-dark-admin .davinci-tabs a,
body.dv-dark-admin .davinci-table td,
body.dv-dark-admin .davinci-table th {
  color: #e8eaf0;
}

/* Textos secundarios/suaves */
body.dv-dark-admin .section-head p,
body.dv-dark-admin .davinci-admin-header p,
body.dv-dark-admin .stat-card span,
body.dv-dark-admin .dv-comp-label,
body.dv-dark-admin .dv-rank-count span,
body.dv-dark-admin .dv-rank-info span,
body.dv-dark-admin .dv-comp-diff,
body.dv-dark-admin .empty-state,
body.dv-dark-admin .dv-muted {
  color: rgba(232,234,240,.5) !important;
}

/* Titulos h3 y h1 */
body.dv-dark-admin h1,
body.dv-dark-admin h2,
body.dv-dark-admin h3,
body.dv-dark-admin h4,
body.dv-dark-admin .section-head h3 {
  color: #e8eaf0 !important;
}

/* Tabs */
body.dv-dark-admin .davinci-tabs {
  background: #13151f !important;
  border-color: rgba(255,255,255,.07) !important;
}

body.dv-dark-admin .davinci-tabs a {
  color: rgba(232,234,240,.55) !important;
}

body.dv-dark-admin .davinci-tabs a.active {
  background: linear-gradient(135deg, #ed76bc, #f9da73) !important;
  color: #fff !important;
}

/* Tabla */
body.dv-dark-admin .davinci-table {
  color: #e8eaf0 !important;
}

body.dv-dark-admin .davinci-table th {
  background: #1c1e2c !important;
  color: rgba(232,234,240,.6) !important;
  border-color: rgba(255,255,255,.06) !important;
}

body.dv-dark-admin .davinci-table td {
  border-color: rgba(255,255,255,.04) !important;
  color: #e8eaf0 !important;
}

body.dv-dark-admin .davinci-table tbody tr:hover td {
  background: rgba(237,118,188,.05) !important;
}

/* Stat cards números */
body.dv-dark-admin .stat-card strong {
  color: #fff !important;
}

/* Formularios */
body.dv-dark-admin input,
body.dv-dark-admin select,
body.dv-dark-admin textarea {
  background: #1c1e2c !important;
  border-color: rgba(255,255,255,.1) !important;
  color: #e8eaf0 !important;
}

body.dv-dark-admin label span,
body.dv-dark-admin .davinci-filters label {
  color: rgba(232,234,240,.55) !important;
}

/* Badges de comisión */
body.dv-dark-admin .comm-badge {
  background: #1c1e2c !important;
  color: #e8eaf0 !important;
}

/* Nómina pagada */
body.dv-dark-admin .payroll-total td {
  background: #1c1e2c !important;
  color: #fff !important;
}

/* Ranking y comparativa */
body.dv-dark-admin .dv-comp-card,
body.dv-dark-admin .dv-ranking-row,
body.dv-dark-admin .manage-item {
  background: #1c1e2c !important;
  color: #e8eaf0 !important;
}

body.dv-dark-admin .dv-comp-main strong {
  color: #fff !important;
}

/* ══════════════════════════════════════════════════════
   DARK MODE — FIX TEXTOS (alta especificidad)
══════════════════════════════════════════════════════ */

body.dv-dark-admin,
body.dv-dark-admin .davinci-admin,
body.dv-dark-admin .davinci-shell {
  color: #e8eaf0 !important;
}

/* Todos los textos generales */
body.dv-dark-admin p,
body.dv-dark-admin span,
body.dv-dark-admin label,
body.dv-dark-admin li,
body.dv-dark-admin td,
body.dv-dark-admin th,
body.dv-dark-admin .stat-card span,
body.dv-dark-admin .section-head p,
body.dv-dark-admin .dv-comp-label,
body.dv-dark-admin .dv-comp-diff,
body.dv-dark-admin .empty-state,
body.dv-dark-admin .manage-subtitle,
body.dv-dark-admin .dv-rank-info span,
body.dv-dark-admin .dv-rank-count span,
body.dv-dark-admin .dv-alert-info span,
body.dv-dark-admin .davinci-admin-header p {
  color: rgba(232,234,240,.6) !important;
}

/* Títulos y valores prominentes */
body.dv-dark-admin h1,
body.dv-dark-admin h2,
body.dv-dark-admin h3,
body.dv-dark-admin h4,
body.dv-dark-admin strong,
body.dv-dark-admin .stat-card strong,
body.dv-dark-admin .dv-rank-name,
body.dv-dark-admin .dv-rank-count strong,
body.dv-dark-admin .dv-rank-info strong,
body.dv-dark-admin .dv-comp-main strong,
body.dv-dark-admin .dv-alert-info strong,
body.dv-dark-admin details summary,
body.dv-dark-admin .davinci-admin-header h1,
body.dv-dark-admin .section-head h3,
body.dv-dark-admin .manage-item summary strong,
body.dv-dark-admin .payroll-total td,
body.dv-dark-admin td strong {
  color: #e8eaf0 !important;
}

/* Tabs */
body.dv-dark-admin .davinci-tabs a {
  color: rgba(232,234,240,.5) !important;
}
body.dv-dark-admin .davinci-tabs a.active {
  color: #fff !important;
}

/* Tabla */
body.dv-dark-admin .davinci-table th {
  color: rgba(232,234,240,.6) !important;
}
body.dv-dark-admin .davinci-table td {
  color: #e8eaf0 !important;
}

/* Inputs */
body.dv-dark-admin input,
body.dv-dark-admin select,
body.dv-dark-admin textarea {
  color: #e8eaf0 !important;
}

/* Links de tabs */
body.dv-dark-admin a:not(.davinci-button):not(.davinci-tabs a) {
  color: rgba(232,234,240,.7);
}

/* Botón secundario */
body.dv-dark-admin .davinci-button.secondary {
  color: #e8eaf0 !important;
}

/* Logout */
body.dv-dark-admin .davinci-logout {
  color: #e8eaf0 !important;
  border-color: rgba(255,255,255,.2) !important;
}
body.dv-dark-admin .davinci-logout:hover {
  background: rgba(255,255,255,.08) !important;
}

/* Periodos y labels */
body.dv-dark-admin .dv-period-form label span {
  color: rgba(232,234,240,.6) !important;
}

/* Nómina pagada */
body.dv-dark-admin .dv-paid-info {
  color: rgba(232,234,240,.6) !important;
}

/* Filter labels */
body.dv-dark-admin .davinci-filters label > span,
body.dv-dark-admin .davinci-form label > span {
  color: rgba(232,234,240,.5) !important;
}

/* ══════════════════════════════════════════════════════
   LOGIN SIMPLE — Compatible con todos los dispositivos
══════════════════════════════════════════════════════ */

.dv-login-simple {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  background: #0b0d15;
}

.dv-login-box {
  width: 100%;
  max-width: 400px;
  background: #1a1d2e;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 32px 28px;
}

/* Logo */
.dv-login-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}

.dv-login-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #ed76bc, #f9da73);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dv-login-logo strong {
  display: block;
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  font-family: 'Outfit', sans-serif;
}

.dv-login-logo span {
  font-size: 13px;
  color: rgba(255,255,255,.4);
}

/* Campos */
.dv-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 16px;
}

.dv-field span {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,.55);
}

.dv-field input {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 12px;
  padding: 13px 16px;
  color: #fff;
  font-size: 15px;
  font-family: inherit;
  outline: none;
  width: 100%;
  -webkit-appearance: none;
  transition: border-color .2s;
}

.dv-field input::placeholder {
  color: rgba(255,255,255,.2);
}

.dv-field input:focus {
  border-color: #ed76bc;
}

/* Recordarme */
.dv-remember {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  cursor: pointer;
  font-size: 14px;
  color: rgba(255,255,255,.45);
}

.dv-remember input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: #ed76bc;
}

/* Botón */
.dv-login-submit {
  width: 100%;
  padding: 14px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(135deg, #ed76bc, #f9da73);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: opacity .2s, transform .15s;
}

.dv-login-submit:hover   { opacity: .9; transform: translateY(-1px); }
.dv-login-submit:active  { transform: none; }
.dv-login-submit:disabled { opacity: .5; cursor: not-allowed; }

/* Alerta */
.dv-login-msg {
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 16px;
}

.dv-login-msg.success {
  background: rgba(62,207,142,.15);
  color: #3ecf8e;
  border: 1px solid rgba(62,207,142,.25);
}

.dv-login-msg.error {
  background: rgba(240,98,146,.15);
  color: #f49fb6;
  border: 1px solid rgba(240,98,146,.25);
}

/* Footer */
.dv-login-copy {
  margin-top: 16px;
  font-size: 12px;
  color: rgba(255,255,255,.2);
  text-align: center;
}

/* ══════════════════════════════════════════════════════
   RESPONSIVO MÓVIL — PANEL VENDEDOR
══════════════════════════════════════════════════════ */

/* ── Header compacto ─────────────────────────────────── */
.davinci-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 16px 12px;
  gap: 12px;
}

.davinci-header h1 {
  font-size: clamp(18px, 5vw, 26px);
  margin: 0 0 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.davinci-header p {
  font-size: 13px;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dv-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

/* Avatar simple — solo inicial */
.dv-vendor-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 16px;
  color: #fff;
  flex-shrink: 0;
}

/* Botón salir compacto en móvil */
.davinci-logout {
  white-space: nowrap;
  font-size: 13px;
  padding: 8px 14px;
}

/* ── Wallet responsiva ───────────────────────────────── */
.davinci-wallet,
.dv-wallet-premium {
  margin: 0 12px 16px;
  padding: 22px 18px;
  border-radius: 20px;
}

.davinci-wallet h2,
.dv-wallet-premium h2,
.wallet-amount-anim {
  font-size: clamp(28px, 8vw, 48px);
}

.wallet-stats-row {
  gap: 8px;
}

.wallet-stat-pill {
  font-size: 12px;
  padding: 5px 10px;
  gap: 5px;
}

/* ── Stats grid responsivo ───────────────────────────── */
.davinci-stat-grid {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0 12px 14px;
}

.stat-card {
  padding: 14px 12px;
}

.stat-card strong {
  font-size: clamp(20px, 6vw, 28px);
}

.dv-stat-icon-wrap {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  margin-bottom: 8px;
}

.dv-stat-icon-wrap svg {
  width: 14px;
  height: 14px;
}

/* ── Meta semanal ────────────────────────────────────── */
.davinci-app .davinci-card {
  margin: 0 12px 12px;
  padding: 16px 14px;
  border-radius: 18px;
}

.dv-goal-counter span:first-child {
  font-size: clamp(24px, 7vw, 36px);
}

.dv-goal-header h3 {
  font-size: 15px;
}

/* ── Formulario 1 columna en móvil ───────────────────── */
.field-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}

/* ── Acordeón de ventas ──────────────────────────────── */
.sale-accordion summary {
  padding: 12px 14px;
  gap: 10px;
}

.sale-accordion summary > div:first-child strong {
  font-size: 13px;
}

.sale-accordion summary > div:first-child span {
  font-size: 11px;
}

.sale-summary-right strong {
  font-size: 14px;
}

/* ── Ranking ─────────────────────────────────────────── */
.dv-ranking-row {
  padding: 10px 12px;
  gap: 8px;
}

.dv-rank-pos { font-size: 16px; min-width: 24px; }
.dv-rank-info strong { font-size: 13px; }
.dv-rank-count strong { font-size: 18px; }

/* ── Filtros del historial ───────────────────────────── */
.dv-vendor-filters {
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

/* ── Tabs scrollable ─────────────────────────────────── */
.davinci-tabs {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  flex-wrap: nowrap;
  padding: 0 12px;
}

.davinci-tabs::-webkit-scrollbar { display: none; }

.davinci-tabs a {
  white-space: nowrap;
  flex-shrink: 0;
}

/* Más margen en pantallas muy pequeñas */
@media (max-width: 380px) {
  .davinci-wallet, .dv-wallet-premium { margin: 0 8px 12px; padding: 18px 14px; }
  .davinci-stat-grid { padding: 0 8px 12px; }
  .davinci-app .davinci-card { margin: 0 8px 10px; }
}

/* ── Hints en campos del formulario ─────────────────── */
.dv-form-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dv-field-hint {
  font-size: 11px;
  color: var(--dv-text-soft);
  line-height: 1.4;
  margin: 0;
  font-weight: 400;
}

/* ── Selector de clínicas mejorado ──────────────────── */
.dv-clinic-picker {
  background: #fafbfc;
  border: 1px solid var(--dv-border);
  border-radius: 16px;
  padding: 16px;
  margin: 12px 0 16px;
}

.dv-clinic-picker-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--dv-text);
  margin: 0 0 4px;
}

.dv-clinic-picker-hint {
  font-size: 12px;
  color: var(--dv-text-soft);
  margin: 0 0 14px;
  line-height: 1.5;
}

.dv-clinic-checkbox-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.dv-clinic-picker .dv-check-label {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border: 1px solid var(--dv-border);
  border-radius: 12px;
  cursor: pointer;
  background: #fff;
  margin: 0;
  text-align: left;
  transition: border-color .15s, background .15s, box-shadow .15s;
}

.dv-clinic-picker .dv-check-label:hover {
  border-color: rgba(237,118,188,.4);
  background: rgba(237,118,188,.03);
}

.dv-clinic-picker .dv-check-label input[type="checkbox"] {
  -webkit-appearance: checkbox !important;
  -moz-appearance: checkbox !important;
  appearance: checkbox !important;
  width: 17px !important;
  height: 17px !important;
  min-width: 17px !important;
  max-width: 17px !important;
  min-height: 17px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  flex: 0 0 auto !important;
  accent-color: #ed76bc;
  cursor: pointer;
  background: none !important;
  box-shadow: none !important;
}

.dv-clinic-picker .dv-check-label input[type="checkbox"]:checked + .dv-check-name {
  color: #ed76bc;
  font-weight: 600;
}

.dv-clinic-picker .dv-check-label:has(input:checked) {
  border-color: rgba(237,118,188,.4);
  background: rgba(237,118,188,.05);
  box-shadow: 0 0 0 3px rgba(237,118,188,.08);
}

.dv-clinic-picker .dv-check-name {
  font-size: 13px;
  color: var(--dv-text);
  line-height: 1.3;
}

/* ══════════════════════════════════════════════════════
   ESTADO DE PACIENTE — Selectores asistencia / tratamiento
══════════════════════════════════════════════════════ */
.dv-status-select {
  border: 1px solid var(--dv-border);
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  background: #fff;
  color: var(--dv-text);
  outline: none;
  transition: background .15s, border-color .15s, color .15s;
  min-width: 120px;
}

.dv-status-select:focus {
  border-color: rgba(237,118,188,.4);
  box-shadow: 0 0 0 3px rgba(237,118,188,.08);
}

.dv-status-select:disabled { opacity: .6; cursor: wait; }

/* Pendiente — neutro */
.dv-att-pending, .dv-tto-pending {
  background: #f4f5f7;
  color: #8a909c;
  border-color: transparent;
}

/* Positivo — verde */
.dv-att-attended, .dv-tto-done {
  background: rgba(31,157,104,.12);
  color: #1f9d68;
  border-color: rgba(31,157,104,.25);
}

/* Negativo — rojo suave */
.dv-att-no_show, .dv-tto-not_done {
  background: rgba(224,90,138,.12);
  color: #d6447a;
  border-color: rgba(224,90,138,.25);
}

/* Dark admin */
body.dv-dark-admin .dv-status-select {
  background: var(--da-surface2);
  color: var(--da-text);
  border-color: var(--da-border);
}
body.dv-dark-admin .dv-att-pending,
body.dv-dark-admin .dv-tto-pending {
  background: rgba(255,255,255,.05);
  color: rgba(232,234,240,.5);
}

/* ── Badges de porcentaje de conversión (admin) ──────── */
.dv-pct-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
}
.dv-pct-badge.good { background: rgba(31,157,104,.12); color: #1f9d68; }
.dv-pct-badge.low  { background: rgba(249,180,80,.15);  color: #c9930a; }

body.dv-dark-admin .dv-pct-badge.good { background: rgba(62,207,142,.15); color: #3ecf8e; }
body.dv-dark-admin .dv-pct-badge.low  { background: rgba(249,218,115,.12); color: #f9da73; }

/* ══════════════════════════════════════════════════════
   DASHBOARD CLÍNICA — Profesional y responsivo
══════════════════════════════════════════════════════ */
.dv-clinic-dash {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 48px);
  box-sizing: border-box;
}

.dv-clinic-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: nowrap;
}

/* Stats grid responsivo */
.dv-clinic-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.dv-clinic-stat {
  background: var(--dv-card, #fff);
  border: 1px solid var(--dv-border);
  border-radius: 14px;
  padding: 14px 16px;
}

.dv-clinic-stat label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--dv-text-soft);
  margin-bottom: 5px;
}

.dv-clinic-stat strong {
  font-size: 24px;
  font-weight: 800;
  font-family: 'Outfit', sans-serif;
}

/* Filtros */
.dv-clinic-filters { flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.dv-clinic-filters .dv-filter-search { flex: 1; min-width: 160px; }
.dv-clinic-filters .dv-filter-search input { width: 100%; }

.dv-record-count {
  font-size: 13px;
  color: var(--dv-text-soft);
  margin: 0 0 12px;
}

/* Tabla */
.dv-clinic-table { min-width: 1000px; }
.dv-clinic-table th { white-space: nowrap; }
.dv-clinic-table td { vertical-align: middle; }

/* Selectores de estado */
.dv-status-select {
  border: 1px solid var(--dv-border);
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 12.5px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  background: #fff;
  color: var(--dv-text);
  outline: none;
  transition: background .15s, border-color .15s, color .15s;
  min-width: 118px;
}
.dv-status-select:focus { border-color: rgba(237,118,188,.4); box-shadow: 0 0 0 3px rgba(237,118,188,.08); }
.dv-status-select:disabled { opacity: .6; cursor: wait; }

/* Pendiente — neutro */
.dv-con-pending, .dv-att-pending, .dv-tto-pending {
  background: #f4f5f7; color: #8a909c; border-color: transparent;
}
/* Positivo — verde */
.dv-con-contacted, .dv-att-attended, .dv-tto-done {
  background: rgba(31,157,104,.12); color: #1f9d68; border-color: rgba(31,157,104,.25);
}
/* Negativo — rojo */
.dv-con-no_answer, .dv-att-no_show, .dv-tto-not_done {
  background: rgba(224,90,138,.12); color: #d6447a; border-color: rgba(224,90,138,.25);
}

/* Botones de edición inline */
.dv-edit-cell { white-space: nowrap; }
.dv-edit-btn, .dv-cancel-btn {
  border: none; background: transparent; cursor: pointer;
  color: var(--dv-text-soft); padding: 5px; border-radius: 8px;
  display: inline-flex; align-items: center; transition: color .15s, background .15s;
}
.dv-edit-btn:hover { color: var(--dv-pink); background: rgba(237,118,188,.08); }
.dv-cancel-btn:hover { color: #d6447a; background: rgba(224,90,138,.08); }

.dv-save-btn {
  background: linear-gradient(135deg, var(--dv-pink), var(--dv-yellow));
  color: #fff; border: none; border-radius: 9px;
  padding: 6px 14px; font-size: 12.5px; font-weight: 700;
  cursor: pointer; margin-right: 4px;
}
.dv-save-btn:disabled { opacity: .6; cursor: wait; }

/* Inputs inline */
.dv-inline-input {
  width: 100%; min-width: 90px;
  height: 32px; padding: 4px 8px;
  font-size: 13px; font-family: inherit;
  border: 1px solid rgba(237,118,188,.5);
  border-radius: 8px; outline: none;
  background: #fff; color: var(--dv-text);
}
.dv-inline-input:focus { box-shadow: 0 0 0 3px rgba(237,118,188,.1); }

tr.dv-editing { background: rgba(237,118,188,.04); }

/* ── Dark admin (cuando admin ve dashboard clínica) ── */
body.dv-dark-admin .dv-clinic-stat { background: var(--da-surface); border-color: var(--da-border); }
body.dv-dark-admin .dv-clinic-stat label { color: var(--da-muted); }
body.dv-dark-admin .dv-status-select { background: var(--da-surface2); color: var(--da-text); border-color: var(--da-border); }
body.dv-dark-admin .dv-con-pending,
body.dv-dark-admin .dv-att-pending,
body.dv-dark-admin .dv-tto-pending { background: rgba(255,255,255,.05); color: rgba(232,234,240,.5); }
body.dv-dark-admin .dv-inline-input { background: var(--da-surface2); color: var(--da-text); }

/* ── Responsivo móvil ── */
@media (max-width: 768px) {
  .dv-clinic-stats { grid-template-columns: repeat(3, 1fr); }
  .dv-clinic-stat strong { font-size: 20px; }
}
@media (max-width: 480px) {
  .dv-clinic-stats { grid-template-columns: repeat(2, 1fr); }
  .dv-clinic-header h1 { font-size: 20px; }
  .dv-clinic-filters .filter-actions { width: 100%; display: flex; gap: 8px; }
  .dv-clinic-filters .filter-actions .davinci-button { flex: 1; text-align: center; }
}

/* ══════════════════════════════════════════════════════
   PULIDO VISUAL GLOBAL v2.9 — Sistema profesional
   (afecta vendedor, admin y clínica por igual)
══════════════════════════════════════════════════════ */

/* ── Tarjetas: sombra suave consistente + hover sutil ── */
.davinci-card {
  border: 1px solid var(--dv-border-soft);
  box-shadow: var(--dv-shadow);
  transition: box-shadow .25s var(--dv-ease), transform .25s var(--dv-ease);
}
.davinci-card:hover {
  box-shadow: var(--dv-shadow-hover);
}

/* ── Stat cards: jerarquía y micro-realce ── */
.stat-card,
.dv-clinic-stat {
  transition: box-shadow .25s var(--dv-ease), transform .2s var(--dv-ease);
}
.stat-card:hover,
.dv-clinic-stat:hover {
  transform: translateY(-2px);
  box-shadow: var(--dv-shadow-hover);
}
.stat-card span,
.dv-clinic-stat label {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--dv-text-muted) !important;
}
.stat-card strong,
.dv-clinic-stat strong {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  letter-spacing: -.01em;
}

/* ── Tablas: legibilidad profesional ── */
.davinci-table thead th {
  background: #fafbfc;
  font-size: 11.5px !important;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--dv-text-muted);
  border-bottom: 1px solid var(--dv-border-soft);
  padding-top: 13px;
  padding-bottom: 13px;
}
.davinci-table tbody tr {
  transition: background .15s var(--dv-ease);
}
.davinci-table tbody tr:hover {
  background: rgba(237,118,188,.035);
}
.davinci-table tbody tr:nth-child(even) {
  background: rgba(15,23,42,.012);
}
.davinci-table tbody tr:nth-child(even):hover {
  background: rgba(237,118,188,.035);
}
.davinci-table td {
  border-bottom: 1px solid var(--dv-border-soft);
}

/* ── Botones: transición e interacción más pulida ── */
.davinci-button,
.mini-btn {
  transition: transform .15s var(--dv-ease), box-shadow .2s var(--dv-ease), opacity .15s var(--dv-ease);
}
.davinci-button:not(.secondary):not(.danger) {
  box-shadow: 0 4px 14px rgba(237,118,188,.25);
}
.davinci-button:not(.secondary):not(.danger):hover {
  box-shadow: 0 6px 20px rgba(237,118,188,.35);
  transform: translateY(-1px);
}
.davinci-button.secondary:hover {
  border-color: rgba(237,118,188,.35);
  background: rgba(237,118,188,.03);
}
.davinci-button:active,
.mini-btn:active { transform: translateY(0); }

/* ── Inputs: foco más suave y consistente ── */
.davinci-form input,
.davinci-form select,
.davinci-filters input,
.davinci-filters select {
  transition: border-color .2s var(--dv-ease), box-shadow .2s var(--dv-ease), background .2s var(--dv-ease);
}

/* ── Section head: jerarquía tipográfica ── */
.section-head h3 {
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  letter-spacing: -.01em;
}
.section-head p {
  font-size: 13px;
  margin-top: 3px;
}

/* ── Estados vacíos con diseño ── */
.empty-state {
  text-align: center;
  padding: 40px 20px !important;
  color: var(--dv-text-muted);
  font-size: 14px;
}
.empty-state::before {
  content: '';
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: rgba(237,118,188,.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ed76bc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E") center/24px no-repeat;
}

/* ── Logout más pulido ── */
.davinci-logout {
  transition: background .2s var(--dv-ease), border-color .2s var(--dv-ease);
  font-size: 14px;
}
.davinci-logout:hover {
  background: rgba(237,118,188,.06);
  border-color: rgba(237,118,188,.25);
}

/* ── Header: jerarquía del título ── */
.davinci-admin-header h1,
.davinci-header h1 {
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  letter-spacing: -.02em;
}

/* ── Scrollbar sutil en tablas ── */
.table-wrap::-webkit-scrollbar { height: 8px; width: 8px; }
.table-wrap::-webkit-scrollbar-thumb {
  background: rgba(237,118,188,.2);
  border-radius: 999px;
}
.table-wrap::-webkit-scrollbar-thumb:hover { background: rgba(237,118,188,.35); }
.table-wrap::-webkit-scrollbar-track { background: transparent; }

/* ── Animación de entrada de tarjetas ── */
@keyframes dvFadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.davinci-stat-grid .stat-card,
.dv-clinic-stats .dv-clinic-stat {
  animation: dvFadeUp .4s var(--dv-ease) both;
}
.dv-clinic-stats .dv-clinic-stat:nth-child(2) { animation-delay: .05s; }
.dv-clinic-stats .dv-clinic-stat:nth-child(3) { animation-delay: .1s; }
.dv-clinic-stats .dv-clinic-stat:nth-child(4) { animation-delay: .15s; }
.dv-clinic-stats .dv-clinic-stat:nth-child(5) { animation-delay: .2s; }

/* Respeta usuarios que prefieren menos movimiento */
@media (prefers-reduced-motion: reduce) {
  .davinci-stat-grid .stat-card,
  .dv-clinic-stats .dv-clinic-stat,
  .davinci-card,
  .davinci-button { animation: none !important; transition: none !important; }
}

/* ══════════════════════════════════════════════════════
   NOTAS DE PACIENTE — Botón + modal
══════════════════════════════════════════════════════ */
.dv-note-cell { text-align: center; }

.dv-note-btn {
  position: relative;
  border: none;
  background: transparent;
  cursor: pointer;
  color: var(--dv-text-muted);
  padding: 6px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  transition: color .15s var(--dv-ease), background .15s var(--dv-ease);
}
.dv-note-btn:hover { color: var(--dv-pink); background: rgba(237,118,188,.08); }

/* Punto indicador cuando hay nota */
.dv-note-dot {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--dv-pink);
  border: 1.5px solid #fff;
  display: none;
}
.dv-note-btn.has-note { color: var(--dv-pink); }
.dv-note-btn.has-note .dv-note-dot { display: block; }

/* Modal */
.dv-note-modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15,23,42,.45);
  z-index: 10000;
}
.dv-note-modal.is-open {
  display: flex;
  animation: dvFadeUp .2s var(--dv-ease);
}

.dv-note-modal-card {
  width: min(480px, 100%);
  background: #fff;
  border-radius: 20px;
  padding: 28px;
  position: relative;
  box-shadow: 0 20px 60px rgba(15,23,42,.25);
}

.dv-note-modal-close {
  position: absolute;
  top: 14px;
  right: 16px;
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  color: var(--dv-text-muted);
  cursor: pointer;
  transition: color .15s;
}
.dv-note-modal-close:hover { color: var(--dv-text); }

.dv-note-modal-title {
  margin: 0 0 2px;
  font-family: 'Outfit', sans-serif;
  font-size: 19px;
  font-weight: 700;
}
.dv-note-modal-name {
  margin: 0 0 16px;
  color: var(--dv-text-soft);
  font-size: 14px;
  font-weight: 600;
}

.dv-note-textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--dv-border);
  border-radius: 14px;
  padding: 13px 14px;
  font-size: 14px;
  font-family: inherit;
  color: var(--dv-text);
  background: #fcfcfd;
  resize: vertical;
  min-height: 120px;
  outline: none;
  transition: border-color .2s var(--dv-ease), box-shadow .2s var(--dv-ease), background .2s var(--dv-ease);
}
.dv-note-textarea:focus {
  border-color: rgba(237,118,188,.45);
  box-shadow: 0 0 0 4px rgba(237,118,188,.09);
  background: #fff;
}

.dv-note-modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

@media (max-width: 480px) {
  .dv-note-modal-card { padding: 22px; }
  .dv-note-modal-actions { flex-direction: column-reverse; }
  .dv-note-modal-actions .davinci-button { width: 100% !important; }
}

body.dv-dark-admin .dv-note-modal-card { background: var(--da-surface); }
body.dv-dark-admin .dv-note-textarea { background: var(--da-surface2); color: var(--da-text); border-color: var(--da-border); }

/* ══════════════════════════════════════════════════════
   LOGO DE CLÍNICA
══════════════════════════════════════════════════════ */
/* Header del dashboard de clínica */
.dv-clinic-header-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
}

.dv-clinic-header-brand > div { min-width: 0; }

.dv-clinic-header-brand h1 {
  margin: 0;
  line-height: 1.1;
}

.dv-clinic-header-brand p {
  margin: 4px 0 0;
}

.dv-clinic-logo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--dv-border-soft);
  padding: 8px;
  box-shadow: var(--dv-shadow);
  flex-shrink: 0;
}

/* Miniatura en la lista de gestión del admin */
.manage-summary-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.manage-clinic-logo {
  width: 34px;
  height: 34px;
  object-fit: contain;
  border-radius: 9px;
  background: #fff;
  border: 1px solid var(--dv-border-soft);
  padding: 3px;
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .dv-clinic-logo { width: 54px; height: 54px; border-radius: 13px; padding: 6px; }
  .dv-clinic-header-brand { gap: 12px; }
}

body.dv-dark-admin .dv-clinic-logo,
body.dv-dark-admin .manage-clinic-logo { background: #fff; }

/* ══════════════════════════════════════════════════════
   LISTA DE ACCESOS DE CLÍNICA (admin)
══════════════════════════════════════════════════════ */
.dv-access-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dv-access-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid var(--dv-border-soft);
  border-radius: 14px;
  background: #fff;
  flex-wrap: wrap;
}

.dv-access-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.dv-access-info strong { font-size: 15px; }
.dv-access-email { font-size: 13px; color: var(--dv-text-soft); }
.dv-access-clinics { font-size: 12px; color: var(--dv-text-muted); margin-top: 2px; }

.dv-access-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Banner modo solo lectura */
.dv-readonly-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: linear-gradient(135deg, rgba(237,118,188,.1), rgba(249,218,115,.1));
  border: 1px solid rgba(237,118,188,.2);
  border-radius: 14px;
  padding: 12px 18px;
  margin-bottom: 18px;
  font-size: 14px;
  color: var(--dv-text);
  flex-wrap: wrap;
}
.dv-readonly-banner a {
  color: var(--dv-pink);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.dv-readonly-banner a:hover { text-decoration: underline; }

/* En modo lectura, los selects deshabilitados se ven planos */
.dv-clinic-readonly .dv-status-select:disabled {
  opacity: 1;
  cursor: default;
}
.dv-note-readonly { cursor: pointer; }

@media (max-width: 600px) {
  .dv-access-item { flex-direction: column; align-items: stretch; }
  .dv-access-actions { width: 100%; }
  .dv-access-actions .davinci-button,
  .dv-access-actions form { flex: 1; }
  .dv-access-actions .davinci-button { width: 100% !important; text-align: center; }
}

/* ══════════════════════════════════════════════════════
   CONTABILIDAD
══════════════════════════════════════════════════════ */
.dv-stat-highlight {
  background: linear-gradient(135deg, rgba(237,118,188,.08), rgba(249,218,115,.08)) !important;
  border-color: rgba(237,118,188,.2) !important;
}
.dv-stat-highlight strong { color: var(--dv-pink); }

.dv-accounting-total td {
  border-top: 2px solid var(--dv-border);
  background: #fafbfc;
  font-size: 14px;
}

body.dv-dark-admin .dv-accounting-total td { background: var(--da-surface2); }

/* ══════════════════════════════════════════════════════
   VENDEDOR — Racha, récord, desglose, buscador, edición
══════════════════════════════════════════════════════ */
/* Racha + récord */
.dv-achievement-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.dv-achievement-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
}
.dv-ach-icon {
  font-size: 28px;
  line-height: 1;
  flex-shrink: 0;
}
.dv-ach-info { display: flex; flex-direction: column; min-width: 0; }
.dv-ach-info strong {
  font-family: 'Outfit', sans-serif;
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
}
.dv-ach-info span {
  font-size: 11.5px;
  color: var(--dv-text-soft);
  margin-top: 3px;
  line-height: 1.3;
}

/* Desglose de comisión */
.dv-breakdown-card { margin-bottom: 14px; }
.dv-breakdown-list { display: flex; flex-direction: column; gap: 8px; }
.dv-breakdown-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fafbfc;
  border: 1px solid var(--dv-border-soft);
}
.dv-bd-left { display: flex; flex-direction: column; gap: 2px; }
.dv-bd-coupon { font-size: 14px; font-weight: 700; }
.dv-bd-count { font-size: 12px; color: var(--dv-text-soft); }
.dv-bd-amount { font-size: 16px; font-weight: 800; font-family: 'Outfit', sans-serif; color: var(--dv-success); }
.dv-breakdown-total {
  background: linear-gradient(135deg, rgba(237,118,188,.08), rgba(249,218,115,.08));
  border-color: rgba(237,118,188,.2);
}
.dv-breakdown-total .dv-bd-coupon { color: var(--dv-pink); }
.dv-breakdown-total .dv-bd-amount { color: var(--dv-pink); }

/* Buscador del historial */
.dv-history-search-wrap {
  position: relative;
  margin-bottom: 12px;
}
.dv-history-search-wrap .dv-history-search-icon {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: var(--dv-text-muted);
  pointer-events: none;
  z-index: 2;
}
.dv-history-search-wrap input.dv-history-search {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--dv-border);
  border-radius: 12px;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
  padding-right: 14px !important;
  padding-left: 44px !important;
  font-size: 14px;
  line-height: 1.4;
  background: #fcfcfd;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.dv-history-search-wrap input.dv-history-search:focus {
  border-color: rgba(237,118,188,.4);
  box-shadow: 0 0 0 3px rgba(237,118,188,.08);
  background: #fff;
}

/* Corrección de venta */
.dv-sale-edit-zone {
  border-top: 1px solid var(--dv-border-soft);
  padding: 12px 14px;
}
.dv-sale-edit-toggle {
  border: none;
  background: rgba(237,118,188,.08);
  color: var(--dv-pink);
  font-weight: 700;
  font-size: 13px;
  padding: 9px 14px;
  border-radius: 10px;
  cursor: pointer;
  width: 100%;
  transition: background .15s;
}
.dv-sale-edit-toggle:hover { background: rgba(237,118,188,.14); }
.dv-sale-edit-form {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dv-sale-edit-hint {
  font-size: 12px;
  color: var(--dv-text-soft);
  margin: 0;
  line-height: 1.4;
}
.dv-sale-edit-form label {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.dv-sale-edit-form label span {
  font-size: 12px;
  font-weight: 600;
  color: var(--dv-text-soft);
}
.dv-sale-edit-form input {
  border: 1px solid var(--dv-border);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
  background: #fff;
  outline: none;
}
.dv-sale-edit-form input:focus {
  border-color: rgba(237,118,188,.4);
  box-shadow: 0 0 0 3px rgba(237,118,188,.08);
}
.dv-sale-edit-actions {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}
.dv-sale-edit-actions .davinci-button { flex: 1; }

/* ── Desglose comisión: selector semana + boleta ────── */
.dv-bd-week-form { margin-bottom: 14px; }
.dv-bd-week-form label { display: flex; flex-direction: column; gap: 5px; }
.dv-bd-week-form label span { font-size: 12px; font-weight: 600; color: var(--dv-text-soft); }
.dv-bd-week-form select {
  border: 1px solid var(--dv-border);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
  background: #fff;
  outline: none;
  cursor: pointer;
}

.dv-bd-boleta {
  margin-top: 14px;
  border: 1px solid var(--dv-border-soft);
  border-radius: 14px;
  overflow: hidden;
}
.dv-bd-boleta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  font-size: 14px;
}
.dv-bd-boleta-row span { color: var(--dv-text-soft); }
.dv-bd-boleta-row strong { font-family: 'Outfit', sans-serif; font-size: 16px; }
.dv-bd-boleta-row + .dv-bd-boleta-row { border-top: 1px solid var(--dv-border-soft); }
.dv-bd-retencion strong { color: var(--dv-danger); }
.dv-bd-liquido {
  background: linear-gradient(135deg, rgba(62,207,142,.1), rgba(62,207,142,.04));
}
.dv-bd-liquido span { color: var(--dv-text); font-weight: 700; }
.dv-bd-liquido strong { color: var(--dv-success); font-size: 18px; font-weight: 800; }

.dv-bd-note {
  font-size: 12px;
  color: var(--dv-text-soft);
  line-height: 1.45;
  margin: 10px 2px 0;
}

body.dv-dark-admin .dv-bd-week-form select,
body.dv-dark-admin .dv-bd-boleta-row strong { color: var(--da-text); }

/* ── Subtítulo del desglose (debajo del título, no a la derecha) ── */
.dv-breakdown-sub {
  font-size: 13px;
  color: var(--dv-text-soft);
  margin: -6px 0 14px;
}
.dv-bd-count-row strong {
  font-size: 18px !important;
}

/* ══════════════════════════════════════════════════════
   TOGGLE de visibilidad del ranking
══════════════════════════════════════════════════════ */
.dv-ranking-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #fafbfc;
  border: 1px solid var(--dv-border-soft);
  border-radius: 12px;
  margin-bottom: 14px;
}
.dv-ranking-toggle-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--dv-text-soft);
}

/* Switch */
.dv-switch {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  cursor: pointer;
}
.dv-switch input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.dv-switch-track {
  width: 44px;
  height: 26px;
  background: var(--dv-border);
  border-radius: 999px;
  transition: background .2s var(--dv-ease);
  display: inline-flex;
  align-items: center;
  padding: 0 3px;
}
.dv-switch-thumb {
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,.25);
  transition: transform .2s var(--dv-ease);
}
.dv-switch input:checked + .dv-switch-track {
  background: linear-gradient(135deg, #ed76bc, #f9da73);
}
.dv-switch input:checked + .dv-switch-track .dv-switch-thumb {
  transform: translateX(18px);
}

body.dv-dark-admin .dv-ranking-toggle { background: var(--da-surface2); }

/* ══════════════════════════════════════════════════════
   ESTADÍSTICAS AVANZADAS (dashboard clínica)
══════════════════════════════════════════════════════ */
.dv-advanced-stats {
  margin-bottom: 16px;
  overflow: hidden;
}
.dv-advanced-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  padding: 4px 0;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
  font-size: 16px;
}
.dv-advanced-toggle::-webkit-details-marker { display: none; }
.dv-advanced-toggle::after {
  content: '▾';
  font-size: 14px;
  color: var(--dv-text-muted);
  transition: transform .2s var(--dv-ease);
}
.dv-advanced-stats[open] .dv-advanced-toggle::after { transform: rotate(180deg); }
.dv-advanced-hint {
  font-size: 12px;
  font-weight: 500;
  color: var(--dv-text-soft);
  margin-left: auto;
  margin-right: 6px;
}
.dv-advanced-body { padding-top: 16px; }

.dv-adv-title {
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  font-weight: 700;
  margin: 22px 0 12px;
  color: var(--dv-text);
}
.dv-adv-title:first-child { margin-top: 0; }

.dv-advanced-body .dv-chart-wrap {
  height: 220px;
  position: relative;
  margin-bottom: 6px;
}

.dv-adv-table th {
  font-size: 12px;
  color: var(--dv-text-soft);
}

@media (max-width: 600px) {
  .dv-advanced-hint { display: none; }
  .dv-advanced-body .dv-chart-wrap { height: 200px; }
}

body.dv-dark-admin .dv-advanced-toggle { color: var(--da-text); }

/* ── Bonos vs descuentos ────────────────────────────── */
.dv-bonus-amount.dv-amount-neg {
  color: var(--dv-danger) !important;
}
.dv-bonus-period {
  font-weight: 500;
  color: var(--dv-text-soft);
  font-size: 12px;
}

/* ══════════════════════════════════════════════════════
   HEADER VENDEDOR — rediseño profesional
══════════════════════════════════════════════════════ */
.dv-vendor-header-pro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}
.dv-vh-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.dv-vh-greeting {
  font-size: 13px;
  font-weight: 600;
  color: var(--dv-text-soft);
  letter-spacing: .2px;
}
.dv-vh-name {
  font-family: 'Outfit', sans-serif;
  font-size: clamp(28px, 7vw, 38px);
  font-weight: 800;
  line-height: 1.05;
  margin: 2px 0;
  letter-spacing: -0.5px;
  background: linear-gradient(120deg, var(--dv-text) 30%, #ed76bc 130%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.dv-vh-meta {
  font-size: 12.5px;
  color: var(--dv-text-muted);
  font-weight: 500;
}
.dv-vh-logout {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
  border: 1px solid var(--dv-border);
  background: #fff;
  color: var(--dv-text-soft);
  font-size: 13px;
  font-weight: 600;
  padding: 9px 15px;
  border-radius: 999px;
  text-decoration: none;
  transition: border-color .15s, color .15s, background .15s, transform .1s;
}
.dv-vh-logout:hover {
  border-color: rgba(237,118,188,.35);
  color: var(--dv-pink);
  background: rgba(237,118,188,.04);
}
.dv-vh-logout:active { transform: scale(.97); }

@media (max-width: 420px) {
  .dv-vh-logout span { display: none; }
  .dv-vh-logout { padding: 10px; }
}

/* Tarjeta de logro cuando se supera el récord del día */
.dv-achievement-card.dv-ach-fire {
  background: linear-gradient(135deg, rgba(237,118,188,.1), rgba(249,218,115,.12));
  border-color: rgba(237,118,188,.25);
}
.dv-achievement-card.dv-ach-fire .dv-ach-info strong { color: var(--dv-pink); }

/* Tarjetas de récord lado a lado también en móvil */
@media (max-width: 480px) {
  .dv-achievement-row { gap: 8px; }
  .dv-achievement-card { padding: 13px; flex-direction: column; align-items: flex-start; gap: 8px; }
  .dv-ach-icon { font-size: 22px; }
  .dv-ach-info strong { font-size: 22px; }
  .dv-ach-info span { font-size: 11px; }
}

/* ── Tarjeta de cuenta desactivada ──────────────────── */
.dv-disabled-card {
  text-align: center;
  max-width: 440px;
  margin: 40px auto;
}
.dv-disabled-icon {
  font-size: 44px;
  margin-bottom: 8px;
}
.dv-disabled-card h2 { margin: 0 0 8px; }
.dv-disabled-card p {
  color: var(--dv-text-soft);
  line-height: 1.5;
  margin-bottom: 20px;
}
.dv-disabled-card .davinci-button {
  width: auto;
  display: inline-block;
}
