/* SENTINEL by MORGAN — widget styles layered over terminal.css (vendored GMT visual system).
   Only additive classes live here; terminal.css stays pristine for easy re-vendoring. */

/* ---------- bureau bulletin band (anchored under the command bar; hidden when empty) ---------- */
:root{--bulh:0px}
#bulletinbar{
  height:30px;display:flex;align-items:stretch;
  background:#0A0505;border-bottom:1px solid var(--line2);font-size:11px;
}
#bulletinbar[hidden]{display:none}
.bul-ctl{
  display:flex;align-items:center;padding:0 9px;flex:0 0 auto;
  background:var(--dn);color:#000;font-weight:800;letter-spacing:1px;font-size:10px;
}
#bul-viewport{flex:1;min-width:0;display:flex;align-items:center;overflow:hidden}
#bul-item{
  display:flex;align-items:center;gap:8px;padding:0 10px;width:100%;
  white-space:nowrap;overflow:hidden;cursor:pointer;
}
#bul-item:hover{background:#141008}
#bul-item .bul-pri{flex:0 0 auto;font-weight:800;font-size:9px;padding:1px 5px;border:1px solid}
.bul-FLASH{color:#fff;background:var(--dn);border-color:var(--dn);animation:bulpulse 1.6s steps(2) infinite}
@keyframes bulpulse{50%{opacity:.55}}
@media (prefers-reduced-motion: reduce){.bul-FLASH{animation:none}}
.bul-DEVELOPING{color:var(--amber);border-color:var(--amber)}
.bul-UPDATE{color:var(--ink-dim);border-color:var(--line)}
#bul-item .bul-head{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
#bul-item .bul-meta{flex:0 0 auto;color:var(--ink-faint);font-size:9px}
.bul-nav{display:flex;align-items:center;gap:2px;padding:0 6px;border-left:1px solid var(--line2);flex:0 0 auto;color:var(--ink-dim);font-size:9px}
.bul-nav button{color:var(--org);padding:0 6px;height:100%}
.bul-nav button:hover{background:var(--org);color:#000}
/* canvas drops below the band when it is visible (JS sets --bulh) */
#canvas{top:calc(var(--cmdh) + var(--bulh) + var(--tapeh))}

/* ---------- standing disclaimer footer ---------- */
#disclaimer{
  position:fixed;left:0;right:0;bottom:0;z-index:400;
  background:var(--bg2);border-top:1px solid var(--line2);
  color:var(--ink-dim);font-size:9px;line-height:1.5;padding:3px 10px;
  font-family:var(--mono);
}
#disclaimer b{color:var(--org)}
#disclaimer a{color:var(--org)}
#canvas{padding-bottom:30px}

/* ---------- candidate desk ---------- */
.s-sect{
  padding:4px 8px 2px;font-size:10px;font-weight:800;letter-spacing:1px;
  color:var(--ink-dim);border-bottom:1px solid var(--line);
}
.s-cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));
  gap:6px;padding:6px 8px;
}
.s-card{
  background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--flat);
  padding:6px 8px;cursor:pointer;
}
.s-card:hover,.s-card:focus{border-color:var(--org);outline:none}
.s-card.buy,.s-card.bullish{border-left-color:var(--up)}
.s-card.sell,.s-card.bearish{border-left-color:var(--dn)}
.s-card.watch,.s-card.tracking{border-left-color:var(--amber)}
.s-head{display:flex;justify-content:space-between;align-items:baseline}
.s-tk{font-size:14px;font-weight:800;color:var(--ink)}
.s-stance{font-size:10px;font-weight:800;letter-spacing:.5px}
.s-stance i{font-style:normal;color:var(--ink-faint);font-weight:500;margin-left:5px;text-transform:lowercase}
.s-conv{display:flex;align-items:center;gap:6px;margin:5px 0 3px}
.s-convbar{flex:1;height:5px;background:var(--surface2);border:1px solid var(--line2);overflow:hidden}
.s-convbar span{display:block;height:100%;background:var(--org)}
.s-conv b{font-size:11px;color:var(--ink-dim);width:20px;text-align:right}
.s-meta{font-size:9px;color:var(--ink-dim);margin-bottom:3px}
.s-comp{font-size:9px;color:var(--ink-faint);margin-bottom:3px}
.s-chips{display:flex;flex-wrap:wrap;gap:3px;margin:2px 0}
.s-flag{color:var(--dn);font-size:9px;font-weight:700;margin:2px 0}
.s-thesis{
  color:var(--ink-dim);font-size:9.5px;margin:4px 0 0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}

/* ---------- book vs mandate ---------- */
.s-book{display:flex;gap:14px;flex-wrap:wrap;padding:4px 8px}
.s-venue{min-width:200px;flex:1}
.s-vhead{font-size:10px;padding:2px 0;border-bottom:1px solid var(--line)}
.s-vhead b{color:var(--org);text-transform:uppercase;letter-spacing:1px}

/* ---------- theme acceleration ---------- */
.s-trow{padding:4px 0;border-bottom:1px solid var(--line);cursor:pointer}
.s-trow:hover,.s-trow:focus{background:var(--row);outline:none}
.s-tname{font-size:10.5px;font-weight:700;color:var(--ink)}
.s-tstat{font-size:9px;color:var(--ink-dim);margin:1px 0}
.s-tbar{height:4px;background:var(--surface2);border:1px solid var(--line2);margin:2px 0}
.s-tbar span{display:block;height:100%}

/* ---------- desk wire (2-col variant of .news-item: cat + headline, no time column) ---------- */
.news-item.s-wireitem{grid-template-columns:70px 1fr}

/* ---------- wire category colours ---------- */
.wcat-REGIME{color:var(--cyan)}
.wcat-NEW{color:var(--up)}
.wcat-PROMOTE{color:var(--up)}
.wcat-DEMOTE{color:var(--dn)}
.wcat-THESIS{color:var(--org)}
.wcat-ASSESSMENT{color:var(--org)}
.wcat-FLAG{color:var(--dn)}
.wcat-MW{color:var(--amber)}
.wcat-TRIAGE{color:var(--ink-dim)}
