/* ============================================================
   DOSSIER THEME — commission breakdown pages
   Dramatic red takeover on the Monexus chrome.
   Red ramp: #F0473F / #C0252C / #7E1218 on ink blacks.
   ============================================================ */

.dossier { --m-accent:#F0473F; --m-accent-deep:#C0252C; --m-live:#FF6B5E; }

.dossier .mnx-header {
  background:rgba(7,11,9,.9);
  border-bottom:1px solid rgba(240,71,63,.28);
}
.dossier .mnx-wordmark .mark {
  background:var(--m-accent);
  box-shadow:0 0 12px rgba(240,71,63,.8);
}
.dossier .mnx-nav a:hover { background:#1A0D0B; }
.dossier .mnx-nav a.active { color:#070B09; background:var(--m-accent); }
.dossier ::selection { background:var(--m-accent); color:#070B09; }
.dossier a { color:var(--flare-400); }

/* blood-red vignette + halftone texture over whole page */
.dossier::before {
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse at 50% -10%, rgba(192,37,44,.16), transparent 55%),
    radial-gradient(ellipse at 50% 110%, rgba(126,18,24,.22), transparent 60%);
}
.dossier main { position:relative; z-index:1; }

.dossier .red-halftone {
  background-image:radial-gradient(rgba(240,71,63,.28) 1px, transparent 1.4px);
  background-size:9px 9px;
}

/* ---------- masthead ---------- */
.masthead {
  border:1px solid rgba(240,71,63,.5);
  border-radius:4px; padding:34px var(--gutter);
  margin:34px 0 10px; position:relative;
  background:linear-gradient(180deg, #140908 0%, #0B0A0E 100%);
}
.masthead::before {
  content:""; position:absolute; inset:6px;
  border:1px solid rgba(240,71,63,.22); border-radius:2px; pointer-events:none;
}
.masthead .eyebrow {
  font-family:var(--m-font-signal); font-size:11px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--flare-400);
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.masthead h1 {
  font-family:var(--m-font-story); font-weight:700;
  font-size:clamp(34px, 5.6vw, 68px); line-height:1.04;
  letter-spacing:-.01em; color:#F6EFEA; margin:16px 0 6px;
  text-shadow:0 0 42px rgba(240,71,63,.35);
}
.masthead .sub {
  font-family:var(--m-font-story); font-style:italic; font-size:18px;
  color:var(--flare-400);
}
.dossier .masthead .stamp {
  position:absolute; right:26px; top:26px;
  width:92px; height:92px; border-radius:50%;
  background:rgba(11,10,14,.6);
  border:2px solid rgba(240,71,63,.75);
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:var(--m-font-signal); font-size:10px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--flare-400);
  transform:rotate(12deg);
  box-shadow:0 0 0 6px rgba(240,71,63,.08), inset 0 0 24px rgba(240,71,63,.15);
}
.masthead .facts { margin-top:22px; display:flex; flex-wrap:wrap; gap:26px; }
.masthead .fact .l { font-family:var(--m-font-signal); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#A88F8A; }
.masthead .fact .v { font-size:15px; color:#EFE6E2; margin-top:3px; font-weight:600; }

/* ---------- section frames ---------- */
.dossier section { position:relative; }
.dossier .frame-head {
  display:flex; align-items:center; gap:14px; margin:0 0 22px;
}
.dossier .frame-head .no {
  font-family:var(--m-font-signal); color:var(--flare-500);
  border:1px solid rgba(240,71,63,.5); padding:3px 9px; border-radius:4px;
  font-size:12px; letter-spacing:.1em;
}
.dossier .frame-head h2 {
  font-family:var(--m-font-story); font-size:clamp(22px,2.8vw,32px);
  color:#F6EFEA; font-weight:600;
}
.dossier .frame-head .line { flex:1; height:1px; background:linear-gradient(90deg, rgba(240,71,63,.5), transparent); }

.dossier .panel {
  background:rgba(15,10,10,.72);
  border:1px solid rgba(240,71,63,.22); border-radius:var(--radius);
  padding:26px;
}

/* ---------- summary lede ---------- */
.lede {
  font-family:var(--m-font-story); font-size:clamp(18px,2.2vw,22px);
  line-height:1.55; color:#E9DFDA; max-width:860px;
}
.lede::first-letter {
  font-size:2.55em; float:left; line-height:.85; padding:4px 10px 0 0;
  color:var(--flare-500); font-weight:700;
}

/* ---------- timeline thread ---------- */
.threadline { position:relative; padding-left:34px; }
.threadline::before {
  content:""; position:absolute; left:9px; top:6px; bottom:6px; width:2px;
  background:linear-gradient(180deg, var(--flare-500), rgba(240,71,63,.08));
}
.ev { position:relative; padding:0 0 26px; }
.ev::before {
  content:""; position:absolute; left:-31px; top:7px; width:12px; height:12px;
  border-radius:50%; background:#0B0A0E; border:2.5px solid var(--flare-500);
  box-shadow:0 0 0 4px rgba(240,71,63,.12);
}
.ev.major::before { background:var(--flare-500); box-shadow:0 0 14px rgba(240,71,63,.7); }
.ev .ev-date {
  font-family:var(--m-font-signal); font-size:11.5px; letter-spacing:.1em;
  color:var(--flare-400); text-transform:uppercase;
}
.ev h3 { font-family:var(--m-font-story); font-size:19px; color:#F6EFEA; margin:4px 0 6px; font-weight:600; line-height:1.3; }
.ev p { font-size:14.5px; color:#C9BBB5; font-family:var(--m-font-story); max-width:780px; }
.ev .src { margin-top:8px; font-size:12px; font-family:var(--m-font-signal); }
.ev .src a { color:#A9857F; }
.ev .ev-links { margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
.ev .ev-links a {
  font-family:var(--m-font-signal); font-size:11px; color:#E9DFDA;
  border:1px solid rgba(240,71,63,.4); border-radius:999px; padding:4px 11px;
  transition:all .15s;
}
.ev .ev-links a:hover { background:rgba(240,71,63,.15); text-decoration:none; border-color:var(--flare-500); }
.ev blockquote {
  margin:12px 0 0; padding:12px 16px; border-left:3px solid var(--flare-500);
  background:rgba(240,71,63,.06); font-family:var(--m-font-story); font-style:italic;
  font-size:15.5px; color:#EFE6E2; border-radius:0 8px 8px 0;
}
.ev blockquote cite { display:block; margin-top:6px; font-style:normal; font-size:12px; color:#A9857F; font-family:var(--m-font-signal); }

/* ---------- actor gallery ---------- */
.actor-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; }
.actor {
  background:rgba(15,10,10,.72); border:1px solid rgba(240,71,63,.2);
  border-radius:var(--radius); padding:18px 16px 16px; text-align:center;
  transition:border-color .2s, transform .2s;
}
.actor:hover { border-color:rgba(240,71,63,.55); transform:translateY(-3px); }
.actor .portrait {
  width:132px; height:132px; margin:0 auto 12px; border-radius:50%;
  overflow:hidden; border:2px solid rgba(240,71,63,.5);
  box-shadow:0 0 0 5px rgba(240,71,63,.1), 0 8px 26px rgba(0,0,0,.5);
  background:radial-gradient(circle at 35% 30%, #241210, #0B0A0E 70%);
}
.actor .portrait img { width:100%; height:100%; object-fit:cover; display:block; }
.actor .name { font-family:var(--m-font-story); font-weight:600; font-size:16.5px; color:#F6EFEA; }
.actor .role { font-family:var(--m-font-signal); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--flare-400); margin-top:5px; }
.actor .aff { font-size:12px; color:#A9857F; margin-top:5px; }
.actor .soc { margin-top:9px; font-family:var(--m-font-signal); font-size:11.5px; }
.actor .soc a { color:#E9DFDA; }

/* ---------- tree diagram ---------- */
.tree-wrap { overflow:auto; }
.tree-svg { display:block; max-width:none; }
.tree-svg .node rect {
  fill:#140B0A; stroke:rgba(240,71,63,.45); stroke-width:1.2; rx:8;
}
.tree-svg .node.major rect { stroke:var(--flare-500); stroke-width:2; filter:drop-shadow(0 0 6px rgba(240,71,63,.35)); }
.tree-svg .node text { fill:#EFE6E2; font-family:var(--m-font-structure); font-size:12.5px; font-weight:600; }
.tree-svg .node .sub { fill:#A9857F; font-family:var(--m-font-signal); font-size:9.5px; letter-spacing:.06em; }
.tree-svg .link { stroke:rgba(240,71,63,.35); stroke-width:1.4; fill:none; }
.tree-svg .node { cursor:pointer; }
.tree-svg .node:hover rect { fill:#241210; }
.tree-svg .node .ev-dot { fill:var(--flare-500); }
.tree-svg .node .act-dot { fill:var(--solar-400); }

/* ---------- sources archive ---------- */
.src-list { columns:2 340px; column-gap:34px; }
.src-list .s { break-inside:avoid; padding:12px 2px; border-bottom:1px solid rgba(240,71,63,.14); }
.src-list .s .pub { font-family:var(--m-font-signal); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--flare-400); }
.src-list .s a { font-family:var(--m-font-story); font-size:15px; color:#E9DFDA; line-height:1.4; display:block; margin-top:3px; }
.src-list .s a:hover { color:var(--flare-400); }
.src-list .s .d { font-size:11.5px; color:#A88F8A; font-family:var(--m-font-signal); margin-top:3px; }

/* ---------- thread AI ---------- */
.thread-panel { position:relative; }
.thread-ui { display:grid; grid-template-columns:280px 1fr; gap:22px; }
@media (max-width:860px) { .thread-ui { grid-template-columns:1fr; } }
.thread-side { font-size:13.5px; color:#C9BBB5; }
.thread-side h4 { font-family:var(--m-font-signal); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--flare-400); margin-bottom:10px; }
.thread-side .sugg { display:block; width:100%; text-align:left; background:none; border:1px solid rgba(240,71,63,.25); border-radius:10px; color:#E9DFDA; font-family:var(--m-font-story); font-size:13.5px; padding:10px 13px; margin-bottom:8px; cursor:pointer; transition:all .15s; }
.thread-side .sugg:hover { background:rgba(240,71,63,.12); border-color:rgba(240,71,63,.6); }
.thread-chat { display:flex; flex-direction:column; gap:14px; }
.thread-msgs { display:flex; flex-direction:column; gap:14px; max-height:480px; overflow-y:auto; padding-right:6px; }
.thread-msgs::-webkit-scrollbar { width:8px; }
.thread-msgs::-webkit-scrollbar-thumb { background:rgba(240,71,63,.35); border-radius:4px; }
.tmsg { max-width:88%; padding:14px 16px; border-radius:14px; font-size:14.5px; line-height:1.55; }
.tmsg.user { align-self:flex-end; background:rgba(240,71,63,.16); border:1px solid rgba(240,71,63,.35); color:#F6EFEA; border-bottom-right-radius:4px; }
.tmsg.ai { align-self:flex-start; background:#140B0A; border:1px solid rgba(240,71,63,.2); color:#E9DFDA; border-bottom-left-radius:4px; }
.tmsg.ai .srcs { margin-top:10px; display:flex; flex-direction:column; gap:6px; }
.tmsg.ai .srcs a {
  display:block; font-family:var(--m-font-signal); font-size:11.5px;
  color:var(--flare-400); border:1px solid rgba(240,71,63,.25); border-radius:8px;
  padding:7px 10px; transition:background .15s;
}
.tmsg.ai .srcs a:hover { background:rgba(240,71,63,.1); text-decoration:none; }
.tmsg .caret { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--flare-500); margin-right:7px; animation:blink 1.2s infinite; vertical-align:middle; }
.thread-input { display:flex; gap:10px; align-items:stretch; }
.thread-input textarea {
  flex:1; min-width:0; background:#140B0A; border:1px solid rgba(240,71,63,.3); border-radius:12px;
  color:#F6EFEA; font-family:var(--m-font-structure); font-size:14.5px;
  padding:13px 15px; resize:none; min-height:52px; outline:none;
}
.thread-input textarea:focus { border-color:var(--flare-500); box-shadow:0 0 0 3px rgba(240,71,63,.15); }
.thread-input button {
  background:var(--flare-500); color:#070B09; font-weight:800; border:none;
  border-radius:12px; padding:0 26px; min-height:52px; font-family:var(--m-font-structure);
  font-size:14px; letter-spacing:.04em; cursor:pointer; transition:all .15s;
}
.thread-input button:hover { background:var(--flare-400); box-shadow:0 0 24px rgba(240,71,63,.45); }
.thread-input button:disabled { opacity:.5; cursor:wait; }
.tmsg.err { background:rgba(240,71,63,.1); border-color:rgba(240,71,63,.5); color:#FFB3AD; }

/* ---------- status ribbon ---------- */
.ribbon {
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  font-family:var(--m-font-signal); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  padding:9px 16px; border-radius:8px;
  border:1px solid rgba(240,71,63,.3); background:rgba(240,71,63,.07);
  color:var(--flare-400); margin-bottom:22px;
}

@media (max-width:760px) {
  .masthead .stamp { display:none; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1 !important; transform: none !important; }
  * { scroll-behavior: auto !important; }
}

/* Accessibility: focus */
:focus-visible { outline: 2px solid #FF6B5E; outline-offset: 3px; border-radius: 2px; }
