* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background: #f8fafc;
  color: #1e293b;
  font-family: 'DM Sans', sans-serif;
  min-height: 100vh;
}

/* AUTH */
.auth-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 2rem;
}

.container {
  width: 100%;
  max-width: 420px;
}

.logo {
  text-align: center;
  margin-bottom: 2rem;
}

.logo h1 {
  font-family: 'Syne', sans-serif;
  font-size: 2rem;
}

.logo span {
  color: #F97316;
}

.logo p {
  color: #64748b;
  font-size: .9rem;
  margin-top: .3rem;
}

.card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.07);
}

.tabs {
  display: flex;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid #e2e8f0;
}

.tab {
  flex: 1;
  text-align: center;
  padding: .75rem;
  cursor: pointer;
  color: #64748b;
  font-size: .95rem;
  border-bottom: 2px solid transparent;
  transition: .2s;
}

.tab.active {
  color: #F97316;
  border-bottom-color: #F97316;
}

.form-group {
  margin-bottom: 1.2rem;
}

label {
  display: block;
  font-size: .85rem;
  color: #475569;
  margin-bottom: .4rem;
}

input,
select,
textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .75rem 1rem;
  color: #1e293b;
  font-size: .95rem;
  outline: none;
  transition: .2s;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

select option {
  background: #ffffff;
  color: #1e293b;
}

textarea {
  resize: vertical;
  font-family: 'DM Sans', sans-serif;
}

.btn {
  width: 100%;
  background: #F97316;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: .85rem;
  font-size: 1rem;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  cursor: pointer;
  transition: .2s;
  margin-top: .5rem;
}

.btn:hover {
  background: #ea6c10;
}

.btn-sm {
  width: auto;
  padding: .4rem .9rem;
  font-size: .85rem;
  margin-top: 0;
  border-radius: 6px;
}

.btn-outline {
  background: transparent;
  border: 1px solid #e2e8f0;
  color: #64748b;
}

.btn-outline:hover {
  border-color: #F97316;
  color: #F97316;
  background: transparent;
}

.btn-danger {
  background: #c0392b;
}

.btn-danger:hover {
  background: #a93226;
}

.btn-ghost {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #475569;
}

.btn-ghost:hover {
  border-color: #cbd5e1;
  color: #1e293b;
}

.error {
  background: #fef2f2;
  border: 1px solid #fca5a5;
  color: #dc2626;
  padding: .75rem 1rem;
  border-radius: 8px;
  font-size: .85rem;
  margin-bottom: 1rem;
  display: none;
}

.success {
  background: #f0fdf4;
  border: 1px solid #86efac;
  color: #16a34a;
  padding: .75rem 1rem;
  border-radius: 8px;
  font-size: .85rem;
  margin-bottom: 1rem;
  display: none;
}

.plan-selector {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.plan-opt {
  flex: 1;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .75rem;
  text-align: center;
  cursor: pointer;
  transition: .2s;
}

.plan-opt.selected {
  border-color: #F97316;
  background: #fff7ed;
}

.plan-opt .plan-name {
  font-weight: 500;
  font-size: .9rem;
}

.plan-opt .plan-price {
  color: #F97316;
  font-size: .85rem;
  margin-top: .2rem;
}

/* GLOBAL LOADER */
#globalLoader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(248, 250, 252, 0.85);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: .3s;
}

#globalLoader.active {
  opacity: 1;
  pointer-events: all;
}

.spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #e2e8f0;
  border-top-color: #F97316;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem;
}

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

/* ONBOARDING WIZARD */
.onboarding-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 2rem;
  margin-top: 2rem;
  border-left: 4px solid #F97316;
  box-shadow: 0 1px 3px rgba(0,0,0,0.07);
}

.onboarding-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 1.5rem;
}

.step-box {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: .2s;
}

.step-box:hover {
  border-color: #F97316;
  transform: translateY(-3px);
}

.step-box .step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #F97316;
  color: #fff;
  border-radius: 50%;
  font-weight: bold;
  margin-bottom: 1rem;
}

/* DASHBOARD */
.app-wrap {
  display: none;
}

.topbar {
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  padding: 1rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
}

.topbar .brand {
  font-family: 'Syne', sans-serif;
  font-size: 1.2rem;
}

.topbar .brand span {
  color: #F97316;
}

.topbar-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.badge-plan {
  background: #fff7ed;
  border: 1px solid #F97316;
  color: #ea6c10;
  padding: .2rem .6rem;
  border-radius: 20px;
  font-size: .75rem;
}

.logout-btn {
  background: transparent;
  border: 1px solid #e2e8f0;
  color: #64748b;
  padding: .4rem .8rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: .85rem;
}

/* NAV */
.sidenav {
  width: 280px;
  background: #ffffff;
  border-right: 1px solid #e2e8f0;
  height: calc(100vh - 57px);
  position: fixed;
  top: 57px;
  left: 0;
  padding: 1.5rem 0;
  overflow-y: auto;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1.5rem;
  cursor: pointer;
  color: #64748b;
  font-size: .8rem;
  transition: .2s;
}

.nav-item:hover {
  color: #1e293b;
  background: #f1f5f9;
}

.nav-item.active {
  color: #F97316;
  background: #fff7ed;
  border-right: 3px solid #F97316;
}

.nav-item .icon {
  font-size: 1.1rem;
  width: 20px;
  text-align: center;
}

.pro-badge {
  background: #B45309;
  color: #fff;
  font-size: .65rem;
  padding: .1rem .35rem;
  border-radius: 3px;
  margin-left: auto;
}

.pending-badge {
  background: #c0392b;
  color: #fff;
  font-size: .65rem;
  padding: .1rem .4rem;
  border-radius: 10px;
  margin-left: auto;
  font-weight: 700;
}

.nav-item .pending-badge {
  display: none !important;
}

.main-content {
  margin-left: 280px;
  padding: 2rem;
  min-height: calc(100vh - 57px);
}

/* CLEAR THEME OVERRIDES */
.main-content {
  margin-left: 280px;
  padding: 2rem;
  background: #f8fafc;
  color: #1e293b;
}

/* CLEAR MODE OVERRIDES (Light Theme) */
.main-content {
  background: #ffffff !important;
  color: #1e293b !important;
}

.main-content h1,
.main-content h2,
.main-content h3,
.main-content h4,
.main-content p,
.main-content label,
.main-content span:not(.badge, .icon, .sem, .vcto-item) {
  color: #1e293b !important;
}

.main-content .card {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
}

/* CLEAR THEME OVERRIDES */
.main-content h2 {
  color: #0f172a;
}

.main-content p {
  color: #64748b;
}

.main-content .info-card,
.main-content .stat-card,
.main-content .card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  color: #1e293b;
}

.main-content .stat-val {
  color: #0f172a;
}

.main-content .stat-label {
  color: #64748b;
}

.main-content h3 {
  color: #334155;
}

.main-content .info-row {
  border-bottom-color: #f1f5f9;
}

.main-content .info-row .val {
  color: #0f172a;
}

.main-content .cp-table th {
  background: #f1f5f9;
  color: #475569;
  border-bottom-color: #e2e8f0;
}

.main-content .cp-table td {
  border-bottom-color: #f1f5f9;
  color: #1e293b;
}

.main-content .cp-table tr:hover td {
  background: #f8fafc;
}

.main-content .filter-btn {
  border-color: #e2e8f0;
  color: #64748b;
}

.main-content .filter-btn:hover {
  background: #f1f5f9;
}

.main-content .filter-btn.active {
  background: #F97316;
  border-color: #F97316;
  color: #fff;
}

.main-content .step-box {
  background: #fff;
  border-color: #e2e8f0;
}

.main-content .step-box h4 {
  color: #0f172a;
}

.main-content .step-box p {
  color: #64748b;
}

.main-content input,
.main-content select,
.main-content textarea {
  background: #fff;
  border-color: #cbd5e1;
  color: #1e293b;
}

.main-content .btn-ghost {
  background: #f1f5f9;
  border-color: #e2e8f0;
  color: #475569;
}

.main-content .btn-ghost:hover {
  background: #e2e8f0;
  color: #0f172a;
}

.main-content .back-btn {
  background: #fff;
  border-color: #e2e8f0;
  color: #64748b;
}

.main-content .back-btn:hover {
  border-color: #3b82f6;
  color: #3b82f6;
}




/* PÁGINAS */
.page {
  display: none;
  animation: fadeIn 0.3s ease;
}

.page.active {
  display: block;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ==========================================================================
   INTEGRATED MODULES: AGENDA & CALCULATOR
   ========================================================================== */

/* Calendar / Agenda */
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 10px;
  background: #f8fafc;
  padding: 15px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
}

.day-header {
  text-align: center;
  font-weight: 700;
  font-size: 0.75rem;
  color: #64748b;
  padding-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.day-cell {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  min-height: 100px;
  padding: 8px;
  position: relative;
  transition: transform 0.2s, box-shadow 0.2s;
}

.day-cell:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.day-cell.today {
  border: 2px solid #3b82f6;
  background: #f0f7ff;
}

.day-num {
  font-weight: 700;
  font-size: 1rem;
  color: #1e293b;
  margin-bottom: 6px;
}

.vcto-item {
  font-size: 0.75rem;
  padding: 4px 8px;
  border-radius: 6px;
  margin-bottom: 4px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.vcto-item.hecho {
  opacity: 0.4;
  text-decoration: line-through;
}

/* Mejora botones excluir */
.expand-mes-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: .68rem;
  color: #94a3b8;
  padding: 1px 4px;
  border-radius: 4px;
  width: 22px;
  display: inline-block;
  text-align: center;
  transition: .15s;
  vertical-align: middle;
}
.expand-mes-btn:hover { color: #F97316; background: #fff7ed; }

.btn-excluir {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fecaca;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s;
}

.btn-excluir:hover {
  background: #fecaca;
}

.btn-incluir {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
}

/* Calculator Styles */
.calc-card {
  max-width: 600px;
  margin: 0 auto;
}

.cat-badge {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  color: white;
  border-radius: 16px;
  padding: 24px;
  text-align: center;
  margin-bottom: 20px;
  box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
}

.cat-value {
  font-size: 4rem;
  font-weight: 800;
  line-height: 1;
}

.desglose {
  background: #f8fafc;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid #e2e8f0;
}

.fila {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #e2e8f0;
}

.fila:last-child {
  border-bottom: none;
}

.fila.total {
  font-weight: 700;
  color: #0f172a;
  border-top: 2px solid #e2e8f0;
  margin-top: 10px;
}

.vigencia {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #dcfce7;
  color: #166534;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 20px;
}

.dot {
  width: 8px;
  height: 8px;
  background: #22c55e;
  border-radius: 50%;
}

/* General module UI */
.module-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.tipo-chip {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}


/* HOME */
.welcome {
  margin-bottom: 2rem;
}

.welcome h2 {
  font-family: 'Syne', sans-serif;
  font-size: 1.5rem;
}

.welcome p {
  color: #64748b;
  margin-top: .3rem;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}

.stat-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.stat-val {
  font-size: 1.4rem;
  font-weight: 700;
  font-family: 'Syne', sans-serif;
  line-height: 1.2;
}

.stat-label {
  color: #64748b;
  font-size: .85rem;
  margin-top: .3rem;
}

.stat-sub {
  font-size: .72rem;
  color: #94a3b8;
  margin-top: .3rem;
  min-height: 1em;
}

@media (max-width: 900px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* CLIENTES */
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.page-header h2 {
  font-family: 'Syne', sans-serif;
  font-size: 1.3rem;
}

.page-header-actions {
  display: flex;
  gap: .5rem;
}

.clientes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 320px));
  gap: 1rem;
}

.cliente-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1.2rem;
  cursor: pointer;
  transition: .2s;
  position: relative;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.cliente-card:hover {
  border-color: #F97316;
}

.cliente-card .sem {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 1.4rem;
}

.cliente-card h3 {
  font-size: 1rem;
  margin-bottom: .3rem;
  padding-right: 2rem;
}

.cliente-card .cuit {
  color: #64748b;
  font-size: .8rem;
  margin-bottom: .8rem;
}

.cliente-card .cat-badge {
  display: inline-block;
  background: #1B3FA0;
  color: #fff;
  padding: .2rem .6rem;
  border-radius: 4px;
  font-size: .75rem;
  font-weight: 600;
  margin-right: .4rem;
}

.cliente-card .prog-bar-wrap {
  margin-top: .8rem;
}

.cliente-card .prog-label {
  display: flex;
  justify-content: space-between;
  font-size: .75rem;
  color: #64748b;
  margin-bottom: .3rem;
}

.prog-bar {
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
}

.prog-bar-fill {
  height: 100%;
  border-radius: 3px;
  transition: .3s;
}

.fill-verde {
  background: #4ade80;
}

.fill-amarillo {
  background: #fbbf24;
}

.fill-naranja {
  background: #f97316;
}

.fill-rojo {
  background: #f87171;
}

/* DETALLE CLIENTE */
.detalle-header {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.detalle-header h2 {
  font-family: 'Syne', sans-serif;
  font-size: 1.3rem;
  flex: 1;
}

.back-btn {
  background: #1c2128;
  border: 1px solid #444;
  color: #ddd;
  padding: .5rem 1.1rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: .88rem;
  font-weight: 600;
  font-family: 'DM Sans', sans-serif;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  transition: .15s;
}
.back-btn:hover {
  border-color: #F97316;
  color: #F97316;
}

.detalle-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.info-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1.2rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}

.info-card h3 {
  font-size: .85rem;
  color: #64748b;
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.info-row {
  display: flex;
  justify-content: space-between;
  padding: .5rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: .9rem;
}

.info-row:last-child {
  border-bottom: none;
}

.info-row .val {
  font-weight: 500;
}

.semaforo-grande {
  text-align: center;
  padding: .75rem 1rem;
}

.semaforo-grande .emoji {
  font-size: 2rem;
}

.semaforo-grande .estado {
  font-size: 1.1rem;
  font-weight: 600;
  margin-top: .5rem;
}

.semaforo-grande .pct {
  font-size: .9rem;
  color: #64748b;
  margin-top: .3rem;
}

.meses-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: .5rem;
  margin-top: 1rem;
}

.mes-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: .5rem;
  text-align: center;
}

.mes-card .mes-nombre {
  font-size: .7rem;
  color: #64748b;
}

.mes-card .mes-monto {
  font-size: .75rem;
  font-weight: 500;
  margin-top: .2rem;
}

.mes-card.tiene-data {
  border-color: #cbd5e1;
}

/* CONTRAPARTES */
.filter-bar {
  display: flex;
  gap: .5rem;
  margin-bottom: 1.2rem;
}

.filter-btn {
  padding: .35rem .9rem;
  border-radius: 20px;
  font-size: .8rem;
  border: 1px solid #e2e8f0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  transition: .2s;
}

.filter-btn.active {
  background: #F97316;
  border-color: #F97316;
  color: #fff;
}

.cp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}

.cp-table th {
  text-align: left;
  padding: .6rem 1rem;
  color: #64748b;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 1px solid #e2e8f0;
}

.cp-table td {
  padding: .65rem 1rem;
  border-bottom: 1px solid #f1f5f9;
  vertical-align: middle;
}

.cp-table tr:hover td {
  background: #f8fafc;
}

.cp-table select {
  width: auto;
  padding: .3rem .6rem;
  font-size: .8rem;
  border-radius: 6px;
}

.cp-table tr.historial-total-row td,
.main-content .cp-table tr.historial-total-row td,
.cp-table tr.historial-total-row:hover td,
.main-content .cp-table tr.historial-total-row:hover td {
  background: #1e293b;
  color: #f8fafc;
  border-top: 2px solid #F97316;
  border-bottom: none;
  font-weight: 700;
  padding: .75rem 1rem;
  white-space: nowrap;
}

.condicion-badge {
  display: inline-block;
  padding: .2rem .6rem;
  border-radius: 4px;
  font-size: .75rem;
  font-weight: 600;
}

.cond-RI {
  background: #1B3FA0;
  color: #fff;
}

.cond-Monotributo {
  background: #c2410c;
  color: #fff;
}

.cond-Consumidor {
  background: #15803d;
  color: #fff;
}

.cond-Exento {
  background: #7e22ce;
  color: #fff;
}

.cond-pendiente {
  background: #374151;
  color: #f59e0b;
}

/* RESULTADO CSV */
.csv-result {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 1rem;
  margin-top: 1rem;
  font-size: .85rem;
  display: none;
}

.csv-result.ok {
  border-color: #4ade80;
}

.csv-result.error {
  border-color: #f87171;
  color: #f87171;
}

.csv-result ul {
  margin: .5rem 0 0 1rem;
}

.csv-result li {
  margin-top: .3rem;
  color: #64748b;
}

/* TIPO CSV SELECTOR */
.tipo-selector {
  display: flex;
  gap: .75rem;
  margin-bottom: 1rem;
}

.tipo-opt {
  flex: 1;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: .65rem;
  text-align: center;
  cursor: pointer;
  transition: .2s;
  font-size: .9rem;
  color: #64748b;
}

.tipo-opt.selected {
  border-color: #F97316;
  background: #fff7ed;
  color: #F97316;
  font-weight: 600;
}

/* UPLOAD ZONE */
.upload-zone {
  border: 2px dashed #e2e8f0;
  border-radius: 10px;
  padding: 2rem 1rem;
  text-align: center;
  cursor: pointer;
  transition: .2s;
  color: #64748b;
}

.upload-zone:hover,
.upload-zone.drag {
  border-color: #F97316;
  background: #fff7ed;
  color: #F97316;
}

.upload-zone .upload-icon {
  font-size: 2rem;
  margin-bottom: .5rem;
}

.upload-zone.file-ok {
  border-color: #4ade80;
  background: #f0fdf4;
  color: #16a34a;
}

/* MODAL */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .7);
  z-index: 1000;
  /* flex-column + overflow-y en el overlay: el scroll ocurre AQUÍ, no dentro del modal */
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  overflow-y: auto;
  padding: 1.5rem;
}

.modal-overlay.open {
  display: flex;
}

.modal {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 20px 40px rgba(0,0,0,0.12);
  border-radius: 12px;
  /* sin padding inferior: el footer sticky lo maneja */
  padding: 2rem 2rem 0;
  width: 100%;
  max-width: 560px;
  /* margin:auto centra verticalmente modales cortos;
     cuando el modal es más alto que el viewport colapsa a 0 y queda arriba */
  margin: auto;
  /* el modal no scrollea: el overlay es quien lo hace */
  max-height: none;
  overflow-y: visible;
}

.modal h3 {
  font-family: 'Syne', sans-serif;
  font-size: 1.1rem;
  margin-bottom: 1.5rem;
}

.modal-footer {
  /* sticky al fondo del overlay (scroll container) — botones siempre visibles */
  position: sticky;
  bottom: 0;
  background: #ffffff;
  display: flex;
  gap: .75rem;
  /* padding vertical: superior separa del contenido, inferior = padding que quitamos al .modal */
  padding: 1rem 0 2rem;
  margin-top: 1rem;
  justify-content: flex-end;
  border-top: 1px solid #f1f5f9;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.modal-note {
  color: #64748b;
  font-size: .8rem;
  margin-bottom: 1rem;
  line-height: 1.5;
}

/* PRO features */
.toggle-vista {
  display: flex;
  gap: .5rem;
  margin-bottom: 1.2rem;
}

.toggle-btn {
  padding: .4rem 1rem;
  border-radius: 20px;
  font-size: .85rem;
  border: 1px solid #e2e8f0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  transition: .2s;
}

.toggle-btn.active {
  background: #F97316;
  border-color: #F97316;
  color: #fff;
}

.saldo-pos {
  color: #f87171;
}

.saldo-neg {
  color: #4ade80;
}

.saldo-cero {
  color: #888;
}

.recibo-importe {
  font-size: 1.6rem;
  font-weight: 700;
  font-family: 'Syne', sans-serif;
  color: #F97316;
  text-align: center;
  margin: 1rem 0 .3rem;
}

.recibo-letras {
  color: #64748b;
  font-size: .8rem;
  text-align: center;
  margin-bottom: 1.2rem;
}

.ajuste-wrap {
  display: none;
}

.ajuste-wrap.show {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.nav-sep {
  border-top: 1px solid #f1f5f9;
  margin: .5rem 0;
}

.upgrade-msg {
  text-align: center;
  padding: 3rem;
  color: #64748b;
}

.upgrade-msg a {
  color: #F97316;
  cursor: pointer;
}

/* Flujo de fondo */
.flujo-table th,
.flujo-table td {
  text-align: right;
}

.flujo-table th:first-child,
.flujo-table td:first-child {
  text-align: left;
}

.flujo-pos {
  color: #16a34a;
  font-weight: 600;
}

.flujo-neg {
  color: #dc2626;
  font-weight: 600;
}

.flujo-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
/* ==========================================================================
   AGENDA FISCAL — Módulo integrado (ag- prefix)
   ========================================================================== */

/* Header con tabs */
#page-agenda { flex-direction: column; padding: 0; }
#page-agenda.active { display: flex; }
.ag-hdr { background: #fff; border-bottom: 1px solid #e2e8f0; display: flex; align-items: center; flex-wrap: wrap; gap: 0; padding: 0 20px; flex-shrink: 0; }
.ag-tabs { display: flex; height: 52px; }
.ag-tab { padding: 0 16px; height: 100%; display: flex; align-items: center; cursor: pointer; font-size: 13px; font-weight: 600; color: #94a3b8; border-bottom: 3px solid transparent; white-space: nowrap; transition: all .2s; }
.ag-tab:hover { color: #1e293b; }
.ag-tab.active { color: #3b82f6; border-bottom-color: #3b82f6; }
.ag-hdr-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.ag-prov-sel { background: #1e2533; border: none; color: #fff; font-size: 12px; font-weight: 700; border-radius: 8px; padding: 5px 10px; cursor: pointer; outline: none; }
.ag-mes-badge { background: #334155; color: #94a3b8; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700; }

/* Views */
.ag-view { display: none; flex: 1; overflow: auto; }
.ag-view.active { display: flex; flex-direction: column; }

/* Sobrescribir estilos dark del tema para selects/inputs dentro de la agenda */
#page-agenda select,
#page-agenda input[type="text"],
#page-agenda input[type="email"],
#page-agenda input[type="month"],
#page-agenda input[type="date"],
#page-agenda input[type="number"],
#page-agenda textarea {
  background: #fff;
  color: #1e293b;
  border-color: #e2e8f0;
}
#page-agenda select option { background: #fff; color: #1e293b; }
#page-agenda .btn-outline { color: #374151; border-color: #d1d5db; }
#page-agenda .btn-outline:hover { color: #F97316; border-color: #F97316; background: transparent; }

/* Toolbar del calendario */
.ag-toolbar { background: #fff; border-bottom: 1px solid #e2e8f0; padding: 12px 20px; display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; flex-shrink: 0; }
.ag-toolbar .form-group { margin: 0; }

/* Grilla calendario */
.ag-cal-wrap { padding: 16px; flex: 1; overflow: auto; }
.ag-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; background: #e2e8f0; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; }
.ag-cal-day-hdr { background: #1e2533; color: #64748b; text-align: center; padding: 9px 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }
.ag-cal-cell { background: #fff; min-height: 110px; padding: 5px; position: relative; }
.ag-cal-cell.ag-wk { background: #f9fafb; }
.ag-cal-cell.ag-today { box-shadow: inset 0 0 0 2px #f59e0b; background: #fffbeb; }
.ag-cal-cell.ag-empty { background: #f3f4f6; }
.ag-cell-num { font-size: 13px; font-weight: 700; color: #374151; margin-bottom: 4px; display: flex; align-items: center; justify-content: space-between; }
.ag-cell-num .n { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 12px; }
.ag-today .ag-cell-num .n { background: #f59e0b; color: #fff; }
.ag-cell-count { font-size: 10px; color: #fff; border-radius: 10px; padding: 1px 6px; font-weight: 700; }
.ag-cal-chip { display: flex; align-items: center; gap: 3px; border-radius: 4px; padding: 2px 5px; margin-bottom: 2px; font-size: 10px; font-weight: 600; cursor: pointer; border-left: 3px solid transparent; transition: filter .15s; line-height: 1.4; }
.ag-cal-chip:hover { filter: brightness(.9); }
.ag-cal-chip.done { opacity: .4; text-decoration: line-through; }
.ag-cal-chip .ck { width: 11px; height: 11px; border-radius: 2px; border: 1.5px solid currentColor; display: flex; align-items: center; justify-content: center; font-size: 8px; flex-shrink: 0; }
.ag-more-lnk { font-size: 10px; color: #6b7280; padding: 1px 4px; cursor: pointer; font-weight: 600; }
.ag-more-lnk:hover { color: #3b82f6; }
.ag-legend { background: #fff; border-top: 1px solid #e2e8f0; padding: 10px 20px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; flex-shrink: 0; }
.ag-leg-item { display: flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600; color: #374151; }
.ag-leg-dot { width: 12px; height: 12px; border-radius: 3px; }

/* Vista por cliente */
.ag-cliente-layout { display: grid; grid-template-columns: 300px 1fr; flex: 1; overflow: hidden; min-height: 0; }
.ag-sidebar { background: #fff; border-right: 1px solid #e2e8f0; display: flex; flex-direction: column; overflow: hidden; }
.ag-sidebar-search { padding: 12px; border-bottom: 1px solid #e2e8f0; display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.ag-sidebar-search select, .ag-sidebar-search input { width: 100%; border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; outline: none; }
.ag-sidebar-hdr { padding: 8px 14px; font-size: 11px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: .7px; background: #f8f9fb; border-bottom: 1px solid #e2e8f0; flex-shrink: 0; }
.ag-sidebar-list { overflow-y: auto; flex: 1; }
.ag-client-row { padding: 10px 14px; border-bottom: 1px solid #f3f4f6; cursor: pointer; transition: background .15s; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ag-client-row:hover { background: #f8fafc; }
.ag-client-row.active { background: #eff6ff; border-left: 3px solid #3b82f6; }
.ag-cr-name { font-size: 13px; font-weight: 700; line-height: 1.3; color: #1e293b; }
.ag-cr-meta { font-size: 11px; color: #6b7280; margin-top: 1px; }
.ag-cr-badges { display: flex; gap: 3px; flex-wrap: wrap; justify-content: flex-end; flex-shrink: 0; }
.ag-detail-pane { overflow-y: auto; padding: 20px; background: #f8fafc; }
.ag-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 60%; color: #6b7280; text-align: center; }

/* Tabla de vencimientos por cliente */
.ag-vtable { width: 100%; border-collapse: collapse; }
.ag-vtable th { background: #f8f9fb; padding: 9px 14px; font-size: 11px; font-weight: 700; color: #6b7280; text-align: left; text-transform: uppercase; letter-spacing: .6px; border-bottom: 1px solid #e2e8f0; }
.ag-vtable td { padding: 10px 14px; font-size: 13px; border-bottom: 1px solid #f3f4f6; vertical-align: middle; color: #1e293b; }
.ag-vtable tr:last-child td { border-bottom: none; }
.ag-vtable tr:hover td { background: #fafbfc; }
.ag-vtable tr.ag-hecho td { opacity: .4; }
.ag-vtable tr.ag-vencido td:nth-child(2) { color: #ef4444; font-weight: 700; }
.ag-vtable tr.ag-proximo td:nth-child(2) { color: #f59e0b; font-weight: 700; }
.ag-ck-btn { background: none; border: 2px solid #e2e8f0; border-radius: 5px; width: 22px; height: 22px; cursor: pointer; font-size: 11px; display: flex; align-items: center; justify-content: center; transition: all .2s; }
.ag-ck-btn.done { background: #22c55e; border-color: #22c55e; color: #fff; }

/* Estadísticas del cliente */
.ag-stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.ag-stat-mini { background: #fff; border-radius: 10px; border: 1px solid #e2e8f0; padding: 12px; text-align: center; }
.ag-stat-mini .n { font-size: 22px; font-weight: 800; color: #1e293b; }
.ag-stat-mini .l { font-size: 10px; color: #6b7280; text-transform: uppercase; letter-spacing: .6px; margin-top: 2px; }
.ag-alert { border-radius: 8px; padding: 10px 14px; margin-bottom: 12px; font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.ag-alert-warn { background: #fef3c7; border: 1px solid #fbbf24; color: #92400e; }
.ag-alert-ok { background: #d1fae5; border: 1px solid #34d399; color: #065f46; }

/* Tipo chip en agenda */
.ag-tipo-chip { display: inline-block; border-radius: 5px; padding: 2px 8px; font-size: 11px; font-weight: 700; border-left: 3px solid transparent; }
.ag-cond-ri { background: #dbeafe; color: #1d4ed8; }
.ag-cond-mt { background: #fed7aa; color: #c2410c; }
.ag-cond-ex { background: #e5e7eb; color: #374151; }

/* Upload zone */
.ag-upload-zone { border: 2px dashed #e2e8f0; border-radius: 12px; padding: 30px; text-align: center; cursor: pointer; transition: all .2s; }
.ag-upload-zone:hover, .ag-upload-zone.drag { border-color: #3b82f6; background: #eff6ff; }

/* Modal propio de la agenda */
.ag-modal-bg { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 600; align-items: center; justify-content: center; }
.ag-modal-bg.open { display: flex; }
.ag-modal-inner { background: #fff; border-radius: 16px; width: 560px; max-height: 88vh; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.ag-modal-hdr { padding: 18px 22px; border-bottom: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: space-between; }
.ag-modal-hdr h3 { font-size: 16px; font-weight: 800; color: #1e293b; }
.ag-modal-footer { padding: 14px 22px; border-top: 1px solid #e2e8f0; display: flex; justify-content: flex-end; gap: 10px; background: #fff; }

/* Toast de agenda */
.ag-toast { position: fixed; bottom: 24px; right: 24px; background: #1e2533; color: #fff; padding: 12px 20px; border-radius: 10px; font-size: 14px; font-weight: 600; transform: translateY(60px); opacity: 0; transition: all .3s; z-index: 9999; pointer-events: none; }
.ag-toast.show { transform: translateY(0); opacity: 1; }

/* Panel de edición cliente */
.ag-edit-block { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px; margin-bottom: 16px; display: none; }
.ag-client-card { background: #fff; border-radius: 12px; border: 1px solid #e2e8f0; padding: 18px 22px; margin-bottom: 16px; }
.ag-client-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ag-cc-name { font-size: 20px; font-weight: 800; color: #1e293b; }
.ag-cc-meta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; font-size: 12px; color: #6b7280; align-items: center; }
.ag-cc-meta .ag-cuit { font-family: monospace; background: #f3f4f6; padding: 2px 8px; border-radius: 4px; color: #1e293b; font-weight: 700; }
.ag-cc-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Config impuesto row */
.ag-imp-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #f3f4f6; }
.ag-imp-row:last-child { border-bottom: none; }
.ag-imp-color { width: 32px; height: 32px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; flex-shrink: 0; }
.ag-imp-info { flex: 1; }
.ag-imp-name { font-size: 13px; font-weight: 700; color: #1e293b; }
.ag-imp-tipo { font-size: 11px; color: #6b7280; }

/* Responsive */
@media (max-width: 900px) {
  .ag-cliente-layout { grid-template-columns: 1fr; }
  .ag-stats-row { grid-template-columns: repeat(2, 1fr); }
  .ag-cal-cell { min-height: 80px; }
}


/* ═══ DASHBOARD PRO (pdb-) ════════════════════════════════════════════════ */
#page-analisis { font-family: 'Segoe UI', sans-serif; font-size: 13px; padding: 0; }

/* Topbar */
.pdb-topbar { display:flex; align-items:center; justify-content:space-between; padding:10px 0 14px; }
.pdb-topbar h1 { font-size:15px; font-weight:700; font-family:'Syne',sans-serif; }
.pdb-period-selector { display:flex; gap:4px; margin-left:14px; }
.pdb-pb { padding:3px 9px; border-radius:16px; font-size:11px; border:1px solid #3d4166; background:transparent; color:#9ca3af; cursor:pointer; transition:.15s; }
.pdb-pb.pdb-active { background:#f97316; border-color:#f97316; color:#fff; }
.pdb-pb:hover:not(.pdb-active) { border-color:#f97316; color:#f97316; }
.pdb-bell { position:relative; font-size:16px; cursor:pointer; }
.pdb-badge { position:absolute; top:-4px; right:-5px; background:#ef4444; color:#fff; font-size:8px; width:14px; height:14px; border-radius:50%; display:flex; align-items:center; justify-content:center; }

/* Alert bar */
.pdb-alert-bar { background:linear-gradient(90deg,#7c3aed15,#f9731615); border:1px solid #7c3aed40; border-radius:8px; padding:9px 14px; margin-bottom:14px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pdb-alert-tags { display:flex; gap:6px; flex-wrap:wrap; margin-left:4px; flex:1; }
.pdb-atag { padding:2px 8px; border-radius:10px; font-size:10px; }
.pdb-atag.pdb-ar { background:#ef444420; border:1px solid #ef444450; color:#fca5a5; cursor:pointer; }
.pdb-atag.pdb-ao { background:#f9731620; border:1px solid #f9731650; color:#fdba74; cursor:pointer; }
.pdb-atag:hover { opacity:.75; }

/* KPI grid */
.pdb-kpi-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:14px; }
.pdb-kpi { background:#1a1d27; border:1px solid #2d3148; border-radius:10px; padding:14px; position:relative; overflow:hidden; }
.pdb-kpi::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; }
.pdb-kpi.pdb-g::before { background:#22c55e; }
.pdb-kpi.pdb-r::before { background:#ef4444; }
.pdb-kpi.pdb-b::before { background:#3b82f6; }
.pdb-kpi.pdb-o::before { background:#f97316; }
.pdb-kpi.pdb-p::before { background:#7c3aed; }
.pdb-kpi-label { font-size:10px; color:#6b7280; margin-bottom:6px; text-transform:uppercase; letter-spacing:.5px; }
.pdb-kpi-val { font-size:16px; font-weight:800; margin-bottom:2px; }
.pdb-gv{color:#22c55e}.pdb-rv{color:#ef4444}.pdb-bv{color:#60a5fa}.pdb-ov{color:#f97316}.pdb-pv{color:#a78bfa}
.pdb-kpi-delta { font-size:10px; color:#6b7280; }
.pdb-kpi-delta.pdb-up{color:#22c55e}.pdb-kpi-delta.pdb-dn{color:#ef4444}

/* Layouts */
.pdb-g2 { display:grid; grid-template-columns:1.5fr 1fr; gap:14px; margin-bottom:14px; }
.pdb-g3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; margin-bottom:14px; }

/* Card */
.pdb-card { background:#1a1d27; border:1px solid #2d3148; border-radius:10px; padding:14px; }
.pdb-ch { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.pdb-ct { font-size:12px; font-weight:700; color:#e2e8f0; }
.pdb-ca { font-size:10px; color:#f97316; cursor:pointer; }
.pdb-ca:hover { text-decoration:underline; }

/* Bar chart */
.pdb-legend { display:flex; gap:10px; margin-bottom:6px; }
.pdb-li { display:flex; align-items:center; gap:3px; font-size:10px; color:#9ca3af; }
.pdb-ld { width:7px; height:7px; border-radius:2px; }
.pdb-chart { height:120px; display:flex; align-items:flex-end; gap:6px; }
.pdb-bg { flex:1; display:flex; gap:1px; align-items:flex-end; }
.pdb-bar { border-radius:3px 3px 0 0; flex:1; min-height:2px; }
.pdb-bar.pdb-bi { background:linear-gradient(180deg,#22c55e,#16a34a); }
.pdb-bar.pdb-bg { background:linear-gradient(180deg,#ef4444,#dc2626); }
.pdb-bar.pdb-ba { background:linear-gradient(180deg,#3b82f6,#1d4ed8); }
.pdb-xlabels { display:flex; gap:6px; margin-top:5px; }
.pdb-xl { flex:1; text-align:center; font-size:9px; color:#6b7280; }
.pdb-xl.pdb-cur { color:#f97316; font-weight:700; }

/* Semáforo table */
.pdb-stbl { width:100%; border-collapse:collapse; font-size:11px; }
.pdb-stbl th { text-align:left; color:#6b7280; font-size:9px; text-transform:uppercase; padding:0 6px 8px; }
.pdb-stbl td { padding:6px; border-bottom:1px solid #242741; }
.pdb-stbl tr:last-child td { border-bottom:none; }
.pdb-stbl tr:hover td { background:rgba(255,255,255,.03); }
.pdb-sdot { width:7px; height:7px; border-radius:50%; display:inline-block; }
.pdb-sdot.verde    { background:#22c55e; box-shadow:0 0 5px #22c55e; }
.pdb-sdot.amarillo { background:#eab308; box-shadow:0 0 5px #eab308; }
.pdb-sdot.naranja  { background:#f97316; box-shadow:0 0 5px #f97316; }
.pdb-sdot.rojo     { background:#ef4444; box-shadow:0 0 5px #ef4444; animation:pdb-pulse 1.4s infinite; }
@keyframes pdb-pulse { 0%{box-shadow:0 0 0 0 rgba(239,68,68,.7)}70%{box-shadow:0 0 0 6px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)} }
.pdb-cn { font-weight:600; color:#e2e8f0; }
.pdb-cc { display:inline-block; background:#242741; padding:1px 5px; border-radius:8px; font-size:9px; color:#9ca3af; margin-left:3px; }
.pdb-pbw { background:#242741; border-radius:8px; height:5px; width:70px; overflow:hidden; }
.pdb-pbf { height:5px; border-radius:8px; }

/* Honorarios table */
.pdb-htbl { width:100%; font-size:11px; border-collapse:collapse; }
.pdb-htbl th { color:#6b7280; font-size:9px; text-transform:uppercase; text-align:left; padding:0 5px 7px; }
.pdb-htbl td { padding:6px 5px; border-bottom:1px solid #242741; }
.pdb-htbl tr:last-child td { border-bottom:none; }
.pdb-hon-co { color:#22c55e; }
.pdb-hon-pe { color:#f97316; }
.pdb-hon-ve { color:#ef4444; font-weight:700; }
.pdb-ms { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
.pdb-msi { background:#242741; border-radius:6px; padding:8px 10px; }
.pdb-msl { font-size:9px; color:#6b7280; margin-bottom:3px; }
.pdb-msv { font-size:14px; font-weight:700; }

/* Vencimientos */
.pdb-vlist { display:flex; flex-direction:column; gap:6px; }
.pdb-vi { display:flex; align-items:center; gap:8px; padding:7px 9px; background:#242741; border-radius:7px; }
.pdb-vi:hover { border-left:2px solid #f97316; padding-left:7px; }
.pdb-vdate { font-size:10px; color:#9ca3af; min-width:38px; }
.pdb-vdate strong { display:block; color:#e2e8f0; font-size:13px; }
.pdb-vinfo { flex:1; }
.pdb-vtitle { font-size:11px; font-weight:600; color:#e2e8f0; }
.pdb-vclient { font-size:10px; color:#6b7280; }
.pdb-vbadge { font-size:9px; padding:2px 6px; border-radius:8px; }
.pdb-vbadge.pdb-vu { background:#ef444420; color:#fca5a5; border:1px solid #ef444440; }
.pdb-vbadge.pdb-vp { background:#eab30820; color:#fde68a; border:1px solid #eab30840; }
.pdb-vbadge.pdb-vk { background:#22c55e20; color:#86efac; border:1px solid #22c55e40; }

/* Real vs Proyectado */
.pdb-rrow { margin-bottom:10px; }
.pdb-rl { display:flex; justify-content:space-between; font-size:11px; margin-bottom:3px; }
.pdb-rbar { background:#242741; border-radius:5px; height:7px; }
.pdb-rbf { height:7px; border-radius:5px; }
.pdb-rn { font-size:9px; color:#6b7280; margin-top:2px; }
.pdb-dbox { background:#242741; border-radius:7px; padding:9px; margin-top:8px; }
.pdb-dbox-t { font-size:10px; color:#6b7280; margin-bottom:5px; }
.pdb-drow { display:flex; justify-content:space-between; font-size:11px; margin-top:3px; }

/* Estado badges */
.pdb-badge-cobrado  { font-size:9px; padding:2px 6px; border-radius:8px; background:#22c55e20; color:#86efac; border:1px solid #22c55e40; }
.pdb-badge-pendiente{ font-size:9px; padding:2px 6px; border-radius:8px; background:#eab30820; color:#fde68a; border:1px solid #eab30840; }
.pdb-badge-parcial  { font-size:9px; padding:2px 6px; border-radius:8px; background:#3b82f620; color:#93c5fd; border:1px solid #3b82f640; }
.pdb-badge-vencido  { font-size:9px; padding:2px 6px; border-radius:8px; background:#ef444420; color:#fca5a5; border:1px solid #ef444440; }

/* Responsive */
@media (max-width:1100px){ .pdb-kpi-grid{grid-template-columns:repeat(3,1fr)} .pdb-g3{grid-template-columns:1fr 1fr} }
@media (max-width:800px) { .pdb-kpi-grid{grid-template-columns:repeat(2,1fr)} .pdb-g2,.pdb-g3{grid-template-columns:1fr} }
@media (max-width:700px) { .onboarding-steps{grid-template-columns:1fr} }

/* ── NAV SECTION LABEL ─────────────────────────────────────────────────────── */
.nav-section-label {
  font-size: .6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #3d4352;
  padding: .6rem 1.5rem .15rem;
  display: block;
  pointer-events: none;
}

/* ── USER AVATAR DROPDOWN ──────────────────────────────────────────────────── */
.user-menu-wrap {
  position: relative;
}
.user-pill {
  display: flex;
  align-items: center;
  gap: .45rem;
  background: #1c2128;
  border: 1px solid #30363d;
  border-radius: 20px;
  padding: .25rem .7rem .25rem .3rem;
  cursor: pointer;
  color: #ccc;
  font-size: .82rem;
  font-family: 'DM Sans', sans-serif;
  transition: .2s;
  white-space: nowrap;
}
.user-pill:hover {
  border-color: #555;
  color: #fff;
}
.user-avatar {
  width: 24px;
  height: 24px;
  background: #F97316;
  color: #fff;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .65rem;
  font-weight: 700;
  flex-shrink: 0;
}
.user-pill-chevron {
  font-size: .65rem;
  color: #555;
  margin-left: .1rem;
}
.user-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #161b22;
  border: 1px solid #30363d;
  border-radius: 10px;
  padding: .4rem 0;
  min-width: 190px;
  z-index: 1000;
  display: none;
  box-shadow: 0 8px 24px rgba(0,0,0,.55);
}
.user-dropdown.open {
  display: block;
}
.user-dropdown-header {
  padding: .55rem 1rem;
  border-bottom: 1px solid #30363d;
  margin-bottom: .25rem;
}
.user-dropdown-fullname {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  color: #ddd;
  margin-bottom: .35rem;
}
.user-dropdown-item {
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
  color: #888;
  padding: .45rem 1rem;
  font-size: .82rem;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
  transition: .15s;
}
.user-dropdown-item:hover {
  background: #1c2128;
  color: #fff;
}

/* ── BREADCRUMB ───────────────────────────────────────────────────────────── */
.breadcrumb {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  color: #555;
  margin-bottom: .75rem;
}
.bc-link {
  color: #888;
  cursor: pointer;
  transition: .15s;
}
.bc-link:hover { color: #F97316; }
.bc-sep { color: #333; }
.bc-current { color: #bbb; font-weight: 500; }

/* ── HOME DEADLINE WIDGET ─────────────────────────────────────────────────── */
.home-deadline-widget {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  margin-top: 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.home-deadline-widget h4 {
  font-family: 'Syne', sans-serif;
  font-size: .88rem;
  color: #334155;
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.deadline-row {
  display: flex;
  align-items: center;
  padding: .45rem 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: .8rem;
  gap: .6rem;
}
.deadline-row:last-child { border-bottom: none; }
.deadline-date {
  color: #F97316;
  font-weight: 700;
  font-size: .75rem;
  min-width: 65px;
}
.deadline-name { flex: 1; color: #475569; }
.home-stats-welcome {
  display: flex;
  align-items: baseline;
  gap: .75rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.home-stats-welcome h2 {
  font-family: 'Syne', sans-serif;
  font-size: 1.4rem;
  color: #0f172a;
  margin: 0;
}
.home-stats-welcome .home-date {
  font-size: .8rem;
  color: #94a3b8;
}

/* ── HAMBURGER & MOBILE NAV ──────────────────────────────────────────────── */
.hamburger-btn {
  display: none;
  background: transparent;
  border: none;
  color: #1e293b;
  font-size: 1.4rem;
  cursor: pointer;
  padding: .2rem .4rem;
  line-height: 1;
}

.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 149;
}

@media (max-width: 768px) {
  .hamburger-btn { display: block; }

  .sidenav {
    transform: translateX(-100%);
    transition: transform .25s ease;
    z-index: 150;
    width: 80vw;
    max-width: 300px;
  }

  .sidenav.nav-open {
    transform: translateX(0);
  }

  .nav-overlay.nav-open {
    display: block;
  }

  .main-content {
    margin-left: 0 !important;
    padding: 1rem !important;
  }
}

/* ── HOME PAGE REDESIGN ──────────────────────────────────────────────────── */
.home-page-header {
  margin-bottom: 1.5rem;
}
.home-breadcrumb-page {
  font-size: .75rem;
  color: #94a3b8;
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.badge-new {
  background: #F97316;
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  padding: .1rem .4rem;
  border-radius: 4px;
  letter-spacing: .05em;
  vertical-align: middle;
}
.home-welcome-row {
  display: flex;
  align-items: baseline;
  gap: .75rem;
  flex-wrap: wrap;
}
.home-welcome-row h2 {
  font-family: 'Syne', sans-serif;
  font-size: 1.4rem;
  color: #0f172a;
  margin: 0;
}
.home-subtitle {
  font-size: .82rem;
  color: #94a3b8;
  margin-top: .25rem;
}
.stat-label-top {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #94a3b8;
  margin-bottom: .35rem;
}
.stat-badge {
  display: inline-block;
  font-size: .65rem;
  font-weight: 700;
  padding: .15rem .55rem;
  border-radius: 20px;
  margin-top: .4rem;
  cursor: default;
}
.stat-badge-grey  { background: #f1f5f9; color: #64748b; }
.stat-badge-orange{ background: #fff7ed; color: #c2410c; }
.stat-badge-blue  { background: #eff6ff; color: #1d4ed8; }
.stat-badge-green { background: #f0fdf4; color: #166534; }
.stat-badge-red   { background: #fef2f2; color: #991b1b; }
/* Two-column widgets row */
.home-widgets-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (max-width: 700px) {
  .home-widgets-row { grid-template-columns: 1fr; }
}
.home-widget {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1rem 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
  min-height: 120px;
}
.home-widget h4 {
  font-family: 'Syne', sans-serif;
  font-size: .83rem;
  color: #334155;
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .75rem;
}
/* Nav hint / mejora section */
.home-nav-hint {
  margin-top: 1.25rem;
  border: 2px dashed #F97316;
  border-radius: 10px;
  padding: .9rem 1.1rem;
  font-size: .82rem;
  color: #7c3a01;
  background: #fff7ed;
}
.home-nav-hint strong {
  font-size: .8rem;
  color: #c2410c;
}
/* Security badge */
.home-security-badge {
  margin-top: 1.25rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  padding: .65rem 1rem;
  font-size: .78rem;
  color: #166534;
  text-align: center;
}

/* Bandeja de tareas home */
.home-tareas-list {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.tarea-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-left: 3px solid #e2e8f0;
  border-radius: 8px;
  padding: .6rem .9rem;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
  font-size: .82rem;
}
.tarea-item:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.tarea-item.urgente  { border-left-color: #ef4444; background: #fef2f2; }
.tarea-item.alerta   { border-left-color: #f97316; background: #fff7ed; }
.tarea-item.info     { border-left-color: #3b82f6; background: #eff6ff; }
.tarea-item.ok       { border-left-color: #16a34a; background: #f0fdf4; }
.tarea-icon { font-size: 1rem; flex-shrink: 0; }
.tarea-body { flex: 1; min-width: 0; }
.tarea-titulo { font-weight: 600; color: #1e293b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tarea-sub    { font-size: .72rem; color: #64748b; margin-top: 1px; }
.tarea-accion { font-size: .72rem; font-weight: 600; color: #f97316; white-space: nowrap; flex-shrink: 0; }

/* Onboarding step activo */
.step-box.ob-activo {
  border-color: #f97316 !important;
  box-shadow: 0 0 0 3px rgba(249,115,22,.15);
}
.step-box.ob-completo .step-num {
  background: #16a34a !important;
}
.step-box.ob-completo {
  opacity: .7;
}

/* Accesos rápidos home */
.home-accesos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .6rem;
  margin-top: 1rem;
}
.home-accesos-grid .home-acceso-item {
  display: flex !important;
  align-items: center !important;
  gap: .75rem !important;
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  padding: .75rem 1rem !important;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .15s;
  box-shadow: 0 1px 3px rgba(0,0,0,.06) !important;
}
.home-accesos-grid .home-acceso-item:hover {
  border-color: #f97316 !important;
  box-shadow: 0 4px 12px rgba(249,115,22,.12) !important;
  transform: translateY(-2px);
}
.home-acceso-icon {
  font-size: 1.4rem;
  flex-shrink: 0;
  line-height: 1;
}
.home-acceso-title {
  font-weight: 600;
  font-size: .82rem;
  color: #1e293b;
  display: block;
}
.home-acceso-sub {
  font-size: .72rem;
  color: #64748b;
  margin-top: 1px;
  display: block;
}
@media (max-width: 600px) {
  .home-accesos-grid { grid-template-columns: 1fr 1fr; }
}

/* --- ATO-BOT MODERN STYLE --- */
#ato-bot-container {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 10000;
    font-family: 'DM Sans', sans-serif;
}
#ato-bot-bubble {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
    border-radius: 50%;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(249, 115, 22, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
#ato-bot-bubble:hover { transform: scale(1.1) rotate(5deg); }
#ato-chat-window {
    width: 350px;
    height: 500px;
    background: #1a1d27;
    border: 1px solid #2d3148;
    border-radius: 20px;
    position: absolute;
    bottom: 80px;
    right: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.5);
    animation: slideUp 0.3s ease-out;
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}
.ato-chat-header {
    background: #242741;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #2d3148;
}
.ato-chat-header span { font-weight: 700; color: #fff; font-size: 14px; }
#ato-chat-messages {
    flex: 1;
    padding: 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.bot-msg, .user-msg {
    max-width: 80%;
    padding: 10px 14px;
    border-radius: 15px;
    font-size: 13px;
    line-height: 1.4;
}
.bot-msg { background: #2d3148; color: #e2e8f0; align-self: flex-start; border-bottom-left-radius: 2px; }
.user-msg { background: #f97316; color: white; align-self: flex-end; border-bottom-right-radius: 2px; }
.ato-chat-input {
    padding: 15px;
    background: #1a1d27;
    border-top: 1px solid #2d3148;
    display: flex;
    gap: 10px;
}
.ato-chat-input input {
    flex: 1;
    background: #0f1117;
    border: 1px solid #2d3148;
    border-radius: 10px;
    padding: 10px;
    color: white;
    font-size: 13px;
}
.ato-chat-input button {
    background: #f97316;
    border: none;
    color: white;
    padding: 0 15px;
    border-radius: 10px;
    cursor: pointer;
}
.wa-escalate { text-align: center; padding: 10px; font-size: 11px; color: #9ca3af; }
.wa-link { color: #25d366; text-decoration: none; font-weight: 700; }
@keyframes pulse-red {
    0%, 100% { box-shadow: 0 0 0 0 rgba(239,68,68,0.4); }
    50%       { box-shadow: 0 0 0 8px rgba(239,68,68,0); }
}

/* --- MEJORAS PRO ATÓMICA --- */
.footer-legal { text-align: center; padding: 20px; color: #64748b; font-size: 0.8rem; border-top: 1px solid #2d3148; margin-top: 20px; }
.footer-legal a { color: #f97316; text-decoration: none; margin: 0 10px; cursor: pointer; }
.modal-legal { max-width: 700px !important; text-align: left; }
.modal-legal h4 { color: #f97316; margin: 15px 0 5px; }
.stat-card-highlight { border: 1px solid #f97316 !important; background: rgba(249,115,22,0.05) !important; position: relative; overflow: hidden; }
.pulse-orange { animation: pulse-orange-shadow 2s infinite; }

                      /* --- REDISEÑO DE ALTO CONTRASTE Y PROFUNDIDAD --- */

/* 1. Fondo de la app mas grisaceo para que las tarjetas blancas "salten" */
.main-content {
      background-color: #f1f5f9 !important;
      padding: 18px !important;
}

/* 2. Tarjetas con bordes reales y sombras */
.stat-card, .info-card, .onboarding-card, .home-widget {
      background: #ffffff !important;
      border: 1px solid #cbd5e1 !important;
      border-radius: 12px !important;
      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stat-card:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1) !important;
}

/* 3. Textos mas oscuros (Legibilidad) */
.stat-label-top {
      color: #475569 !important;
      font-weight: 700 !important;
      text-transform: uppercase;
      letter-spacing: 0.5px;
      font-size: 0.75rem;
}

.stat-val {
      color: #0f172a !important;
      font-size: 1.5rem !important;
      font-weight: 800 !important;
      margin: 5px 0;
}

/* 4. Titulos de secciones */
h2, h3, h4 {
      color: #1e293b !important;
      font-family: 'Syne', sans-serif;
      font-weight: 700;
}

/* 5. Sidebar con mas presencia */
.sidenav {
      background-color: #ffffff !important;
      border-right: 2px solid #e2e8f0 !important;
}

.nav-item {
      color: #64748b !important;
      font-weight: 500;
      margin: 4px 10px;
      border-radius: 8px;
}

.nav-item.active {
      background-color: #fff7ed !important;
      color: #f97316 !important;
      border-left: 4px solid #f97316;
}

/* 6. Accion Recomendada destacada */
.stat-card-highlight {
      background: linear-gradient(to right, #fff7ed, #ffffff) !important;
      border: 2px solid #f97316 !important;
}

/* 7. Botones con mas punch */
.btn {
      font-weight: 700 !important;
      letter-spacing: 0.3px;
      box-shadow: 0 4px 6px -1px rgba(249, 115, 22, 0.3);
}

/* 8. Onboarding (Pasos 1, 2, 3) */
.step-box {
      border: 1px solid #e2e8f0;
      background: #f8fafc;
      border-radius: 10px;
      padding: 20px;
}

.step-num {
      background: #f97316 !important;
      color: white !important;
      width: 30px;
      height: 30px;
      font-weight: bold;
}
@keyframes pulse-orange-shadow { 0% { box-shadow: 0 0 0 0 rgba(249,115,22,0.4); } 70% { box-shadow: 0 0 0 10px rgba(249,115,22,0); } 100% { box-shadow: 0 0 0 0 rgba(249,115,22,0); } }

/* ── FIX MÁRGENES: páginas con layout fixed ─────────────────────────────── */
#page-financiero, #page-flujo, #page-estado, #page-monotributo, #page-parametros {
  position: fixed !important;
  top: 57px !important;
  left: 200px !important;
  right: 0px !important;
  bottom: 0px !important;
  width: auto !important;
  margin-left: 0px !important;
  padding: 15px !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
  background: #f8fafc !important;
  z-index: 50 !important;
}

body.menu-hidden #page-financiero,
body.menu-hidden #page-flujo,
body.menu-hidden #page-estado,
body.menu-hidden #page-monotributo,
body.menu-hidden #page-parametros {
  left: 0px !important;
}

@media (max-width: 768px) {
  #page-financiero, #page-flujo, #page-estado, #page-monotributo, #page-parametros {
    left: 0px !important;
    top: 57px !important;
    padding: 1rem !important;
  }
}
