/* ==========================================================================
   ANALISTA — maquetación propia. Colores, tamaños y bordes salen de los tokens
   de design-system.css (ver DESIGN_SYSTEM.md); aquí solo hay disposición.
   ========================================================================== */

.viewport-canvas:has(#tab-seguimiento-analyst.active) { padding: 0; }
#analyst-root { font-size: var(--fs-body); line-height: 1.5; max-width: 1480px; margin: 0 auto; padding: var(--sp-4) var(--sp-5) var(--sp-6); min-height: calc(100vh - 100px); }
#analyst-root ::selection { background: var(--spot-blue-bg); color: var(--text-primary); }

/* --- Barra superior (fija) --------------------------------------------------------------------------------------------- */
.an-bar { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); margin: 0 calc(var(--sp-5) * -1) var(--sp-5); padding: var(--sp-3) var(--sp-5); background: color-mix(in srgb, var(--canvas-bg) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.an-brand { font-family: var(--font-serif); font-size: var(--fs-title); letter-spacing: -0.02em; margin-right: var(--sp-2); }
.an-patient { flex: 1 1 320px; max-width: 480px; }
.an-patient .ds-input { background: var(--surface-base); }
.an-kbd { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); pointer-events: none; }
kbd.an-key { display: inline-block; min-width: 20px; padding: 1px 5px; font-family: var(--font-mono); font-size: var(--fs-meta); line-height: 1.5; text-align: center; color: var(--text-secondary); background: var(--canvas-bg); border: 1px solid var(--line-strong); border-radius: var(--radius-xs); }
.an-count { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
#an-attention[data-tone="danger"] { color: var(--spot-red-text); border-color: var(--spot-red-border); background: var(--spot-red-bg); }

/* --- Inicio sin paciente ---------------------------------------------------------------------------------------------- */
.an-home { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr); gap: var(--sp-5); align-items: start; }
.an-home-title { font-family: var(--font-serif); font-size: var(--fs-display); font-weight: 400; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }
.an-home-lead { max-width: 56ch; margin: var(--sp-2) 0 var(--sp-5); color: var(--text-secondary); line-height: 1.6; }
.an-queue { display: flex; flex-direction: column; }
.an-queue-item { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--sp-3); width: 100%; padding: var(--sp-3) var(--sp-2); font: inherit; text-align: left; color: var(--text-primary); background: none; border: 0; border-bottom: 1px solid var(--line); cursor: pointer; transition: var(--transition-fast); }
.an-queue-item:hover { background: var(--wash); }
.an-queue-item:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-xs); }
.an-queue-item:active { transform: scale(0.995); }
.an-side-note { padding: var(--sp-4); }
.an-side-note h3 { font-size: var(--fs-body); font-weight: 500; margin-bottom: var(--sp-3); }
.an-keys { display: grid; grid-template-columns: max-content 1fr; gap: var(--sp-2) var(--sp-3); align-items: center; margin: 0; color: var(--text-secondary); }

/* --- Expediente ---------------------------------------------------------------------------------------------------------- */
.an-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--sp-5); align-items: start; }
.an-workspace[data-sidebar="closed"] { grid-template-columns: minmax(0, 1fr); }
.an-workspace[data-sidebar="closed"] .an-sidebar { display: none; }
.an-main { min-width: 0; font-size: var(--fs-body); }
.an-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--sp-4); align-items: start; padding-bottom: var(--sp-3); }
.an-ident { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.an-name { font-family: var(--font-serif); font-size: var(--fs-display); font-weight: 400; letter-spacing: -0.03em; line-height: 1.1; text-wrap: balance; }
.an-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--sp-2); }
/* Resumen del plan en una sola línea */
.an-strip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-5); margin: 0 0 var(--sp-3); padding: var(--sp-2) var(--sp-4); background: var(--surface-base); border: 1px solid var(--line); border-radius: var(--radius-md); }
.an-strip-item { display: inline-flex; align-items: center; gap: var(--sp-2); min-width: 0; font-size: var(--fs-body); font-variant-numeric: tabular-nums; }
.an-strip-item strong { font-weight: 500; }
.an-strip-label { font-size: var(--fs-meta); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; }
.an-meter--inline { width: 64px; margin-top: 0; }
.an-meter { height: 3px; margin-top: var(--sp-1); background: var(--line); border-radius: 2px; overflow: hidden; }
.an-meter > span { display: block; height: 100%; background: var(--text-primary); transform-origin: left; }
.an-meter[data-tone="warn"] > span { background: var(--spot-sand-text); }
.an-meter[data-tone="danger"] > span { background: var(--spot-red-text); }

/* Avisos del paciente: cada uno lleva a la pestaña donde se resuelve */
.an-alerts { display: flex; flex-direction: column; margin: 0 0 var(--sp-3); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-base); overflow: hidden; }
.an-alert-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3); border-bottom: 1px solid var(--line-soft); }
.an-alert-row:last-child { border-bottom: 0; }
.an-alert-row > span:nth-child(2) { min-width: 0; }

/* Pestañas (fijas bajo la barra) */
.an-tabsbar { position: sticky; top: 61px; z-index: 10; display: flex; align-items: flex-end; gap: var(--sp-3); margin: 0 0 var(--sp-4); background: var(--canvas-bg); border-bottom: 1px solid var(--line); }
.an-tabsbar .ds-tabs { flex: 1 1 auto; margin: 0; border-bottom: 0; }
.an-tabsbar .ds-tab[aria-selected="true"] { border-bottom-color: var(--text-primary); font-weight: 500; }
.an-tabsbar > .ds-btn { margin-bottom: var(--sp-1); }
.an-tabsbar > .ds-btn[aria-pressed="true"] { background: var(--wash-2); }

.an-pane { padding: var(--sp-5) var(--sp-6); min-height: 360px; }
.an-pane-head { margin-bottom: var(--sp-4); }
.an-pane-title { font-family: var(--font-serif); font-size: var(--fs-title); font-weight: 400; letter-spacing: -0.02em; line-height: 1.2; }
.an-skeleton { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-5); }
.an-skel-h { height: 56px; }
.an-skel-w { width: 60%; }
.an-skel-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); }
.an-skel-facts .ds-skeleton { height: 64px; }

/* --- Panel de trabajo: notas siempre a mano, sin caja ------------------------------------------------------------------- */
.an-sidebar { position: sticky; top: 77px; display: flex; flex-direction: column; gap: var(--sp-5); max-height: calc(100vh - 93px); overflow-y: auto; padding: 0 var(--sp-2) var(--sp-5) var(--sp-5); border-left: 1px solid var(--line); font-size: var(--fs-body); }
.an-side-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sp-2); }
.an-side-sec { display: flex; flex-direction: column; gap: var(--sp-2); }
.an-snippet { display: flex; flex-direction: column; gap: 2px; padding: var(--sp-2) var(--sp-3); font: inherit; font-size: var(--fs-body); color: var(--text-primary); text-align: left; background: var(--surface-base); border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; transition: var(--transition-fast); }
.an-snippet:hover { background: var(--surface-card-hover); border-color: var(--line-strong); }
.an-snippet:active { transform: scale(0.99); }
.an-snippet:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.an-attn-row { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3); }
.an-snip-new { padding-top: var(--sp-3); border-top: 1px solid var(--line); }
.an-snip-row { display: grid; grid-template-columns: 1fr auto; gap: var(--sp-2); padding: var(--sp-3); }
.an-ai-ex { grid-template-columns: auto 1fr auto; align-items: center; }
.an-cat-thumb { width: 56px; height: 56px; object-fit: cover; border-radius: var(--r-2, 6px); }
.an-snip-row textarea { grid-column: 1; }

/* Aparición suave al cambiar de paciente o de pestaña */
@media (prefers-reduced-motion: no-preference) {
  .an-rise > * { animation: an-rise 0.42s cubic-bezier(0.16, 1, 0.3, 1) both; }
  .an-rise > *:nth-child(2) { animation-delay: 40ms; }
  .an-rise > *:nth-child(3) { animation-delay: 80ms; }
  .an-rise > *:nth-child(4) { animation-delay: 120ms; }
  .an-rise > *:nth-child(5) { animation-delay: 160ms; }
  .an-rise > *:nth-child(n+6) { animation-delay: 200ms; }
  .an-meter > span { animation: an-grow 0.7s cubic-bezier(0.16, 1, 0.3, 1) both; }
}
@keyframes an-rise { from { opacity: 0; transform: translateY(8px); } }
@keyframes an-grow { from { transform: scaleX(0); } }

.an-block { display: flex; flex-direction: column; gap: var(--sp-3); margin-bottom: var(--sp-5); }
.an-block-head { gap: var(--sp-3); flex-wrap: wrap; }
.an-block-title { font-size: var(--fs-body); font-weight: 500; color: var(--text-primary); }
.an-form-row { display: grid; grid-template-columns: minmax(200px, 2fr) repeat(3, minmax(130px, 1fr)) auto; gap: var(--sp-3); align-items: end; }
.an-plan-name { font-family: var(--font-serif); font-size: var(--fs-title); font-weight: 400; letter-spacing: -0.02em; }
.an-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--sp-4); margin: 0; }
.an-review { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0; border-top: 1px solid var(--line-soft); }

.an-form-section > summary { text-transform: none; letter-spacing: 0; font-size: var(--fs-body); font-weight: 500; color: var(--text-primary); }
.an-form-section { margin: 0; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-base); }
.an-form-section > summary { padding: var(--sp-3) var(--sp-4); font-size: var(--fs-body); color: var(--text-primary); }
.an-form-body { padding: 0 var(--sp-4) var(--sp-4); }
.an-wide { max-width: 100%; }
.an-compare th, .an-compare td, .an-week th, .an-week td { padding: 8px var(--sp-3); vertical-align: top; }
.an-q { min-width: 200px; max-width: 280px; font-weight: 500; text-transform: none; letter-spacing: 0; font-size: var(--fs-body); color: var(--text-primary); background: var(--surface-base); position: sticky; left: 0; }
.an-compare thead th:first-child, .an-week thead tr:last-child th:first-child { position: sticky; left: 0; z-index: 2; background: var(--surface-base); }
.an-week th[scope="row"] { position: sticky; left: 0; background: var(--surface-base); z-index: 1; }
.an-editable { cursor: cell; min-width: 120px; }
.an-editable:hover { background: var(--wash-2); }
.an-edit { display: flex; flex-direction: column; gap: var(--sp-2); min-width: 220px; }
.an-scroll { max-height: 96px; overflow-y: auto; }
.an-small { font-size: var(--fs-meta); }
.an-monitor { max-height: 70vh; overflow: auto; }
.an-month { font-size: var(--fs-body); color: var(--text-primary); background: var(--surface-elevated); }
.an-week th[scope="row"] { min-width: 120px; text-transform: none; letter-spacing: 0; font-size: var(--fs-body); color: var(--text-secondary); font-weight: 500; }
.an-week td { min-width: 76px; text-align: center; }
.an-avg { font-family: var(--font-mono); background: var(--wash); font-weight: 500; }
.an-gap td { padding: 4px; border: 0; }
.an-day td { background: var(--surface-elevated); font-weight: 500; }
.an-grid-tools { margin-bottom: var(--sp-2); }

.an-thread { overflow: hidden; }
.an-thread-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--line); }
.an-messages { display: flex; flex-direction: column; gap: var(--sp-3); max-height: 460px; overflow-y: auto; padding: var(--sp-4); }
.an-msg { max-width: 82%; padding: var(--sp-3); background: var(--surface-card); border: 1px solid var(--line); border-radius: var(--radius-md); align-self: flex-start; }
.an-msg[data-agent="true"] { align-self: flex-end; background: var(--spot-blue-bg); border-color: var(--spot-blue-border); }
.an-msg-meta { display: flex; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-1); }
.an-msg-text { overflow-wrap: anywhere; line-height: 1.55; }
.an-files { flex-wrap: wrap; margin-top: var(--sp-2); }
.an-files .ds-btn { max-width: 220px; }
.an-thread-foot { flex-wrap: wrap; padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--line); }

.an-defaults { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--sp-2); }
.an-metrics-tools { flex-wrap: wrap; margin-bottom: var(--sp-3); }
.an-metric-add { min-width: 220px; }
.an-chips { flex-wrap: wrap; margin-bottom: var(--sp-4); }
.an-chip-x { width: 20px; height: 20px; }
.an-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: var(--sp-4); }
.an-chart-card { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-4); }

.an-gear { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--sp-3); }
.an-gear-card { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-4); }
.an-gear-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
.an-gear-list li { display: flex; gap: var(--sp-2); align-items: flex-start; }
.an-gear-list .ds-icon { color: var(--spot-green-text); margin-top: 2px; }
.an-gear-list .ds-hint { display: block; }

.an-photo-group { padding: var(--sp-4); }
.an-canvas { position: relative; height: 72vh; overflow: auto; background: var(--surface-card); border: 1px solid var(--line-soft); border-radius: var(--radius-sm); }
.an-workspace-canvas { position: relative; width: 3200px; height: 1600px; }
.an-photo-win { position: absolute; display: flex; flex-direction: column; min-width: 160px; min-height: 200px; overflow: hidden; resize: both; background: var(--surface-base); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.an-photo-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); padding: 4px var(--sp-2); font-size: var(--fs-meta); cursor: move; background: var(--surface-elevated); border-bottom: 1px solid var(--line); touch-action: none; }
.an-photo-body { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; cursor: grab; touch-action: none; }
.an-photo-body img { max-width: 100%; max-height: 100%; object-fit: contain; transform-origin: center; user-select: none; }
.an-photo-body iframe { width: 100%; height: 100%; border: 0; }

@media (max-width: 1100px) {
  .an-workspace { grid-template-columns: minmax(0, 1fr); }
  .an-sidebar { position: static; max-height: none; padding: var(--sp-4) 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .an-tabsbar, .an-bar { position: static; }
  .an-home, .an-head { grid-template-columns: minmax(0, 1fr); }
  .an-actions { justify-content: flex-start; }
  .an-form-row { grid-template-columns: 1fr 1fr; }
  .an-charts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .an-msg { max-width: 100%; }
  .an-pane { padding: var(--sp-4) var(--sp-3); }
  #analyst-root { padding: var(--sp-3); }
  .an-bar { margin: 0 calc(var(--sp-3) * -1) var(--sp-4); padding: var(--sp-3); }
}

/* --- Entrenamiento --------------------------------------------------------------------------------------------------- */
.an-tr { display: flex; flex-direction: column; gap: var(--sp-4); }
.an-tr-title { max-width: 460px; font-weight: 500; }
.an-tr-context { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(240px, 1.4fr) minmax(220px, 1.2fr); gap: var(--sp-3); }
.an-tr-gear { flex-wrap: wrap; min-height: var(--control-h); }
.an-tr-weeks, .an-tr-days { flex-wrap: wrap; }
.an-tr-daytabs { flex: 1 1 auto; margin: 0; }
.an-tr-day { padding: var(--sp-4); }
.an-tr-grid { display: grid; grid-template-columns: 24px 40px minmax(180px, 2fr) 56px 80px 64px 54px 62px 62px minmax(140px, 1.5fr) 132px; gap: var(--sp-2); align-items: center; }
.an-tr-head { padding: 6px var(--sp-2); font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary); border-bottom: 1px solid var(--line); }
.an-tr-row { padding: var(--sp-2); border-bottom: 1px solid var(--line-soft); border-left: 3px solid transparent; }
.an-tr-row:hover { background: var(--wash); }
.an-tr-row[data-ss="A"] { border-left-color: var(--spot-rose-text); }
.an-tr-row[data-ss="B"] { border-left-color: var(--spot-green-text); }
.an-tr-row[data-ss="C"] { border-left-color: var(--spot-blue-text); }
.an-tr-row[data-protocol] { border-left-color: var(--spot-sand-text); background: var(--spot-sand-bg); }
.an-tr-row.is-dragging { opacity: 0.45; border-style: dashed; }
.an-tr-span { grid-column: span 7; }
.an-tr-handle { cursor: grab; color: var(--text-muted); display: flex; }
.an-tr-img, .an-tr-thumb { width: 40px; height: 36px; object-fit: cover; border: 1px solid var(--line); border-radius: var(--radius-xs); background: var(--surface-card); display: flex; align-items: center; justify-content: center; color: var(--text-secondary); }
.an-tr-in { min-height: var(--control-h-sm); padding: 2px 6px; font-size: var(--fs-meta); }
.an-tr-in.is-center { text-align: center; }
.an-tr-ss { width: auto; min-height: 22px; padding: 0 4px; font-size: var(--fs-meta); }
.an-cat-filters { display: grid; grid-template-columns: minmax(220px, 2fr) 1fr 1fr; gap: var(--sp-2); }
.an-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--sp-3); max-height: 52vh; overflow-y: auto; padding-right: var(--sp-1); }
.an-cat-card { display: flex; flex-direction: column; gap: var(--sp-2); padding: var(--sp-2); }
.an-cat-img { display: flex; align-items: center; justify-content: center; height: 130px; padding: 0; background: var(--surface-card); border: 0; border-radius: var(--radius-xs); cursor: pointer; }
.an-cat-img img { max-width: 100%; max-height: 124px; object-fit: contain; }
.an-cat-detail { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.3fr); gap: var(--sp-4); }
.an-cat-steps { margin: 0; padding-left: 1.25em; display: flex; flex-direction: column; gap: var(--sp-2); }
@media (max-width: 1100px) {
  .an-tr-context, .an-cat-filters, .an-cat-detail { grid-template-columns: minmax(0, 1fr); }
  .an-tr-day { overflow-x: auto; }
  .an-tr-grid { min-width: 940px; }
}

/* --- Calendario global ------------------------------------------------------------------------------------------------- */
.an-tr-gear { max-height: 92px; overflow-y: auto; align-items: flex-start; }
.an-cal-head { flex-wrap: wrap; margin-bottom: var(--sp-3); }
.an-cal-title { min-width: 180px; text-align: center; }
.an-cal-dow { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary); }
.an-cal-dow span { padding: var(--sp-2); }
.an-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.an-cal-cell { display: flex; flex-direction: column; gap: 3px; min-height: 104px; padding: 4px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.an-cal-cell.is-out { opacity: 0.45; }
.an-cal-cell.is-today { background: var(--spot-blue-bg); }
.an-cal-num { font-size: var(--fs-meta); color: var(--text-secondary); padding-left: 4px; }
.an-cal-add { width: 20px; height: 20px; opacity: 0; }
.an-cal-cell:hover .an-cal-add, .an-cal-add:focus-visible { opacity: 1; }
.an-cal-event { display: block; width: 100%; padding: 2px 6px; overflow: hidden; font: inherit; font-size: var(--fs-meta); color: var(--text-primary); text-align: left; text-overflow: ellipsis; white-space: nowrap; background: var(--surface-card); border: 1px solid var(--line); border-left: 3px solid var(--text-muted); border-radius: var(--radius-xs); cursor: pointer; }
.an-cal-event--wide { padding: var(--sp-2) var(--sp-3); font-size: var(--fs-body); white-space: normal; }
.an-cal-event[data-tone="ok"] { border-left-color: var(--spot-green-text); }
.an-cal-event[data-tone="info"] { border-left-color: var(--spot-blue-text); }
.an-cal-event[data-tone="warn"] { border-left-color: var(--spot-sand-text); }
.an-cal-event[data-tone="danger"] { border-left-color: var(--spot-red-text); }
.an-cal-event[style*="--note"] { border-left-color: var(--note); }
.an-cal-event[data-done="true"] { text-decoration: line-through; opacity: 0.6; }
.an-cal-more { font-size: var(--fs-meta); padding-left: 4px; }
.an-cal-form { grid-template-columns: 1fr 1fr; }
.an-cal-swatch { position: relative; display: inline-flex; cursor: pointer; }
.an-cal-swatch input { position: absolute; opacity: 0; }
.an-cal-swatch span:nth-of-type(1) { width: 24px; height: 24px; border: 2px solid transparent; border-radius: 50%; }
.an-cal-swatch input:checked + span { border-color: var(--text-primary); }
.an-cal-swatch input:focus-visible + span { box-shadow: var(--focus-ring); }
.an-sidebar, .an-messages, .an-canvas, .an-cat-grid, .an-monitor, .an-scroll, .an-tr-gear, .an-tr-day { scrollbar-width: thin; scrollbar-color: var(--thumb) transparent; }

/* --- Dashboard de seguimiento ------------------------------------------------------------------------------------------ */
#seguimiento-dashboard-root { max-width: 1480px; margin: 0 auto; font-size: var(--fs-body); }
.sd-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--sp-4); align-items: start; }
.sd-queue, .sd-activity { max-height: 68vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--thumb) transparent; }
.sd-activity { padding: 0 var(--sp-4) var(--sp-3); }
.sd-row { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 1.6fr) auto; align-items: center; gap: var(--sp-3); width: 100%; padding: var(--sp-3) var(--sp-4); font: inherit; text-align: left; color: var(--text-primary); background: none; border: 0; border-bottom: 1px solid var(--line-soft); cursor: pointer; transition: var(--transition-fast); }
.sd-row:hover { background: var(--wash); }
.sd-row:focus-visible { outline: none; box-shadow: inset var(--focus-ring); }
.sd-row .ds-icon { color: var(--text-muted); }
.sd-items { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
.sd-item { display: flex; align-items: center; gap: var(--sp-2); min-width: 0; }
@media (max-width: 1100px) { .sd-grid { grid-template-columns: minmax(0, 1fr); } .sd-row { grid-template-columns: minmax(0, 1fr) auto; } .sd-items { grid-column: 1; } }

/* --- Configuración --------------------------------------------------------------------------------------------------------- */
#config-root { max-width: 1180px; margin: 0 auto; padding-bottom: 88px; font-size: var(--fs-body); }
.cfg-banner { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-4); padding: var(--sp-3) var(--sp-4); border: 1px solid var(--spot-sand-border); border-radius: var(--radius-md); background: var(--spot-sand-bg); color: var(--spot-sand-text); }
.cfg-pane { display: flex; flex-direction: column; gap: var(--sp-4); }
.cfg-intro { max-width: 70ch; }
.cfg-group { display: flex; flex-direction: column; gap: var(--sp-4); padding: var(--sp-5); }
.cfg-fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--sp-4) var(--sp-5); align-items: start; }
.cfg-wide { grid-column: 1 / -1; }
.cfg-ids { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); }
.cfg-chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0; padding: 0; list-style: none; }
.cfg-chip { display: inline-flex; align-items: center; gap: var(--sp-1); max-width: 320px; padding: 2px 4px 2px var(--sp-3); background: var(--surface-card); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.cfg-chip-x { width: 22px; height: 22px; }
.cfg-savebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; align-items: center; gap: var(--sp-3); max-width: 1180px; margin: 0 auto var(--sp-4); padding: var(--sp-3) var(--sp-4); background: var(--surface-elevated); border: 1px solid var(--line-strong); border-radius: var(--radius-md); box-shadow: var(--pop-shadow); }
.cfg-split { display: grid; grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: var(--sp-4); align-items: start; }
.cfg-tpl-list { position: sticky; top: var(--sp-3); max-height: 76vh; overflow-y: auto; padding: var(--sp-2); scrollbar-width: thin; scrollbar-color: var(--thumb) transparent; }
.cfg-tpl-group { padding: var(--sp-3) var(--sp-2) var(--sp-1); }
.cfg-tpl { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); width: 100%; padding: var(--sp-2) var(--sp-3); font: inherit; text-align: left; color: var(--text-secondary); background: none; border: 0; border-radius: var(--radius-sm); cursor: pointer; transition: var(--transition-fast); }
.cfg-tpl:hover { background: var(--wash); color: var(--text-primary); }
.cfg-tpl.is-active { background: var(--wash-2); color: var(--text-primary); font-weight: 500; }
.cfg-tpl:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.cfg-time { width: 112px; }
@media (max-width: 900px) { .cfg-split { grid-template-columns: minmax(0, 1fr); } .cfg-tpl-list { position: static; max-height: 32vh; } }

/* --- Solicitudes ------------------------------------------------------------------------------------------------------------ */
#sol-dashboard-root, #sol-segments-root, #sol-stats-root { max-width: 1480px; margin: 0 auto; font-size: var(--fs-body); }
.sl-funnel { margin-bottom: var(--sp-4); padding-bottom: var(--sp-3); }
.sl-bar-row { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr) 84px; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-4); }
.sl-bar-name { color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sl-bar-val { text-align: right; }
.sl-bar { height: 8px; background: var(--line); border-radius: 4px; overflow: hidden; }
.sl-bar > span { display: block; height: 100%; background: var(--text-muted); border-radius: 4px; transform-origin: left; }
.sl-bar[data-tone="ok"] > span { background: var(--spot-green-text); }
.sl-bar[data-tone="warn"] > span { background: var(--spot-sand-text); }
.sl-bar[data-tone="danger"] > span { background: var(--spot-red-text); }
.sl-bar[data-tone="info"] > span { background: var(--spot-blue-text); }
@media (prefers-reduced-motion: no-preference) { .sl-bar > span { animation: an-grow 0.7s cubic-bezier(0.16, 1, 0.3, 1) both; } }
.sl-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--sp-4); align-items: start; }
.sl-grid--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.sl-list, .sl-stages { max-height: 62vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--thumb) transparent; }
.sl-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--sp-3); width: 100%; padding: var(--sp-3) var(--sp-4); font: inherit; text-align: left; color: var(--text-primary); background: none; border: 0; border-bottom: 1px solid var(--line-soft); cursor: pointer; transition: var(--transition-fast); }
.sl-row:hover { background: var(--wash); }
.sl-row:focus-visible { outline: none; box-shadow: inset var(--focus-ring); }
.sl-row .ds-icon { color: var(--text-muted); }
.sl-pay { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--line-soft); }
.sl-date { display: flex; flex-direction: column; gap: 2px; }
.sl-date .ds-input { min-height: var(--control-h-sm); }
.sl-ranges { flex-wrap: wrap; }
.sl-month-bar { width: 38%; }
@media (max-width: 1100px) { .sl-grid, .sl-grid--even { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .sl-bar-row { grid-template-columns: minmax(0, 1fr) 72px; } .sl-bar-row .sl-bar { grid-column: 1 / -1; grid-row: 2; } .sl-pay { grid-template-columns: minmax(0, 1fr) auto; } .sl-pay .ds-row { grid-column: 1 / -1; } .sl-row { grid-template-columns: minmax(0, 1fr) auto; } .sl-row .ds-badge { grid-column: 1; justify-self: start; } }

/* Ficha 360° */
.sl-lead { gap: var(--sp-5); }
.sl-head { display: flex; flex-direction: column; gap: var(--sp-3); }
.sl-pay-link { display: inline-flex; align-items: center; gap: var(--sp-2); word-break: break-all; }
.sl-sec { display: flex; flex-direction: column; gap: var(--sp-3); padding-top: var(--sp-4); border-top: 1px solid var(--line); }
.sl-actions { flex-wrap: wrap; }
.sl-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--sp-3); align-items: end; }
.sl-form--inline { grid-template-columns: minmax(0, 1fr) auto; }
.sl-answers dd { overflow-wrap: anywhere; }
.sl-notes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.sl-notes li { padding: var(--sp-3) 0; border-bottom: 1px solid var(--line-soft); }
.sl-notes p { margin-top: var(--sp-1); white-space: pre-wrap; overflow-wrap: anywhere; }

/* --- Estadísticas ------------------------------------------------------------------------------------------------------------ */
.st-pipe { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0 var(--sp-5); padding: var(--sp-2) 0 var(--sp-3); }
.st-pipe .sl-bar-row { grid-template-columns: minmax(120px, 160px) minmax(0, 1fr) 40px; padding: var(--sp-1) var(--sp-4); }
.st-filters-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--sp-3); margin: var(--sp-6) 0 var(--sp-3); padding-top: var(--sp-5); border-top: 1px solid var(--line); }
.st-h2 { font-family: var(--font-serif); font-size: var(--fs-title); font-weight: 400; letter-spacing: -0.02em; }
.st-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-4); padding: var(--sp-4); margin-bottom: var(--sp-4); }
.st-filters .ds-field { min-width: 150px; }
.st-compare { align-self: center; }
.st-apply { margin-left: auto; }
.st-delta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-1); margin-top: var(--sp-1); font-size: var(--fs-meta); color: var(--text-secondary); }
.sl-delta { display: inline-flex; align-items: center; gap: 2px; font-weight: 500; }
.sl-delta[data-tone="ok"] { color: var(--spot-green-text); }
.sl-delta[data-tone="danger"] { color: var(--spot-red-text); }
.sl-delta .ds-icon { width: 12px; height: 12px; }
.st-card { display: flex; flex-direction: column; gap: var(--sp-4); padding: var(--sp-5); }
.st-wrap { flex-wrap: wrap; }
.st-between { justify-content: space-between; flex-wrap: wrap; }
.st-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
.st-tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.st-tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .st-tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.st-tile[data-tone="danger"] strong { color: var(--spot-red-text); }
.st-tile[data-tone="warn"] strong { color: var(--spot-sand-text); }
.st-tile { display: flex; flex-direction: column; gap: 2px; padding: var(--sp-3); background: var(--surface-card); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.st-tile strong { font-family: var(--font-mono); font-size: var(--fs-title); font-weight: 500; letter-spacing: -0.02em; }
.st-split { display: flex; height: 10px; overflow: hidden; background: var(--line); border-radius: 5px; }
.st-split > span { display: block; height: 100%; }
.st-legend { margin: 0; }
.st-legend b { font-family: var(--font-mono); font-weight: 500; color: var(--text-primary); }
.st-chips { flex-wrap: wrap; gap: var(--sp-2); padding-top: var(--sp-3); border-top: 1px solid var(--line-soft); }
.st-chip { padding: 2px var(--sp-2); font-size: var(--fs-meta); color: var(--text-secondary); background: var(--surface-card); border: 1px solid var(--line); border-radius: var(--radius-xs); }
.st-svc { display: flex; flex-direction: column; gap: var(--sp-2); }
@media (max-width: 640px) { .st-tiles, .st-tiles--2, .st-tiles--4 { grid-template-columns: minmax(0, 1fr); } .st-apply { margin-left: 0; width: 100%; } .st-pipe { grid-template-columns: minmax(0, 1fr); } }

.sl-grid--stack { grid-template-columns: minmax(0, 1fr); }

/* Dashboard de gestión: lista de tareas priorizadas y pagos */
.sl-tasks { list-style: none; margin: 0; padding: 0; }
.sl-task { display: grid; grid-template-columns: minmax(130px, 150px) minmax(0, 1fr) auto auto; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--line-soft); border-left: 3px solid transparent; }
.sl-task:last-child { border-bottom: 0; }
.sl-task[data-urgency="high"] { border-left-color: var(--spot-red-text); background: var(--spot-red-bg); }
.sl-task[data-urgency="mid"] { border-left-color: var(--spot-sand-text); background: var(--wash); }
.sl-task .ds-badge { justify-self: start; }
.sl-tags { display: flex; flex-wrap: wrap; gap: var(--sp-1); justify-content: flex-end; }
.sl-tag { display: inline-flex; align-items: center; padding: 2px var(--sp-2); border-radius: 999px; font-size: var(--fs-meta); font-weight: 600; white-space: nowrap; color: var(--tag); background: color-mix(in srgb, var(--tag) 12%, transparent); border: 1px solid color-mix(in srgb, var(--tag) 35%, transparent); }
.sl-done > td { background: var(--wash); opacity: 0.85; }
@media (max-width: 900px) {
  .sl-task { grid-template-columns: minmax(0, 1fr) auto; }
  .sl-task .ds-badge { grid-column: 1 / -1; }
  .sl-tags { grid-column: 1 / -1; justify-content: flex-start; }
}

/* Ficha del lead: módulos de gestión y fechas del historial */
.sl-modules { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--sp-3); margin: var(--sp-2) 0 var(--sp-3); }
.sl-module { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-3); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-base); }
.sl-module-title { margin: 0; font-size: var(--fs-body); font-weight: 600; }
.sl-module [hidden] { display: none; }
.sl-lead .ds-timeline-item { grid-template-columns: 92px minmax(0, 1fr) auto; column-gap: var(--sp-4); align-items: start; }
.sl-lead .ds-timeline-item .ds-badge { margin-bottom: var(--sp-1); }
.sl-hist-del { opacity: 0.45; }
.sl-lead .ds-timeline-item:hover .sl-hist-del, .sl-hist-del:focus-visible { opacity: 1; }
.sl-lead .ds-timeline-item .ds-btn { margin-top: var(--sp-1); }
.sl-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.sl-edit-wide { grid-column: 1 / -1; }
@media (max-width: 640px) { .sl-edit-grid { grid-template-columns: 1fr; } }

/* Dashboard de actividad (seguimiento-dashboard.js) */
.sdb-queue { display: flex; flex-direction: column; max-height: 72vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--thumb) transparent; }
.sdb-row { display: grid; grid-template-columns: minmax(200px, 0.9fr) minmax(0, 1.6fr) minmax(0, 1.1fr); gap: var(--sp-4); align-items: start; padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--line-soft); border-left: 3px solid transparent; }
.sdb-row[data-tone="warn"] { border-left-color: var(--spot-sand-text); background: var(--wash); }
.sdb-row[data-tone="danger"] { border-left-color: var(--spot-red-text); background: var(--spot-red-bg); }
.sdb-who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sdb-name { text-align: left; font-size: var(--fs-body); }
.sdb-mail { display: inline-flex; align-items: center; gap: var(--sp-1); word-break: break-all; }
.sdb-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-2); min-width: 0; }
.sdb-items li { display: flex; gap: var(--sp-2); align-items: flex-start; }
.sdb-items .ds-badge { flex: none; }
.sdb-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.sdb-actions { display: flex; flex-wrap: wrap; gap: var(--sp-1); justify-content: flex-end; }
.sdb-sub { padding: var(--sp-3) var(--sp-4) var(--sp-1); font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); }
.sdb-notes { list-style: none; margin: 0; padding: 0; }
.sdb-note { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-2) var(--sp-4); border-bottom: 1px solid var(--line-soft); }
.sdb-note .sdb-text { flex: 1; }
.sdb-dot { width: 10px; height: 10px; flex: none; border-radius: 50%; background: var(--c); }
.sdb-caltool { flex-wrap: wrap; row-gap: var(--sp-2); }
.sdb-title { min-width: 150px; text-align: center; text-transform: capitalize; }
.sdb-filters { display: flex; flex-wrap: wrap; gap: var(--sp-2); padding: var(--sp-2) var(--sp-4) var(--sp-3); }
.sdb-filter { display: inline-flex; align-items: center; gap: var(--sp-2); height: var(--control-h-sm); padding: 0 var(--sp-3); border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--text-primary); font: inherit; font-size: var(--fs-meta); cursor: pointer; }
.sdb-filter[aria-pressed="false"] { opacity: 0.45; text-decoration: line-through; }
.sdb-filter:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.sdb-cal { padding: 0 var(--sp-4) var(--sp-4); }
.sdb-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.sdb-dow { padding: var(--sp-1) var(--sp-2); font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--wash); }
.sdb-cell { min-height: 104px; padding: var(--sp-1); display: flex; flex-direction: column; gap: 2px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-width: 0; }
.sdb-cell.is-out { background: var(--wash); }
.sdb-cell.is-out .sdb-num { color: var(--text-muted); }
.sdb-cell.is-today { box-shadow: inset 0 0 0 2px var(--accent); }
.sdb-num { align-self: flex-end; width: 24px; height: 24px; border: 0; border-radius: 50%; background: transparent; color: var(--text-secondary); font: inherit; font-size: var(--fs-meta); cursor: pointer; }
.sdb-num:hover { background: var(--wash-2); }
.sdb-cell.is-today .sdb-num { background: var(--accent); color: var(--on-solid); }
.sdb-chip { display: flex; align-items: center; gap: var(--sp-1); width: 100%; min-width: 0; padding: 1px 6px; border: 1px solid var(--bd); border-radius: 4px; background: var(--bg); color: var(--fg); font: inherit; font-size: var(--fs-meta); text-align: left; cursor: pointer; }
.sdb-chip:hover { filter: brightness(0.96); }
.sdb-chip:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.sdb-chip-time { font-variant-numeric: tabular-nums; opacity: 0.8; }
.sdb-more { border: 0; background: transparent; color: var(--accent); font: inherit; font-size: var(--fs-meta); text-align: left; padding: 0 6px; cursor: pointer; }
.sdb-week { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--sp-2); }
.sdb-wday { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-2); border: 1px solid var(--line); border-radius: var(--radius-md); min-height: 160px; }
.sdb-wday.is-today { box-shadow: inset 0 0 0 2px var(--accent); }
.sdb-wday header { display: flex; align-items: center; justify-content: space-between; }
.sdb-daylist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-2); }
.sdb-grid2 { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--sp-4); align-items: start; margin-bottom: var(--sp-4); }
.sdb-grid2 > .ds-card { margin-bottom: 0; }
.sdb-search { width: 230px; }
.sdb-foot { padding: var(--sp-2) var(--sp-4); text-align: center; }
.sdb-rowbtns { flex-wrap: wrap; }
.sdb-activity { max-height: 520px; overflow-y: auto; padding: var(--sp-2) var(--sp-4) var(--sp-3); scrollbar-width: thin; scrollbar-color: var(--thumb) transparent; }
.sdb-feed { list-style: none; margin: 0; padding: 0; }
.sdb-feed li { display: flex; gap: var(--sp-3); padding: var(--sp-2) 0; border-bottom: 1px solid var(--line-soft); }
.sdb-feed-ic { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--wash-2); color: var(--text-secondary); }
.sdb-feed-ic.tone-ok { background: var(--spot-green-bg); color: var(--spot-green-text); }
.sdb-feed-ic.tone-info { background: var(--spot-blue-bg); color: var(--spot-blue-text); }
.sdb-feed-ic.tone-warn { background: var(--spot-sand-bg); color: var(--spot-sand-text); }
.sdb-feed-ic.tone-accent { background: var(--wash-2); color: var(--accent); }
.sdb-paid { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--line-soft); }
.sdb-chart { padding: var(--sp-2) var(--sp-4) var(--sp-4); }
.sdb-two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.sdb-colors { display: flex; gap: var(--sp-2); }
.sdb-color input { position: absolute; opacity: 0; }
.sdb-color span { display: block; width: 26px; height: 26px; border-radius: 50%; background: var(--c); border: 2px solid transparent; cursor: pointer; }
.sdb-color input:checked + span { border-color: var(--text-primary); box-shadow: 0 0 0 2px var(--surface-base) inset; }
.sdb-color input:focus-visible + span { box-shadow: var(--focus-ring); }
.sdb-steps { margin: var(--sp-3) 0; padding-left: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-1); }
@media (max-width: 1100px) {
  .sdb-row { grid-template-columns: minmax(0, 1fr); }
  .sdb-actions { justify-content: flex-start; }
  .sdb-grid2 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .sdb-cell { min-height: 76px; }
  .sdb-chip-time { display: none; }
  .sdb-paid { flex-direction: column; align-items: flex-start; }
  .sdb-search { width: 100%; }
}

/* El espaciado entre las tarjetas de estas pantallas lo da .ds-page (design-system.css). */
.sdb-grid2 { margin-bottom: 0; }

/* Calendario: los eventos pendientes se arrastran día a día como una banda continua */
.sdb-chip.is-cont { margin-left: calc(-1 * var(--sp-1) - 1px); width: calc(100% + var(--sp-1) + 1px); border-left-color: transparent; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.sdb-chip.is-more { margin-right: calc(-1 * var(--sp-1) - 1px); width: calc(100% + var(--sp-1) + 1px); border-right-color: transparent; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.sdb-chip.is-cont.is-more { width: calc(100% + 2 * var(--sp-1) + 2px); }
.sdb-chip.is-quiet .ds-truncate { visibility: hidden; }
.sdb-daylist li { display: flex; flex-direction: column; gap: 2px; }

/* Entrenamiento: modos Análisis / Diseño y bloques del análisis */
.an-ta-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
.an-ta-notes { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--sp-3); }
.an-ta-notes p { margin: 2px 0 0; font-size: var(--fs-body); color: var(--text-secondary); white-space: pre-wrap; }
@media (max-width: 900px) { .an-ta-pair { grid-template-columns: minmax(0, 1fr); } }

/* Formularios: filtro por tipo, días sin registrar y cambios entre envíos */
.an-form-filter { gap: var(--sp-2); flex-wrap: wrap; }
.an-form-section > summary { gap: var(--sp-2); }
.an-form-last { margin-left: auto; font-size: var(--fs-meta); }
.an-miss, .an-omit { text-align: center; }
.an-miss .ds-hint { color: var(--spot-red-text); }
.an-miss, .an-omit { background: var(--wash); }
.an-changed { background: var(--spot-sand-bg); box-shadow: inset 2px 0 0 var(--spot-sand-text); }

/* Avisos plegados, subpestañas de la sección y tarjeta «Ahora» de la barra lateral */
.an-alerts > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-4); padding: var(--sp-2) var(--sp-3); cursor: pointer; list-style: none; border-bottom: 1px solid transparent; }
.an-alerts > summary::-webkit-details-marker { display: none; }
.an-alerts[open] > summary { border-bottom-color: var(--line-soft); }
.an-alerts-count { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-body); }
.an-tabsbar { flex-wrap: wrap; }
.an-subtabs { display: flex; flex: 1 1 100%; flex-wrap: wrap; gap: var(--sp-2); padding: var(--sp-2) 0 var(--sp-3); }
.an-subtabs[hidden] { display: none; }
.an-now-list { display: flex; flex-direction: column; gap: var(--sp-2); margin: 0; }
.an-now-row { display: flex; flex-direction: column; gap: 1px; }
.an-now-row dt { font-size: var(--fs-meta); color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.05em; }
.an-now-row dd { margin: 0; font-variant-numeric: tabular-nums; }

/* ==========================================================================
   Cabecera de dos líneas, avisos, vistas de cada pestaña y barra lateral
   ========================================================================== */
/* Cabecera en dos líneas */
.an-head { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding-bottom: var(--sp-1); }
.an-name-row { gap: var(--sp-3); flex-wrap: wrap; }
.an-meta { color: var(--text-muted); }
.an-line { margin: 0 0 var(--sp-3); padding: var(--sp-3) var(--sp-4); color: var(--text-primary); font-variant-numeric: tabular-nums; background: var(--surface-base); border: 1px solid var(--line); border-radius: var(--radius-md); }
.an-late { color: var(--spot-red-text); }
.an-soon { color: var(--spot-sand-text); }
.an-dot { display: inline-block; width: 8px; height: 8px; flex: none; border-radius: 50%; background: var(--text-muted); }
.an-dot[data-tone="ok"] { background: var(--spot-green-text); }
.an-dot[data-tone="warn"] { background: var(--spot-sand-text); }
.an-dot[data-tone="danger"] { background: var(--spot-red-text); }
.an-alert-chip { padding: 1px 10px; font: inherit; font-size: var(--fs-meta); color: var(--spot-sand-text); background: var(--spot-sand-bg); border: 1px solid var(--spot-sand-border); border-radius: var(--radius-pill); cursor: pointer; }
.an-alert-chip[data-tone="danger"] { color: var(--spot-red-text); background: var(--spot-red-bg); border-color: var(--spot-red-border); }

/* Pestañas: una fila, y debajo las vistas de la pestaña como enlaces de texto */
.an-subtabs { gap: var(--sp-2); padding: var(--sp-1) 0 var(--sp-3); }

/* Barra lateral ligera */
.an-now { display: flex; flex-direction: column; gap: 2px; }
.an-now p { margin: 0; }
.an-dotn { display: inline-flex; align-items: center; gap: 4px; margin-right: var(--sp-2); font-variant-numeric: tabular-nums; }
.an-dotn .an-dot { width: 7px; height: 7px; }
.an-side-more { display: flex; flex-direction: column; gap: var(--sp-2); }
.an-side-more > summary { padding: var(--sp-1) 0; color: var(--text-secondary); cursor: pointer; }
.an-side-more[open] > summary { margin-bottom: var(--sp-2); }

/* Revisiones del plan */
.an-reviews { display: flex; flex-direction: column; }
.an-older { margin-top: var(--sp-2); }
.an-thread.is-focus { outline: 2px solid var(--accent, currentColor); outline-offset: 2px; }
.an-plan-block { margin-top: var(--sp-3); padding: var(--sp-2) var(--sp-3); border: 1px solid var(--line-soft); border-radius: var(--radius-md, 8px); }
.an-plan-block > summary { font-weight: 500; color: var(--text-primary); }
.an-older > summary { padding: var(--sp-1) 0; color: var(--text-secondary); cursor: pointer; }
.an-state { display: inline-flex; align-items: center; gap: var(--sp-2); color: var(--text-secondary); white-space: nowrap; }

.an-click { cursor: pointer; }
.an-click:hover { background: var(--wash); }
.an-click:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.an-ta-history > summary { color: var(--text-secondary); }

.an-q > .ds-hint { display: block; }

/* Etiquetas largas de los formularios: se parten en varias líneas en vez de montarse sobre la columna siguiente */
.an-compare th, .an-week th, .an-q { white-space: normal; overflow-wrap: anywhere; }
