/* ============================================================
   PYM360 · MODULE — Vault
   Capa 3 — específico de #pym-view-vault.
   Cambios aquí no afectan otros módulos.
   ============================================================ */

#pym-view-vault{
  padding:var(--pym-space-6) var(--pym-space-8);
  max-width:var(--pym-content-max-w);
  margin:0 auto;
}
@media (max-width:980px){#pym-view-vault{padding:var(--pym-space-4)}}

/* ============================================================
   PAGE HEADER + ACCIONES
   ============================================================ */
.vault-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--pym-space-4);
  margin-bottom:var(--pym-space-4);
  flex-wrap:wrap;
}
.vault-header-title h2{
  font-size:var(--pym-fs-2xl);
  font-weight:var(--pym-fw-semibold);
  letter-spacing:-.02em;
  color:var(--pym-color-text);
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
}
.vault-header-title h2 svg{width:20px;height:20px;color:var(--pym-color-accent-2)}
.vault-header-title p{
  font-size:var(--pym-fs-base);
  color:var(--pym-color-text-muted);
  margin-top:4px;
}
.vault-header-actions{display:flex;gap:var(--pym-space-2);flex-shrink:0;flex-wrap:wrap}

/* ============================================================
   STATS STRIP en card-h
   ============================================================ */
.vault-stats{
  display:flex;
  gap:var(--pym-space-6);
  padding:var(--pym-space-3) var(--pym-space-4);
  border-bottom:1px solid var(--pym-color-border);
  flex-wrap:wrap;
  align-items:center;
}
.vault-stat{display:flex;flex-direction:column;gap:2px;min-width:80px}
.vault-stat-lbl{
  font-size:var(--pym-fs-xs);
  color:var(--pym-color-text-muted);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:var(--pym-fw-medium);
}
.vault-stat-val{
  font-size:var(--pym-fs-xl);
  font-weight:var(--pym-fw-semibold);
  color:var(--pym-color-text);
  line-height:1;
  font-feature-settings:"tnum";
  font-family:var(--pym-font-sans);
}
.vault-stat-tipos{flex:1}
.vault-stat-tipos-list{
  display:flex;
  gap:var(--pym-space-3);
  flex-wrap:wrap;
  font-size:var(--pym-fs-sm);
  color:var(--pym-color-text-muted);
}
.vault-stat-tipos-list b{color:var(--pym-color-text);font-weight:var(--pym-fw-semibold)}

/* ============================================================
   FILTERS BAR
   ============================================================ */
.vault-filters{
  padding:var(--pym-space-3) var(--pym-space-4);
  border-bottom:1px solid var(--pym-color-border);
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr 1fr auto auto;
  gap:var(--pym-space-2);
  align-items:end;
}
@media (max-width:1100px){.vault-filters{grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--pym-space-2)}}
@media (max-width:700px){.vault-filters{grid-template-columns:1fr 1fr}}
.vault-filters .pym-field{gap:3px}
.vault-filters .pym-field-lbl{font-size:var(--pym-fs-xs);font-weight:var(--pym-fw-medium)}

/* ============================================================
   DOC TITLE en celda (flag de contabilizado, filename original)
   ============================================================ */
.vault-doc-title{font-weight:var(--pym-fw-medium);color:var(--pym-color-text);font-size:var(--pym-fs-md)}
.vault-doc-filename{font-size:var(--pym-fs-xs);color:var(--pym-color-text-muted);margin-top:2px;font-family:var(--pym-font-mono)}
.vault-doc-asiento{
  display:inline-flex;
  align-items:center;
  gap:3px;
  background:var(--pym-color-success-dim);
  color:var(--pym-color-success);
  padding:1px 6px;
  border-radius:var(--pym-radius-xs);
  font-size:var(--pym-fs-xs);
  margin-left:5px;
  font-weight:var(--pym-fw-semibold);
}

/* Tags en celda */
.vault-tag-chip{
  display:inline-block;
  background:var(--pym-color-accent-dim);
  color:var(--pym-color-accent-2);
  padding:1px 7px;
  border-radius:var(--pym-radius-xs);
  margin-right:3px;
  margin-bottom:2px;
  font-size:var(--pym-fs-xs);
  font-weight:var(--pym-fw-medium);
}

/* Vencimiento badges */
.vault-venc{
  display:inline-block;
  font-size:var(--pym-fs-xs);
  padding:1px 6px;
  border-radius:var(--pym-radius-xs);
  font-family:var(--pym-font-mono);
  font-weight:var(--pym-fw-medium);
  margin-top:2px;
}
.vault-venc--vencido{background:var(--pym-color-danger-dim);color:var(--pym-color-danger)}
.vault-venc--soon{background:var(--pym-color-warning-dim);color:var(--pym-color-warning)}
.vault-venc--ok{background:var(--pym-color-success-dim);color:var(--pym-color-success)}

/* N° documento sub */
.vault-numdoc{
  font-size:var(--pym-fs-xs);
  color:var(--pym-color-text-muted);
  font-family:var(--pym-font-mono);
  margin-top:2px;
}

/* ============================================================
   EMPTY STATE
   ============================================================ */
.vault-empty{
  padding:var(--pym-space-10);
  text-align:center;
  color:var(--pym-color-text-muted);
  font-size:var(--pym-fs-md);
}
.vault-empty b{color:var(--pym-color-text)}

.vault-loading{
  padding:var(--pym-space-5);
  text-align:center;
  color:var(--pym-color-text-muted);
  font-size:var(--pym-fs-base);
}

.vault-error{
  padding:var(--pym-space-4);
  color:var(--pym-color-danger);
  font-size:var(--pym-fs-base);
  background:var(--pym-color-danger-dim);
  border-radius:var(--pym-radius-md);
  margin:var(--pym-space-3);
}

/* ============================================================
   UPLOAD MODAL FORM (override de spacing en .pym-modal)
   ============================================================ */
.vault-upload-form{display:flex;flex-direction:column;gap:var(--pym-space-3)}
.vault-upload-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--pym-space-2)}
.vault-upload-grid-2-1{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--pym-space-2)}
@media (max-width:600px){.vault-upload-grid-3,.vault-upload-grid-2-1{grid-template-columns:1fr}}

/* ============================================================
   CRONOLOGIA — matriz proveedor × mes (capa 3 propio)
   ============================================================ */
.vault-cron{display:flex;flex-direction:column;gap:var(--pym-space-3)}
.vault-cron-stats{
  display:flex;
  gap:var(--pym-space-5);
  padding:var(--pym-space-3) var(--pym-space-4);
  background:var(--pym-color-surface-2);
  border-radius:var(--pym-radius-md);
  flex-wrap:wrap;
  font-size:var(--pym-fs-sm);
  color:var(--pym-color-text-muted);
}
.vault-cron-stats b{color:var(--pym-color-text);font-weight:var(--pym-fw-semibold)}

.vault-cron-grid{
  overflow-x:auto;
  background:var(--pym-color-surface);
  border:1px solid var(--pym-color-border);
  border-radius:var(--pym-radius-lg);
}
.vault-cron-grid table{border-collapse:collapse;width:100%;font-size:var(--pym-fs-sm)}
.vault-cron-grid th{
  font-size:var(--pym-fs-xs);
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--pym-color-text-muted);
  font-weight:var(--pym-fw-semibold);
  padding:8px 10px;
  border-bottom:1px solid var(--pym-color-border);
  text-align:center;
  white-space:nowrap;
  background:var(--pym-color-bg);
  position:sticky;
  top:0;
}
.vault-cron-grid th:first-child{text-align:left;position:sticky;left:0;z-index:2;background:var(--pym-color-bg)}
.vault-cron-grid td{
  padding:6px 8px;
  border-bottom:1px solid var(--pym-color-border);
  text-align:center;
  vertical-align:middle;
  min-width:50px;
}
.vault-cron-grid td:first-child{
  text-align:left;
  font-weight:var(--pym-fw-medium);
  color:var(--pym-color-text);
  position:sticky;
  left:0;
  background:var(--pym-color-surface);
  z-index:1;
}

/* Celdas según estado */
.vault-cron-cell{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;height:32px;
  border-radius:var(--pym-radius-sm);
  font-size:var(--pym-fs-base);
  cursor:pointer;
  transition:transform var(--pym-trans-fast);
}
.vault-cron-cell:hover{transform:scale(1.1)}
.vault-cron-cell--ok{background:var(--pym-color-success-dim);color:var(--pym-color-success)}
.vault-cron-cell--pending{background:var(--pym-color-warning-dim);color:var(--pym-color-warning)}
.vault-cron-cell--gap{background:var(--pym-color-danger-dim);color:var(--pym-color-danger)}
.vault-cron-cell--empty{color:var(--pym-color-text-subtle)}

/* ============================================================
   DETAIL MODAL — secciones
   ============================================================ */
.vault-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--pym-space-3);margin-bottom:var(--pym-space-3)}
@media (max-width:700px){.vault-detail-grid{grid-template-columns:1fr}}

.vault-detail-row{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:var(--pym-space-2);
  padding:6px 0;
  border-bottom:1px solid var(--pym-color-border);
  font-size:var(--pym-fs-base);
}
.vault-detail-row:last-child{border-bottom:none}
.vault-detail-row dt{
  color:var(--pym-color-text-muted);
  font-size:var(--pym-fs-sm);
  font-weight:var(--pym-fw-medium);
}
.vault-detail-row dd{color:var(--pym-color-text);margin:0}

.vault-detail-section-title{
  font-size:var(--pym-fs-md);
  font-weight:var(--pym-fw-semibold);
  color:var(--pym-color-text);
  margin-top:var(--pym-space-4);
  margin-bottom:var(--pym-space-2);
  padding-bottom:var(--pym-space-1);
  border-bottom:1px solid var(--pym-color-border);
}

/* ============================================================
   MAINTENANCE DROPDOWN MENU
   ============================================================ */
.vault-maint-menu{
  position:absolute;
  background:var(--pym-color-surface);
  border:1px solid var(--pym-color-border-strong);
  border-radius:var(--pym-radius-md);
  box-shadow:var(--pym-shadow-lg);
  padding:var(--pym-space-1);
  min-width:240px;
  z-index:var(--pym-z-overlay);
}
.vault-maint-item{
  display:flex;
  align-items:center;
  gap:var(--pym-space-2);
  padding:8px 10px;
  border-radius:var(--pym-radius-sm);
  cursor:pointer;
  font-size:var(--pym-fs-base);
  color:var(--pym-color-text-dim);
  transition:background var(--pym-trans-fast);
}
.vault-maint-item:hover{background:var(--pym-color-surface-2);color:var(--pym-color-text)}
.vault-maint-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center}
