:root{
  --bg:#f7f5f0; --ink:#1f2320; --muted:#6b7268;
  --accent:#3d5a45; --alta:#a1453b; --media:#b8863f; --baja:#5b7a8c;
  --border:#e0dccf;
  --serif: 'Lora', Georgia, 'Times New Roman', serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  /* B2.1 — Home ejecutiva: mucho más aire horizontal en desktop. */
  --content-width: 1180px;
}
*{box-sizing:border-box;}
body{
  margin:0; font-family:var(--sans);
  background:var(--bg); color:var(--ink);
}
hr.divisoria{
  border:none; border-top:1px solid var(--border); margin:36px 0;
}

/* Login */
.login-screen{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
}
.login-screen[hidden]{ display:none; }
.login-caja{ width:100%; max-width:320px; }
.login-titulo{
  font-family:var(--serif); font-weight:600; font-size:28px; text-align:center; margin:0 0 28px; color:var(--ink);
}
#login-form{ display:flex; flex-direction:column; gap:10px; }
#login-form input{
  font-size:14.5px; padding:10px 12px; border:1px solid var(--border); border-radius:8px;
  font-family:inherit; background:#fff;
}
.btn-ingresar{ padding:10px 14px; font-size:14px; margin-top:4px; }

/* Pie / logout */
.pie{ margin-top:40px; text-align:center; }
.btn-logout{
  border:none; background:transparent; color:var(--muted); font-size:12.5px;
  cursor:pointer; text-decoration:underline; padding:4px;
}
.btn-logout:hover{ color:var(--ink); }

/* Navegación por día */
.dia-nav{
  max-width:var(--content-width); margin:0 auto; padding:14px 24px 0;
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted);
}
.dia-nav button{
  border:none; background:transparent; color:var(--muted); cursor:pointer;
  font:inherit; padding:2px 6px; border-radius:6px;
}
.dia-nav button:hover:not(:disabled){ color:var(--ink); background:#eef1ec; }
.dia-nav button:disabled{ opacity:.3; cursor:default; }
#dia-anterior, #dia-siguiente{ font-size:15px; line-height:1; }
.dia-volver-hoy{
  border:1px solid var(--border) !important; margin-left:4px;
  text-transform:none; letter-spacing:0; font-size:11px !important;
}
.dia-nav.otro-dia #dia-nav-label{ color:var(--accent); font-weight:700; }
.dia-nav-nota{
  max-width:var(--content-width); margin:6px auto 0; padding:0 24px; text-align:center;
  font-size:11.5px; color:var(--accent); font-style:italic;
}

/* Portada */
header.portada{ max-width:var(--content-width); margin:0 auto; padding:40px 24px 0; }
.saludo{
  font-family:var(--serif); font-weight:600; font-size:34px; line-height:1.2;
  margin:0 0 18px; color:var(--ink);
}
.secretaria-label{
  font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent);
  margin:0 0 6px; font-weight:700;
}
.secretaria-texto{ font-size:17px; line-height:1.55; margin:0 0 14px; color:var(--ink); max-width:60ch; }

/* Tira del día */
.tira-dia{ max-width:var(--content-width); margin:0 auto; padding:0 24px; }
.tira-todo-el-dia{ font-size:13.5px; color:var(--muted); margin:0 0 16px; }
.tira-columnas{ display:grid; grid-template-columns:repeat(3, 1fr); gap:28px; }
.tira-col h2{
  font-family:var(--serif); font-weight:600; font-size:14px; margin:0 0 10px;
  text-transform:uppercase; letter-spacing:.05em; color:var(--ink);
}
.tira-lista{ font-size:14px; }
.tira-fila{ margin:0 0 8px; line-height:1.4; }
.tira-hora{ font-weight:600; }
.tira-personal-tag{ color:var(--accent); font-style:italic; }
.tira-vacio{ margin:0; color:var(--muted); font-size:13.5px; }
.tira-fila.proximo{ font-weight:700; }
.tira-fila.proximo .tira-hora{ color:var(--accent); }
.tira-fila.pasado{ opacity:.45; }

/* Cuerpo general */
main{ max-width:var(--content-width); margin:0 auto; padding:0 24px 60px; }

/* B2.1 — más aire horizontal en pantallas grandes: márgenes cómodos, nunca
   contenido pegado al borde. */
@media (min-width: 1024px){
  header.portada, .tira-dia, main, .dia-nav, .dia-nav-nota{ padding-left:40px; padding-right:40px; }
}
.seccion-header{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.seccion-header h2{
  font-family:var(--serif); font-weight:600; font-size:20px; margin:0;
}
.section-title{ font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin:0; }

/* Stats en texto plano, sin chips */
.stats{ font-size:13px; color:var(--muted); }
.stats b{ color:var(--ink); font-weight:600; }

/* Necesita tu atención: filas editoriales, sin tarjetas.
   B2.1 — en desktop ancho, dos columnas; tablet/mobile vuelven a una sola. */
#lista{ display:grid; grid-template-columns:1fr; }
@media (min-width: 900px){
  #lista{ grid-template-columns:1fr 1fr; column-gap:40px; }
  #lista .lista-controles{ grid-column:1 / -1; }
}
.card{
  border-bottom:1px solid var(--border);
  padding:16px 0; margin:0; display:flex; align-items:flex-start; gap:14px;
  transition:opacity .25s ease, transform .25s ease;
}
.card.done{ opacity:0; transform:translateX(20px); }
.fecha-deteccion{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  font-weight:700; margin:0 0 4px;
}
.prio{ width:4px; align-self:stretch; border-radius:2px; flex-shrink:0; min-height:20px; margin-top:2px; }
.prio.alta{ background:var(--alta); }
.prio.media{ background:var(--media); }
.prio.baja{ background:var(--baja); }
.body{ flex:1; min-width:0; }
.campo-label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; margin:0 0 2px; }
.campo-label:not(:first-child){ margin-top:10px; }
.title{ font-weight:600; font-size:15.5px; margin:0; }
.meta{ font-size:12.5px; color:var(--muted); margin:0 0 6px; }
.expediente{ font-size:13.5px; color:var(--ink); margin:0; }
.expediente-numero{ font-size:13.5px; color:var(--ink); margin:0; }
.desc{ font-size:13.5px; color:#3a3f3a; margin:0 0 6px; line-height:1.4; }
.ver-detalle{
  border:none; background:none; color:var(--accent); font-size:12px;
  text-decoration:underline; cursor:pointer; padding:0; margin:10px 0 0; display:block; font-family:inherit;
}
.detalle{
  font-size:13px; color:#3a3f3a; line-height:1.55; margin-top:8px;
  padding-top:8px; border-top:1px dashed var(--border);
}
.tag{ display:inline-block; font-size:11px; background:#eef1ec; color:var(--accent); border-radius:6px; padding:1px 7px; margin-right:6px; }
button.ok{
  border:none; background:var(--accent); color:#fff; border-radius:8px;
  padding:8px 12px; font-size:13px; cursor:pointer; flex-shrink:0;
}
button.ok:hover{ background:#2f4636; }
button.ok:disabled{ opacity:.6; cursor:default; }
button.ok:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.empty{ text-align:center; color:var(--muted); padding:40px 0; }
.empty-compacto{ padding:6px 0; text-align:left; }
.lista-controles{ text-align:center; padding:16px 0 4px; }
.lista-controles button{
  border:1px solid var(--border); background:transparent; color:var(--accent);
  border-radius:8px; padding:8px 16px; font-size:13px; cursor:pointer; font-family:inherit;
}
.lista-controles button:hover{ background:#eef1ec; }
.loading{ text-align:center; color:var(--muted); padding:24px 0; }
.errbox{ text-align:center; color:var(--alta); padding:24px 0; font-size:14px; }
.errbox button{ margin-top:12px; border:1px solid var(--alta); background:transparent; color:var(--alta); border-radius:8px; padding:6px 14px; font-size:13px; cursor:pointer; }

/* E0.3 — Cartera de pericias: "qué hay que hacer", independiente de qué
   notificación llegó (secretaria_eventos). Mismo lenguaje visual que
   .junior-fila/.audiencia-fila — pestañas por estado_operativo + filas con
   barra lateral de color. */
.cartera-resumen{ font-size:13px; color:var(--muted); margin:0 0 12px; }
.cartera-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.cartera-tab{
  border:1px solid var(--border); background:transparent; color:var(--muted);
  border-radius:20px; padding:6px 14px; font-size:12.5px; cursor:pointer; font-family:inherit;
}
.cartera-tab:hover{ background:#eef1ec; }
.cartera-tab.activa{ background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
.cartera-mas-toggle{
  border:none; background:none; color:var(--accent); font-size:12px;
  text-decoration:underline; cursor:pointer; padding:0; margin:0 0 14px; display:block; font-family:inherit;
}
.cartera-fila{
  border-left:3px solid var(--border); border-bottom:1px solid var(--border);
  padding:12px 0 12px 12px; margin:0;
}
.cartera-fila:last-child{ border-bottom:none; }
.cartera-fila.cartera-hacer{ border-left-color:var(--alta); }
.cartera-fila.cartera-junior{ border-left-color:var(--baja); }
.cartera-fila.cartera-revisar{ border-left-color:var(--media); }
.cartera-fila.cartera-espera{ border-left-color:var(--border); }
.cartera-fila.cartera-joche{ border-left-color:var(--alta); }
.cartera-fila.cartera-cerrado{ border-left-color:var(--border); opacity:.7; }
.cartera-caso{ font-size:15px; font-weight:600; margin:0 0 2px; color:var(--ink); }
.cartera-meta{ font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; margin:0 0 4px; }
.cartera-accion{ font-size:13.5px; color:var(--ink); margin:0 0 4px; }
.cartera-obs{ font-size:13px; color:#3a3f3a; margin:0 0 6px; line-height:1.4; }
.cartera-fecha{ font-size:12.5px; color:var(--muted); margin:0 0 4px; }
.cartera-junior-estado{ font-size:12.5px; font-weight:700; color:var(--baja); margin:0 0 6px; }
.cartera-decision-aviso{ font-size:12.5px; font-weight:700; color:var(--alta); margin:0 0 2px; }
.cartera-decision-motivo{ font-size:13px; color:var(--ink); margin:0 0 6px; }
.cartera-ver-detalle{
  border:none; background:none; color:var(--accent); font-size:12px;
  text-decoration:underline; cursor:pointer; padding:0; margin:4px 0 0; display:block; font-family:inherit;
}
.cartera-detalle{
  font-size:12px; color:var(--muted); line-height:1.5; margin-top:6px;
  padding-top:6px; border-top:1px dashed var(--border);
}
.cartera-acciones{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.cartera-acciones button, .cartera-acciones select{
  border:1px solid var(--accent); background:transparent; color:var(--accent);
  border-radius:8px; padding:6px 12px; font-size:12.5px; cursor:pointer; font-family:inherit;
}
.cartera-acciones button:hover{ background:#eef1ec; }
.cartera-acciones button:disabled{ opacity:.6; cursor:default; }
.cartera-acciones button.cartera-btn-resuelto{ background:var(--accent); color:#fff; }
.cartera-acciones button.cartera-btn-resuelto:hover{ background:#2f4636; }
.cartera-acciones button.cartera-btn-reabrir{ border-color:var(--media); color:var(--media); }

/* D0.2 — Junior: filas editoriales compactas, mismo lenguaje visual que
   .audiencia-fila/.personal-fila. Color por grupo de estado, nunca texto
   técnico (el JS ya traduce pendiente_cowork/en_proceso/etc a español). */
.btn-junior{
  border:1px solid var(--accent); background:transparent; color:var(--accent);
  border-radius:8px; padding:6px 12px; font-size:12.5px; cursor:pointer;
  margin-top:10px; display:block; font-family:inherit;
}
.btn-junior:hover{ background:#eef1ec; }
.btn-junior:disabled{ opacity:.6; cursor:default; }
.btn-junior.enviado{ border-color:var(--border); color:var(--muted); }

.junior-fila{
  border-left:3px solid var(--border); border-bottom:1px solid var(--border);
  padding:12px 0 12px 12px; margin:0;
}
.junior-fila:last-child{ border-bottom:none; }
.junior-info{ border-left-color:var(--baja); }
.junior-ok{ border-left-color:var(--accent); }
.junior-atencion{ border-left-color:var(--media); }
.junior-error{ border-left-color:var(--alta); }
.junior-cancelado{ border-left-color:var(--border); opacity:.6; }
.junior-meta{
  font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  font-weight:600; margin:0 0 4px;
}
.junior-caso{ font-size:15px; font-weight:600; margin:0 0 2px; color:var(--ink); }
.junior-accion{ font-size:13px; color:var(--muted); margin:0 0 4px; }
.junior-estado{ font-size:12.5px; font-weight:700; margin:0 0 4px; color:var(--ink); }
.junior-estado-info{ color:var(--baja); }
.junior-estado-ok{ color:var(--accent); }
.junior-estado-atencion{ color:var(--media); }
.junior-estado-error{ color:var(--alta); }
.junior-estado-cancelado{ color:var(--muted); }
.junior-resumen{ font-size:13.5px; color:#3a3f3a; margin:0 0 4px; line-height:1.4; }
.junior-refs{ font-size:12px; color:var(--muted); margin:0 0 6px; }
.junior-cancelar{
  border:none; background:none; color:var(--alta); font-size:12px;
  text-decoration:underline; cursor:pointer; padding:0; font-family:inherit;
}

/* Próximas audiencias: filas editoriales, jerarquía reservada para hoy/mañana */
.audiencia-fila{
  border-bottom:1px solid var(--border); padding:14px 0; margin:0;
}
.audiencia-fila:last-child{ border-bottom:none; }
.audiencia-fecha{
  font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
  font-weight:600; margin:0 0 4px;
}
.audiencia-caso{ font-size:15px; font-weight:600; margin:0 0 2px; color:var(--ink); }
.audiencia-tipo{ font-size:13px; color:var(--muted); margin:0; }
.audiencia-organismo{ font-size:12.5px; color:var(--muted); margin:4px 0 0; }
.audiencia-manana .audiencia-fecha{ color:var(--accent); }
.audiencia-hoy .audiencia-fecha{ color:var(--alta); }
.audiencia-hoy .audiencia-caso{ font-weight:700; }
.audiencia-semana .audiencia-fecha,
.audiencia-lejos .audiencia-fecha{ color:var(--muted); }

/* B2 — jerarquía por días restantes: 0–2 alta, 3–7 media, 8–15 baja. Barra
   lateral discreta (mismo lenguaje visual que .prio en "Necesita tu
   atención"), nunca texto en rojo indiscriminado. */
.audiencia-fila{ border-left:3px solid transparent; padding-left:12px; }
.audiencia-jerarquia-alta{ border-left-color:var(--alta); }
.audiencia-jerarquia-media{ border-left-color:var(--media); }
.audiencia-jerarquia-baja{ border-left-color:var(--baja); }
.tag-anticipatoria{ background:#eaf0f3; color:var(--baja); }

/* Semana próxima */
.semana-fila{ border-bottom:1px solid var(--border); padding:12px 0; margin:0; line-height:1.45; }
.semana-fila:last-child{ border-bottom:none; }
.semana-fecha{ font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; }
.semana-tipo{ font-size:13px; color:var(--muted); }
.semana-caso{ font-size:14.5px; font-weight:600; color:var(--ink); }
#semana-proxima-section.nivel-prominente .seccion-header h2{ font-size:22px; }
#semana-proxima-section.nivel-discreto{ opacity:.85; }
#semana-proxima-section.nivel-discreto .seccion-header h2{ font-size:16px; }
#semana-proxima-section.nivel-muy-discreto{ opacity:.65; }
#semana-proxima-section.nivel-muy-discreto .seccion-header h2{ font-size:14px; text-transform:uppercase; letter-spacing:.04em; }

/* Anticipación 10–15 días: aviso único, tono informativo (no alarmante). */
.anticipacion-aviso{
  border:1px solid var(--border); border-left:3px solid var(--baja); border-radius:6px;
  padding:10px 14px; margin:0 0 14px; background:#f4f7f8;
}
.anticipacion-texto{ font-size:14px; color:var(--ink); margin:0; line-height:1.45; }

/* Tareas personales */
.btn-nueva-tarea{
  border:1px solid var(--accent); background:transparent; color:var(--accent);
  border-radius:8px; padding:6px 12px; font-size:13px; cursor:pointer;
}
.btn-nueva-tarea:hover{ background:#eef1ec; }
.form-nueva-tarea{
  border:1px solid var(--border); border-radius:10px; padding:16px; margin-bottom:16px;
  display:flex; flex-direction:column; gap:10px; max-width:420px;
}
.form-nueva-tarea[hidden]{ display:none; }
.form-nueva-tarea input[type="text"]{
  font-size:14px; padding:8px 10px; border:1px solid var(--border); border-radius:6px; font-family:inherit;
}
.form-opciones{ display:flex; gap:14px; }
.btn-opcional{
  border:none; background:transparent; color:var(--muted); font-size:12.5px;
  cursor:pointer; padding:0; text-decoration:underline; font-family:inherit;
}
.btn-opcional:hover{ color:var(--accent); }
.form-label-inline{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); }
.form-fila{ display:flex; gap:10px; }
.form-fila input{ font-size:13.5px; padding:7px 8px; border:1px solid var(--border); border-radius:6px; font-family:inherit; flex:1; }
.form-acciones{ display:flex; gap:10px; }
.btn-guardar{
  border:none; background:var(--accent); color:#fff; border-radius:8px; padding:8px 14px; font-size:13px; cursor:pointer;
}
.btn-cancelar{
  border:1px solid var(--border); background:transparent; color:var(--muted); border-radius:8px; padding:8px 14px; font-size:13px; cursor:pointer;
}
.form-aviso{ font-size:13px; color:var(--muted); margin:6px 0 0; font-style:italic; }
.personal-fila{
  border-bottom:1px solid var(--border); padding:12px 0; display:flex; align-items:flex-start; gap:14px;
  transition:opacity .25s ease;
}
.personal-fila:last-child{ border-bottom:none; }
.personal-fila.done{ opacity:0; }
.personal-fila .body{ flex:1; min-width:0; }
.personal-fila .title{ font-weight:600; font-size:15px; margin:0 0 3px; }
.personal-fila .meta{ font-size:12px; color:var(--muted); margin:0; }
.personal-fila.realizada{ opacity:.5; }
.personal-fila.realizada .title{ text-decoration:line-through; }
/* Pendiente ≠ urgente: señal discreta, sin rojo. */
.personal-fila .meta.antiguedad{ color:var(--baja); font-style:italic; }
.tareas-nota{ font-size:13px; color:var(--muted); font-style:italic; margin:10px 0 0; }

/* Archivo */
.archivo-header{ display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; background:none; border:none; padding:0; width:100%; text-align:left; font:inherit; color:inherit; }
.archivo-header .section-title{ font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin:0; }
.archivo-badge{ background:#eef1ec; color:var(--accent); border-radius:10px; padding:2px 10px; font-size:12px; font-weight:600; }
.archivo-toggle{ font-size:12px; color:var(--muted); margin-left:auto; }
.archivo-lista{ display:none; margin-top:14px; }
.archivo-lista.abierto{ display:block; }
.archivo-card{ border-bottom:1px solid var(--border); padding:12px 0; margin-bottom:0; opacity:.85; display:flex; align-items:flex-start; gap:12px; transition:opacity .25s ease; }
.archivo-card:last-child{ border-bottom:none; }
.archivo-card.done{ opacity:0; }
.archivo-card .body{ flex:1; min-width:0; }
.archivo-card .title{ font-weight:600; font-size:14px; margin:0 0 3px; }
.archivo-card .meta{ font-size:12px; color:var(--muted); margin:0; }

@media (max-width: 720px){
  .tira-columnas{ grid-template-columns:1fr; gap:20px; }
}

@media (max-width: 480px){
  header.portada{ padding:28px 16px 0; }
  .saludo{ font-size:26px; }
  .secretaria-texto{ font-size:15.5px; }
  .tira-dia{ padding:0 16px; }
  main{ padding:0 16px 48px; }
  .card{ padding:14px 0; gap:10px; }
  button.ok{ padding:9px 12px; }
  .form-fila{ flex-direction:column; }
  .dia-nav{ padding:12px 16px 0; font-size:10.5px; }
}
