/* ================================================================================================
   PLATFORM SHELL (#24E) — ENTIDAD 360 Y VISTAS COMPUESTAS
   Patrón único: cabecera → estado → métricas → acciones → documentos → línea de tiempo →
   relaciones → inteligencia → auditoría. El orden del DOM es el orden canónico (lectores de
   pantalla y teclado); la rejilla sólo decide la posición visual.
   ================================================================================================ */

.ps-e360 { display: flex; flex-direction: column; gap: var(--ps-space-6); min-width: 0; }
.ps-e360-section, .ps-e360-header { min-width: 0; }

.ps-e360-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "header actions"
    "status status"
    "metrics metrics";
  align-items: start;
  gap: var(--ps-space-3) var(--ps-space-6);
}
.ps-e360-hero > [data-e360-section="header"] { grid-area: header; min-width: 0; }
.ps-e360-hero > [data-e360-section="status"] { grid-area: status; }
.ps-e360-hero > [data-e360-section="metrics"] { grid-area: metrics; margin-top: var(--ps-space-3); }
.ps-e360-hero > [data-e360-section="actions"] { grid-area: actions; align-self: end; }

.ps-e360-eyebrow { display: flex; align-items: center; gap: var(--ps-space-2); }
.ps-e360-eyebrow .ps-code { letter-spacing: 0; text-transform: none; }
.ps-e360-eyebrow .ps-link { display: inline-flex; align-items: center; gap: 4px; }

.ps-e360-status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ps-space-2) var(--ps-space-3); }
.ps-e360-status-detail { color: var(--ps-fg-3); font-size: var(--ps-text-sm); }

.ps-e360-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  align-items: start;
  gap: var(--ps-space-5);
}
.ps-e360-main,
.ps-e360-aside { display: flex; flex-direction: column; gap: var(--ps-space-5); min-width: 0; }

/* --- Relaciones -------------------------------------------------------------------------------- */
.ps-relations { display: flex; flex-direction: column; padding: var(--ps-space-1) 0; }
.ps-relation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--ps-space-1) var(--ps-space-3);
  padding: var(--ps-space-2) var(--ps-space-5);
  transition: background var(--ps-duration-fast) var(--ps-ease);
}
.ps-relation:hover { background: var(--ps-bg-subtle); }
.ps-relation-type { color: var(--ps-fg-muted); font-size: var(--ps-text-2xs); font-weight: var(--ps-weight-medium); letter-spacing: var(--ps-tracking-wide); text-transform: uppercase; }
.ps-relation-label { overflow: hidden; color: var(--ps-fg); font-size: var(--ps-text-sm); font-weight: var(--ps-weight-medium); text-overflow: ellipsis; white-space: nowrap; }
.ps-relation-meta { color: var(--ps-fg-muted); font-size: var(--ps-text-xs); text-align: right; white-space: nowrap; }

/* --- Inteligencia explicable ------------------------------------------------------------------- */
.ps-signals { display: flex; flex-direction: column; }
.ps-signal { padding: var(--ps-space-4) var(--ps-space-5); border-bottom: 1px solid var(--ps-line-subtle); }
.ps-signal:last-child { border-bottom: 0; }
.ps-signal-head { display: flex; align-items: center; justify-content: space-between; gap: var(--ps-space-2); }
.ps-signal-kind {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ps-fg-3);
  font-size: var(--ps-text-2xs);
  font-weight: var(--ps-weight-medium);
  letter-spacing: var(--ps-tracking-wide);
  text-transform: uppercase;
}
.ps-signal[data-tone="warning"] .ps-signal-kind { color: var(--ps-warning-fg); }
.ps-signal[data-tone="danger"] .ps-signal-kind { color: var(--ps-danger-fg); }
.ps-signal[data-tone="success"] .ps-signal-kind { color: var(--ps-success-fg); }
.ps-signal-confidence { color: var(--ps-fg-muted); font-size: var(--ps-text-2xs); white-space: nowrap; }
.ps-signal-title { margin-top: var(--ps-space-1); color: var(--ps-fg); font-size: var(--ps-text-sm); font-weight: var(--ps-weight-medium); }
.ps-why { margin-top: var(--ps-space-2); }
.ps-why > summary {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--ps-fg-accent);
  font-size: var(--ps-text-xs);
  font-weight: var(--ps-weight-medium);
  cursor: pointer;
  list-style: none;
}
.ps-why > summary::-webkit-details-marker { display: none; }
.ps-why > summary .ps-icon { transition: transform var(--ps-duration-fast) var(--ps-ease); }
.ps-why[open] > summary .ps-icon { transform: rotate(90deg); }
.ps-factors { display: flex; flex-direction: column; gap: var(--ps-space-1); margin-top: var(--ps-space-2); padding-left: var(--ps-space-4); border-left: 2px solid var(--ps-line); }
.ps-factor { display: flex; justify-content: space-between; gap: var(--ps-space-3); color: var(--ps-fg-3); font-size: var(--ps-text-xs); }
.ps-factor .ps-mono { color: var(--ps-fg-2); white-space: nowrap; }
.ps-source { margin-top: var(--ps-space-2); color: var(--ps-fg-muted); font-size: var(--ps-text-2xs); }
.ps-signal-actions { display: flex; flex-wrap: wrap; gap: var(--ps-space-2); margin-top: var(--ps-space-3); }

/* --- Auditoría: siempre presente, plegada por omisión ----------------------------------------- */
.ps-audit > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ps-space-3);
  min-height: 52px;
  padding: var(--ps-space-3) var(--ps-space-5);
  cursor: pointer;
  list-style: none;
}
.ps-audit > summary::-webkit-details-marker { display: none; }
.ps-audit > summary .ps-icon { color: var(--ps-fg-muted); transition: transform var(--ps-duration-fast) var(--ps-ease); }
.ps-audit[open] > summary { border-bottom: 1px solid var(--ps-line-subtle); }
.ps-audit[open] > summary .ps-icon { transform: rotate(90deg); }
.ps-audit-list { display: flex; flex-direction: column; padding: var(--ps-space-2) 0; }
.ps-audit-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px var(--ps-space-3); padding: var(--ps-space-2) var(--ps-space-5); font-size: var(--ps-text-xs); }
.ps-audit-action { color: var(--ps-fg-2); }
.ps-audit-change { grid-column: 1 / -1; color: var(--ps-fg-muted); font-family: var(--ps-font-mono); font-size: var(--ps-text-2xs); overflow-wrap: anywhere; }
.ps-audit-when { color: var(--ps-fg-muted); font-family: var(--ps-font-mono); font-size: var(--ps-text-2xs); white-space: nowrap; }

/* --- Hoy ------------------------------------------------------------------------------------- */
.ps-today-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  align-items: start;
  gap: var(--ps-space-5);
}
.ps-today-col { display: flex; flex-direction: column; gap: var(--ps-space-5); min-width: 0; }
.ps-agenda-item { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: var(--ps-space-3); padding: var(--ps-space-3) var(--ps-space-5); border-bottom: 1px solid var(--ps-line-subtle); }
.ps-agenda-item:last-child { border-bottom: 0; }
.ps-agenda-time { color: var(--ps-fg-3); font-family: var(--ps-font-mono); font-size: var(--ps-text-xs); }
.ps-agenda-title { color: var(--ps-fg); font-size: var(--ps-text-sm); font-weight: var(--ps-weight-medium); }
.ps-agenda-meta { color: var(--ps-fg-muted); font-size: var(--ps-text-xs); }

/* --- Administración · marca y producto ------------------------------------------------------- */
.ps-brand-preview {
  display: flex;
  align-items: center;
  gap: var(--ps-space-3);
  padding: var(--ps-space-5);
  border-radius: var(--ps-radius-md);
  background: var(--ps-sidebar-bg);
  color: var(--ps-sidebar-fg);
}
.ps-settings-list { display: flex; flex-direction: column; }
.ps-setting { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--ps-space-4); padding: var(--ps-space-4) var(--ps-space-5); border-bottom: 1px solid var(--ps-line-subtle); }
.ps-setting:last-child { border-bottom: 0; }
.ps-setting-title { color: var(--ps-fg); font-size: var(--ps-text-sm); font-weight: var(--ps-weight-medium); }
.ps-setting-desc { color: var(--ps-fg-muted); font-size: var(--ps-text-xs); }

/* ============================================================================================== */
@media (max-width: 1279px) {
  .ps-e360-columns,
  .ps-today-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, 320px); }
}

@media (max-width: 1023px) {
  .ps-e360-columns,
  .ps-today-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 639px) {
  .ps-e360 { gap: var(--ps-space-5); }
  .ps-e360-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "header"
      "status"
      "metrics"
      "actions";
  }
  .ps-e360-hero > [data-e360-section="metrics"] { margin-top: var(--ps-space-1); }
  .ps-relation, .ps-signal, .ps-audit > summary, .ps-audit-item, .ps-agenda-item { padding-left: var(--ps-space-4); padding-right: var(--ps-space-4); }
  .ps-setting { grid-template-columns: minmax(0, 1fr); padding-left: var(--ps-space-4); padding-right: var(--ps-space-4); }
}
