/* DCE Holdings — Decision Journal v1 · documentos (PR-C)
   Pestaña Underwriting y modal de subida. Prefijo jd- para no colisionar con
   los estilos legacy de journal.html (.status, .badge, .modal, .chip). */

/* ── filtros ── */
.jd-filters{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.jd-chip{font-size:10px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;padding:6px 12px;background:var(--white);border:1px solid var(--rule);color:var(--gray-txt);cursor:pointer;user-select:none}
.jd-chip.active{background:var(--navy);color:var(--white);border-color:var(--navy)}
.jd-filters input{font-family:'Archivo',sans-serif;font-size:12px;padding:7px 12px;border:1px solid var(--rule);background:var(--white);color:var(--ink);width:160px}
.jd-note{font-size:12px;color:var(--gray-txt);line-height:1.55;margin-bottom:16px;padding:12px 14px;border-left:2px solid var(--gold);background:var(--white)}
.jd-note code{font-family:'SF Mono',Menlo,monospace;font-size:11px;background:var(--cream);padding:1px 5px}
.jd-status{font-size:12px;color:var(--gray-mid);margin-bottom:12px}
.jd-status.error{color:var(--red)}
.jd-empty{padding:40px 20px;text-align:center;color:var(--gray-mid);font-size:13px;background:var(--white);border:1px dashed var(--rule)}

/* ── tarjetas de posición ── */
.jd-card{background:var(--white);border:1px solid var(--rule);margin-bottom:14px}
.jd-card.superseded,.jd-card.closed{opacity:.85}
.jd-head{display:flex;flex-direction:column;gap:7px;padding:14px 20px;border-bottom:1px solid var(--rule)}
.jd-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jd-ticker{font-size:18px;font-weight:700;letter-spacing:0.02em}
.jd-name{font-size:13px;color:var(--gray-txt);white-space:nowrap;margin-right:6px}
.jd-pill{font-size:9px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;padding:3px 8px;border-radius:2px;white-space:nowrap}
.jd-pill.pending{background:var(--cream);color:var(--gold);border:1px dashed var(--gold)}
.jd-modal-body{padding:0}
.jd-pill.buy{background:rgba(46,107,79,0.12);color:var(--green)}
.jd-pill.follow{background:rgba(184,139,71,0.14);color:#8b6a2f}
.jd-pill.pass{background:rgba(96,96,96,0.12);color:var(--gray-txt)}
.jd-pill.resub{background:rgba(27,38,66,0.10);color:var(--navy)}
.jd-pill.vigente{background:rgba(46,107,79,0.12);color:var(--green);border:1px solid rgba(46,107,79,0.35)}
.jd-pill.superseded{background:rgba(96,96,96,0.10);color:var(--gray-txt);text-decoration:line-through}
.jd-pill.precanon{background:rgba(184,139,71,0.12);color:var(--gold);border:1px dashed rgba(184,139,71,0.6)}
.jd-pill.act{background:var(--cream);color:var(--gray-txt);border:1px solid var(--rule);text-transform:none;letter-spacing:0.06em;font-weight:600}
.jd-pill.act.pending{color:var(--red);border-color:rgba(139,0,0,0.3)}
.jd-pill.removed{background:rgba(139,0,0,0.08);color:var(--red)}
/* PR-D · Re-underwriting / Lessons pills (same palette as the ratified mockup) */
.jd-pill.amber{background:rgba(184,139,71,0.16);color:#7a5a24;border:1px solid rgba(184,139,71,0.5);text-transform:none;letter-spacing:0.06em;font-weight:600}
.jd-pill.escalated{background:rgba(139,0,0,0.10);color:var(--red);border:1px solid rgba(139,0,0,0.35);text-transform:none;letter-spacing:0.06em;font-weight:600}
.jd-pill.blocked{background:rgba(160,40,40,0.08);color:var(--red);border:1px solid rgba(160,40,40,0.35);text-transform:none;letter-spacing:0.06em;font-weight:600}
.jd-pill.intact{background:rgba(46,107,79,0.12);color:var(--green)}
.jd-pill.evolved{background:rgba(184,139,71,0.14);color:#8b6a2f}
.jd-pill.broken{background:rgba(139,0,0,0.10);color:var(--red)}
.jd-pill.sold{background:rgba(139,0,0,0.10);color:var(--red)}
.jd-card.q.broken_resubscribed,.jd-card.q.evolved,.jd-card.q.intact{opacity:.92}
.jd-slot-trail .warn{color:var(--red);font-weight:600}
.jd-act.upload[disabled]{opacity:.45;cursor:not-allowed}
/* Escalation gauge §5.1 · 0–44 neutral · 45–59 amber · 60+ red */
.jd-gauge{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:11px;color:var(--gray-mid);flex-wrap:wrap}
.jd-gauge .bar{width:220px;height:6px;background:rgba(27,38,66,0.08);border-radius:3px;overflow:hidden;position:relative;flex-shrink:0}
.jd-gauge .bar i{display:block;height:100%;background:var(--gray-mid)}
.jd-gauge.amber .bar i{background:#b88b47}
.jd-gauge.escalated .bar i{background:var(--red)}
.jd-gauge .bar b{position:absolute;left:75%;top:-3px;width:1px;height:12px;background:var(--red)}
.jd-meta{font-size:11px;color:var(--gray-mid);font-variant-numeric:tabular-nums;line-height:1.5}

/* ── slots ── */
.jd-slot{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--rule)}
.jd-slot:last-child{border-bottom:none}
.jd-slot.missing{background:rgba(184,139,71,0.04)}
.jd-badge{font-size:9px;font-weight:700;letter-spacing:0.12em;padding:4px 8px;border:1px solid var(--rule);background:var(--cream);color:var(--navy);min-width:44px;text-align:center;flex-shrink:0}
.jd-badge.pending{border-color:var(--red);color:var(--red);background:rgba(139,0,0,0.05)}
.jd-slot-body{flex:1;min-width:0}
.jd-slot-title{font-size:13px;font-weight:600}
.jd-slot-file{font-size:11.5px;color:var(--gray-txt);margin-top:2px;font-variant-numeric:tabular-nums;word-break:break-word}
.jd-slot-file em{color:var(--gray-mid);font-style:italic}
.jd-slot-trail{font-size:10.5px;color:var(--gray-mid);margin-top:2px;word-break:break-word}
.jd-slot-trail code{font-family:'SF Mono',Menlo,monospace;font-size:10px;background:var(--cream);padding:1px 4px}
.jd-history{margin-top:6px;font-size:10.5px;color:var(--gray-mid);border-left:2px solid var(--rule);padding-left:10px}
.jd-history div{margin-top:2px}
.jd-history .v{font-weight:600;color:var(--gray-txt)}
.jd-calendar-history{border-top:1px solid var(--rule);margin-top:8px}
.jd-calendar-history>summary{padding:12px 16px;font-size:11px;color:var(--gray-mid);cursor:pointer}
.jd-calendar-history>summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.jd-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.jd-act{font-family:'Archivo',sans-serif;font-size:9.5px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;padding:7px 12px;background:var(--white);border:1px solid var(--rule);color:var(--navy);cursor:pointer}
.jd-act.open{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold)}
.jd-act.remove{color:var(--red)}
.jd-act.upload{border-color:var(--gold);color:var(--navy)}
.jd-act:disabled{opacity:.45;cursor:default}
.jd-inline-remove{flex-basis:100%;display:flex;gap:8px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px dashed var(--rule)}
.jd-inline-remove input{flex:1;font-family:'Archivo',sans-serif;font-size:12px;padding:7px 10px;border:1px solid var(--rule)}
.jd-inline-remove .err{font-size:11px;color:var(--red)}

/* ── modal ── */
.jd-modal-bg{position:fixed;inset:0;background:rgba(27,38,66,0.55);display:none;align-items:flex-start;justify-content:center;padding:60px 16px;z-index:50;overflow-y:auto}
.jd-modal-bg.open{display:flex}
.jd-modal{background:var(--white);width:640px;max-width:100%;border-top:4px solid var(--gold);box-shadow:0 20px 60px rgba(0,0,0,0.25)}
.jd-modal-head{padding:24px 28px 18px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:flex-start}
.jd-modal-head h2{font-size:22px;font-weight:700}
.jd-modal-head .sub{font-size:12px;color:var(--gray-txt);margin-top:4px}
.jd-modal-head .x{font-size:20px;color:var(--gray-mid);cursor:pointer;line-height:1;background:none;border:none}
.jd-sec{padding:18px 28px;border-bottom:1px solid var(--rule)}
.jd-sec:last-child{border-bottom:none}
.jd-sec[hidden]{display:none}
.jd-flbl{font-size:10px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.jd-seg{display:flex;gap:8px;flex-wrap:wrap}
.jd-seg .opt{font-size:12px;padding:9px 14px;border:1px solid var(--rule);background:var(--white);color:var(--gray-txt);cursor:pointer;font-family:'Archivo',sans-serif;text-align:left}
.jd-seg .opt.sel{border-color:var(--gold);background:var(--gold-dim);color:var(--navy);font-weight:600}
.jd-seg .opt.new{color:var(--gray-mid);border-style:dashed}
.jd-seg .opt:disabled{opacity:.45;cursor:default}
.jd-drop{border:1px dashed var(--gold-rule);background:var(--cream);padding:18px 20px;display:flex;align-items:center;gap:16px;cursor:pointer}
.jd-drop.over{border-color:var(--gold);background:var(--gold-dim)}
.jd-drop .jd-badge{background:var(--white)}
.jd-drop-name{font-size:13px;font-weight:600;word-break:break-all}
.jd-drop-sub{font-size:11px;color:var(--gray-mid);margin-top:2px}
.jd-detect{display:grid;grid-template-columns:150px 1fr;row-gap:8px;column-gap:16px;font-size:12.5px}
.jd-detect .k{font-size:9.5px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--gray-mid);padding-top:2px}
.jd-detect .v{color:var(--ink);word-break:break-word}
.jd-detect .v code{font-family:'SF Mono',Menlo,monospace;font-size:11.5px;background:var(--cream);padding:2px 6px}
.jd-detect .ok{color:var(--green);font-weight:600}
.jd-detect .warn{color:var(--red);font-weight:600}
.jd-hint{font-size:11px;color:var(--gray-mid);margin-top:10px;line-height:1.5}
.jd-check{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--navy);margin-top:10px;padding:10px 12px;border:1px solid var(--rule);background:#fff}
.jd-check input{margin-top:2px}
.jd-check .ok{color:var(--green);font-weight:600}
.jd-check .warn{color:var(--red);font-weight:600}
.jd-field{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.jd-field label{font-size:10px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--gray-mid)}
.jd-field input,.jd-field select,.jd-field textarea{font-family:'Archivo',sans-serif;font-size:12.5px;padding:8px 10px;border:1px solid var(--rule);background:var(--white);color:var(--ink)}
.jd-field textarea{min-height:64px;resize:vertical}
.jd-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jd-trades{display:flex;flex-direction:column;gap:6px;margin-top:6px;font-size:12px;font-variant-numeric:tabular-nums}
.jd-trades label{display:flex;gap:8px;align-items:center;color:var(--gray-txt)}
.jd-modal-foot{padding:18px 28px;display:flex;justify-content:flex-end;gap:10px;background:var(--cream);align-items:center}
.jd-modal-foot .msg{flex:1;font-size:11.5px;color:var(--gray-txt);line-height:1.4}
.jd-modal-foot .msg.error{color:var(--red)}
.jd-modal-foot .msg.ok{color:var(--green)}
.jd-btn{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;padding:12px 22px;cursor:pointer;border:1px solid var(--rule);background:var(--white);color:var(--gray-txt)}
.jd-btn.primary{background:var(--gold);color:var(--white);border-color:var(--gold)}
.jd-btn:disabled{opacity:.5;cursor:default}
@media (max-width:640px){
  .jd-slot{flex-wrap:wrap}
  .jd-actions{flex-basis:100%;justify-content:flex-start}
  .jd-detect{grid-template-columns:1fr}
  .jd-grid2{grid-template-columns:1fr}
}

/* ── P11 · los hitos de revisión en la tarjeta de underwriting ──────
   El acuse de un hito es su documento, así que estas filas son slots como
   los demás y reutilizan .jd-slot / .jd-slot.missing. Lo único propio es la
   etiqueta de estado y el tono del hito ANTERIOR AL RÉGIMEN: venció antes de
   que existiera forma de acusarlo, así que no se pinta en rojo. Pintarlo como
   un incumplimiento de hoy sería afirmar algo que la fuente no sostiene. */
.jd-review-state{font-size:9.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;margin-left:8px;color:var(--gray-mid)}
.jd-review-state.acknowledged{color:var(--navy)}
.jd-review-state.overdue_no_document{color:var(--red)}
.jd-review-state.pending{color:var(--gray-mid)}
.jd-review-state.pre_regime{color:var(--gray-mid);font-weight:600;letter-spacing:0.04em;text-transform:none;font-style:italic}
.jd-slot.pre-regime{background:transparent;opacity:0.72}
.jd-badge.pre-regime{border-style:dashed;color:var(--gray-mid);background:transparent}

/* ── P39 · agrupación por emisor en la lista de Decisions ──────────────
   `<details>` nativo: cada emisor nace plegado (decisión del CIO,
   2026-09-22) y al abrirlo aparecen sus actos. El marcador por defecto del
   navegador se retira y se dibuja uno propio para que gire con el estado
   abierto/cerrado sin depender del que cada motor pinte. */
.jd-emisor{background:var(--white);border:1px solid var(--rule);margin-bottom:10px}
.jd-emisor[open]{border-color:var(--gold-rule,var(--rule))}
.jd-emisor-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:12px 20px;cursor:pointer;user-select:none;list-style:none}
.jd-emisor-h::-webkit-details-marker{display:none}
.jd-emisor-h::before{content:'\25B8';color:var(--gray-mid);font-size:11px;
  transition:transform .15s ease;display:inline-block;flex-shrink:0}
.jd-emisor[open] > .jd-emisor-h::before{transform:rotate(90deg)}
.jd-emisor-h:hover{background:rgba(184,139,71,.04)}
.jd-emisor-n{font-size:11px;color:var(--gray-mid);letter-spacing:.06em;margin-left:auto}
/* Las tarjetas de dentro pierden su marco: el marco ya lo pone el grupo. */
.jd-emisor-b{padding:0 14px 12px}
.jd-emisor-b .jd-card{margin-bottom:10px;border-color:var(--rule)}
.jd-emisor-b .jd-card:last-child{margin-bottom:0}
@media(max-width:700px){
  .jd-emisor-h{padding:11px 14px;gap:7px}
  .jd-emisor-n{margin-left:0;width:100%}
  .jd-emisor-b{padding:0 8px 10px}
}
