

* { box-sizing: border-box; }

body { font-size: 13px; }


#unreadable { flex: 0 0 auto; padding: 8px 14px; border-bottom: 1px solid var(--down);
  background: rgba(255,92,77,0.10); color: var(--down); font-family: var(--mono); font-size: 12px;
  line-height: 1.5; overflow-wrap: anywhere; }
#unreadable p { margin: 0; }
#unreadable p + p { margin-top: 4px; }
table, .mono, td, th, input[type="number"] { font-family: var(--mono); font-variant-numeric: tabular-nums; }





#bar-nav { display: none; }
#nav.tabs-arranging { touch-action: none; cursor: grabbing; }

#nav.tabs-arrange .tab { touch-action: none; }
#nav .tab.tab-drag { opacity: .65; background: var(--panel); border-radius: 6px; cursor: grabbing; }


#home-setup { flex: 0 0 auto; display: grid; gap: 10px; padding: 10px 16px 0;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
#home-setup:empty { display: none; }
.su-box { border: 1px solid var(--grid); border-radius: 4px; background: var(--panel);
  padding: 9px 12px; display: flex; flex-direction: column; gap: 6px; font-size: 12px; }
.su-box h3 { margin: 0 0 2px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; display: flex; align-items: baseline;
  gap: 8px; }
.su-box h3 .su-state { text-transform: none; letter-spacing: 0; font-weight: 400;
  font-size: 11px; color: var(--dim); }
.su-row { display: flex; align-items: center; gap: 8px; }
.su-row label { flex: 0 0 60px; color: var(--dim); font-family: var(--mono);
  font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.su-row select, .su-row input { flex: 1 1 auto; min-width: 0; font: inherit; font-size: 12px; }
.su-seg { display: inline-flex; }
.su-seg button { font: inherit; font-size: 12px; padding: 3px 10px; background: var(--panel);
  color: var(--dim); border: 1px solid var(--grid); cursor: pointer; margin-left: -1px; }
.su-seg button:first-child { border-radius: 3px 0 0 3px; margin-left: 0; }
.su-seg button:last-child { border-radius: 0 3px 3px 0; }
.su-seg button.active { color: var(--phosphor); border-color: var(--phosphor); }
.su-seg button.live.active { color: var(--down); border-color: var(--down); }
.su-note { color: var(--dim); font-size: 11px; min-height: 14px; }
.su-note.ok { color: var(--up); } .su-note.bad { color: var(--down); }
.su-link { background: none; border: none; color: var(--phosphor); cursor: pointer;
  font: inherit; font-size: 11px; padding: 0; }
.su-summary { display: none; align-items: center; gap: 8px; width: 100%; text-align: left;
  background: var(--panel); border: 1px solid var(--grid); border-radius: 4px; padding: 8px 12px;
  color: var(--dim); font: inherit; font-size: 12px; cursor: pointer; }
.su-summary b { color: var(--text); font-weight: 500; }
.su-summary .su-caret { margin-left: auto; color: var(--phosphor); }
#home-setup.open .su-summary .su-caret { transform: rotate(180deg); }


main {
  flex: 1 1 auto;
  overflow: auto;
  padding: 0 8px;
}

table { width: 100%; border-collapse: collapse; white-space: nowrap; }

thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  text-align: right;
  color: var(--dim);
  font-weight: 500;
  padding: 8px 14px;
  background: var(--bg);
  border-bottom: 1px solid var(--grid);
}
thead th.left { text-align: left; }

tbody td {
  position: relative;              
  z-index: 1;
  text-align: right;
  padding: 6px 14px;
  border-bottom: 1px solid var(--grid);
  font-variant-numeric: tabular-nums;
}
tbody td.left { text-align: left; }
tbody tr:hover { background: color-mix(in srgb, var(--phosphor) 5%, transparent); }

.sym { color: var(--phosphor); font-weight: 600; }
.name { color: var(--dim); }
.up { color: var(--up); }
.down { color: var(--down); }
.flat { color: var(--flat); }
#board td.spark { text-align: center; padding: 2px 8px; }
#board td.spark svg { vertical-align: middle; display: inline-block; }


td.tick-up { animation: flashUp 0.6s ease-out; }
td.tick-down { animation: flashDown 0.6s ease-out; }
@keyframes flashUp {
  from { color: #eafff0; text-shadow: 0 0 8px var(--up); }
  to { text-shadow: none; }
}
@keyframes flashDown {
  from { color: #ffecea; text-shadow: 0 0 8px var(--down); }
  to { text-shadow: none; }
}

#foot {
  flex: 0 0 auto;
  color: var(--faint);
  font-family: var(--mono);
  font-size: 11px;
  padding: 7px 14px;
  border-top: 1px solid var(--line);
}



.view { display: none; flex: 1 1 auto; min-height: 0; }
.view.active { display: flex; flex-direction: column; }


#chart-toolbar {
  flex: 0 0 auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); font-size: 12px;
}
#chart-toolbar .group {
  display: inline-flex; align-items: center; gap: 6px;
  padding-left: 10px; border-left: 1px solid var(--grid);
}
#chart-toolbar input, #chart-toolbar button { padding: 4px 7px; font-size: 12px;
}
#chart-symbol { width: 230px; }
#note-text { width: 120px; }
#chart-toolbar button { cursor: pointer; }
#chart-toolbar button.active { border-color: var(--phosphor); color: var(--phosphor); }

#chart-toolbar label { color: var(--dim); display: inline-flex; align-items: center; gap: 4px; }
.upload { cursor: pointer; border: 1px solid var(--grid); border-radius: 3px; padding: 4px 8px; color: var(--dim); }
.upload input[type=file] { display: none; }

#chart-toolbar select {
  background: var(--panel); color: var(--text); border: 1px solid var(--grid);
  border-radius: 3px; padding: 3px 5px; font-family: var(--mono); font-size: 12px;
}
#chart-toolbar input[type=date] { width: 122px; color-scheme: dark; }
.dash { color: var(--dim); }

#chart-body { flex: 1 1 auto; display: flex; min-height: 0; }
#chart-main { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
#chart-wrap { flex: 1 1 auto; position: relative; min-width: 0; min-height: 0; }
#chart-canvas, #chart-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
#chart-overlay { cursor: crosshair; }
#chart-readout {
  position: absolute; top: 8px; left: 12px; font-size: 12px; color: var(--text);
  background: rgba(5,7,5,0.72); padding: 4px 8px; border: 1px solid var(--grid);
  border-radius: 3px; pointer-events: none; white-space: pre; line-height: 1.5;
}
#chart-empty {
  position: absolute; inset: 0; display: flex; align-items: center;
  justify-content: center; color: var(--dim);
}
#chart-side { flex: 0 0 320px; display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--grid); }
#chart-news { flex: 1 1 auto; padding: 12px 14px; overflow-y: auto; min-height: 0; }
#chart-news h3 { color: var(--phosphor); margin: 0 0 8px; font-size: 13px; font-weight: 600; }
.muted { color: var(--dim); }


#chart-legend {
  flex: 0 0 auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 0 12px; font-size: 11px; max-height: 0; overflow: hidden;
  transition: max-height 0.15s, padding 0.15s;
}
#chart-legend.on { max-height: 90px; padding: 6px 12px; border-bottom: 1px solid var(--grid); overflow-y: auto; }
.leg {
  display: inline-flex; align-items: baseline; gap: 6px; padding: 2px 7px;
  border: 1px solid var(--grid); border-radius: 3px; background: var(--panel);
}
.leg-swatch { width: 9px; height: 9px; border-radius: 2px; align-self: center; }
.leg-sym { color: var(--text); font-weight: 600; }
.leg-val { color: var(--dim); font-variant-numeric: tabular-nums; }
.leg-drop { background: none; border: none; color: var(--dim); cursor: pointer; padding: 0 0 0 2px; font-size: 11px; }
.leg-drop:hover { color: var(--down); }
.leg-warn { color: var(--flat); }


#ops-panel {
  flex: 0 0 auto; padding: 12px 14px; border-bottom: 1px solid var(--grid);
  display: flex; flex-direction: column; gap: 7px; max-height: 62%; overflow-y: auto;
}
#ops-panel.closed { display: none; }
#ops-panel h3 { color: var(--phosphor); margin: 0; font-size: 13px; font-weight: 600; }
#ops-panel select, #ops-panel input, #ops-panel textarea, #ops-panel button { padding: 4px 7px; font-size: 12px;
}
#ops-panel textarea { resize: vertical; line-height: 1.45; white-space: pre; overflow-x: auto; }
#ops-panel button { cursor: pointer; }

#ops-panel button.active { border-color: var(--phosphor); color: var(--phosphor); }
#ops-panel .group { display: inline-flex; gap: 6px; }
.ops-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ops-hint { font-size: 11px; line-height: 1.5; margin: 0; word-break: break-word; }
#ops-editor { display: flex; flex-direction: column; gap: 6px; }
#ops-editor.closed { display: none; }
.ops-status { font-size: 11px; line-height: 1.5; min-height: 1em; }
.ops-status.error { color: var(--down); white-space: pre-wrap; }
.ops-status.ok { color: var(--up); }


#ops-pane { flex: 0 0 34%; display: flex; flex-direction: column; border-top: 1px solid var(--grid); min-height: 0; }
#ops-pane.closed { display: none; }
#ops-pane-head { flex: 0 0 auto; display: flex; align-items: baseline; gap: 10px; padding: 5px 12px; font-size: 11px; border-bottom: 1px solid var(--grid); }
#ops-pane-title { color: var(--phosphor); font-weight: 600; }
#ops-pane-note { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#ops-pane-close { background: none; border: none; color: var(--dim); cursor: pointer; }
#ops-pane-close:hover { color: var(--text); }
#ops-export {
  background: var(--panel); color: var(--dim); border: 1px solid var(--grid);
  border-radius: 3px; padding: 2px 8px; font-family: var(--mono); font-size: 11px;
  cursor: pointer;
}
#ops-export:hover { border-color: var(--phosphor); color: var(--phosphor); }
#ops-wrap { flex: 1 1 auto; position: relative; min-height: 0; }
#ops-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }


#wl-toolbar { flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); flex-wrap: wrap; }
#wl-add { min-width: 280px; }
#wl-status { font-size: 11px; }
th.wl-x, td.wl-x { width: 64px; padding-left: 0; padding-right: 6px; white-space: nowrap; text-align: right; }
td.wl-x button { background: none; border: none; color: var(--grid); cursor: pointer;
  font: inherit; font-size: 13px; line-height: 1; padding: 0 4px; }
tr:hover td.wl-x button { color: var(--dim); }
td.wl-x button:hover { color: var(--down); }

td.wl-x .wl-tape { font-size: 10px; letter-spacing: 0.04em; text-transform: uppercase; }
td.wl-x .wl-tape.on, tr:hover td.wl-x .wl-tape.on, td.wl-x .wl-tape:hover { color: var(--phosphor); }


#home-scroll { flex: 1 1 auto; overflow-y: auto; padding: 12px 16px 28px; min-height: 0; }

#home-cards { column-width: 340px; column-gap: 12px; }
.hcard { break-inside: avoid; -webkit-column-break-inside: avoid;
  border: 1px solid var(--grid); border-radius: 4px; background: var(--panel);
  padding: 10px 12px; margin: 0 0 12px; }
.hcard h3, #home-feed h3 { margin: 0 0 8px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; display: flex; align-items: baseline;
  gap: 8px; flex-wrap: wrap; }
.hc-when { text-transform: none; letter-spacing: 0; font-size: 11px; font-weight: 400; }
.hc-body { display: flex; flex-direction: column; gap: 5px; font-size: 12px; }
.hc-row { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; line-height: 1.4; }
.hc-click { cursor: pointer; }
.hc-click:hover { color: var(--phosphor); }
.hc-empty, .hc-dim, .hc-sub { color: var(--dim); }
.hc-sub { font-size: 11px; padding-left: 10px; }
.hc-num, .hc-day { font-family: var(--mono); color: var(--text); }
.hc-sym { font-family: var(--mono); color: var(--phosphor); }
.hc-up { color: var(--up); } .hc-down { color: var(--down); }
.hc-text { flex: 1 1 160px; min-width: 0; }
.hc-prose { margin: 2px 0 4px; color: var(--text); line-height: 1.45; }
.hc-insight { align-items: flex-start; }
.hc-chips { gap: 5px; }
.hc-alert { color: var(--warn); }
.hc-link { background: none; border: none; color: var(--phosphor); cursor: pointer;
  font: inherit; font-size: 11px; padding: 0; text-align: left; align-self: flex-start; }
.hc-link:hover { text-decoration: underline; }

#home-feed { margin-top: 20px; max-width: 920px; }
.refresh { background: none; border: none; color: var(--dim); cursor: pointer; font-size: 13px; }
.refresh:hover { color: var(--phosphor); }

.newslist { display: flex; flex-direction: column; }

.news-more { padding: 10px 0 20px; font-size: 11px; text-align: center; }
.news-item { padding: 9px 0; border-bottom: 1px solid var(--grid); cursor: pointer; }
.news-item:hover .news-head { color: var(--phosphor); }
.news-head { color: var(--text); line-height: 1.35; }
.news-meta { color: var(--dim); font-size: 11px; margin-top: 3px; }
.news-tickers { margin-top: 5px; display: flex; flex-wrap: wrap; gap: 4px; }
.ticker-chip {
  background: rgba(127,232,200,0.12); color: var(--phosphor); border: 1px solid rgba(127,232,200,0.3);
  border-radius: 3px; padding: 1px 6px; font-family: var(--mono); font-size: 11px; cursor: pointer;
}
.ticker-chip:hover { background: rgba(127,232,200,0.25); }


.news-top { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.news-src { display: inline-block; font-family: var(--mono); font-size: 10px; letter-spacing: .06em;
  text-transform: uppercase; padding: 0 6px; border-radius: var(--r-chip); line-height: 16px;
  border: 1px solid var(--line); color: var(--muted); white-space: nowrap; }
.news-src.cat-markets { color: var(--info); border-color: rgba(124,196,255,.35); }
.news-src.cat-gov { color: var(--warn); border-color: rgba(255,194,71,.35); }
.news-src.cat-ticker { color: var(--phosphor); border-color: var(--glow-strong); }
.news-when { margin-left: auto; font-family: var(--mono); font-size: 11px; color: var(--faint); white-space: nowrap; }
.news-snip { color: var(--muted); font-size: 12px; line-height: 1.4; margin-top: 3px;
  overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.news-day { position: sticky; top: 0; z-index: 1; background: var(--ink); color: var(--phosphor);
  font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  padding: 10px 0 4px; border-bottom: 1px solid var(--line); }
.news-item.news-rich { padding: 10px 10px 10px 12px; margin: 0 -10px 0 -12px; border-left: 2px solid transparent;
  border-radius: 0; }
.news-item.news-rich .news-head { font-size: 13.5px; font-weight: 500; }
.news-item.read .news-head { color: var(--muted); font-weight: 400; }
.news-item.sel { border-left-color: var(--phosphor); background: var(--glow); }
.news-item.sel .news-head { color: var(--phosphor-bright); }
#news-searchwrap { position: relative; display: inline-flex; }
#news-clear { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); background: none;
  border: none; color: var(--muted); font-size: 14px; padding: 0 6px; cursor: pointer; }
#news-clear[hidden] { display: none; }
#news-sources { flex-wrap: wrap; }
#news-sources:empty { display: none; }
#news-sources button { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase;
  padding: 2px 7px; }
#news-ingest { flex: 0 0 auto; margin: 0; padding: 6px 12px; border-bottom: 1px solid var(--grid); }
#news-reader.empty { display: flex; align-items: center; justify-content: center; text-align: center; }
.news-empty { color: var(--faint); font-size: 12px; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.news-empty-mark { font-size: 28px; color: var(--line-strong); }
.news-keys { color: var(--faint); font-size: 11px; }
.news-keys b { color: var(--muted); font-family: var(--mono); font-weight: 500; }
.news-rd-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.news-rd-when { font-family: var(--mono); font-size: 11px; color: var(--muted); }
#news-reader h3 { font-family: var(--display); font-size: 19px; font-weight: 500; line-height: 1.25; color: var(--bone); margin: 0 0 10px;
  text-transform: none; letter-spacing: 0; }   
.news-rd-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 14px 0 6px; }
#news-reader a.news-open { display: inline-block; padding: 5px 12px; border-radius: var(--r-ctl); background: var(--phosphor);
  color: var(--phosphor-ink); font-weight: 600; text-decoration: none; }
#news-reader a.news-open:hover { background: var(--phosphor-bright); color: var(--phosphor-ink); text-decoration: none; }
.news-rd-graph { margin-top: 14px; padding-top: 10px; border-top: 1px dashed var(--line); }
.news-rd-graph h4 { margin: 0 0 6px; font-family: var(--mono); font-size: 10px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--phosphor); font-weight: 500; }
.news-rd-graph .g-chip { cursor: pointer; margin: 0 4px 4px 0; }
.news-rd-graph .g-chip:hover { border-color: var(--phosphor); color: var(--phosphor); }
#news-close { display: none; margin-left: auto; background: none; border: none; color: var(--muted); font-size: 16px; cursor: pointer; }

#news-toolbar {
  flex: 0 0 auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); font-size: 12px;
}
#news-toolbar input, #news-toolbar button { padding: 4px 8px; font-size: 12px; cursor: pointer;
}
#news-search { width: 260px; cursor: text; }
#news-toolbar .group { display: inline-flex; gap: 6px; padding-left: 10px; border-left: 1px solid var(--grid); }
#news-toolbar button.active { border-color: var(--phosphor); color: var(--phosphor); }
#news-status { margin-left: auto; }

#news-body { flex: 1 1 auto; display: flex; min-height: 0; }
#news-list { flex: 1 1 auto; overflow-y: auto; padding: 4px 16px; }
#news-reader { flex: 0 0 380px; border-left: 1px solid var(--grid); padding: 16px 18px; overflow-y: auto; }
#news-reader h3 { color: var(--phosphor); margin: 0 0 8px; font-size: 15px; line-height: 1.3; }
.news-summary { color: var(--text); line-height: 1.5; margin: 12px 0; }
.news-open { color: var(--up); text-decoration: none; }
.news-open:hover { text-decoration: underline; }


#ai-toggle {
  margin-left: 14px; background: rgba(127,232,200,0.14); color: var(--phosphor);
  border: 1px solid rgba(127,232,200,0.4); border-radius: 4px; padding: 3px 10px;
  font-family: var(--mono); font-size: 12px; cursor: pointer;
}
#ai-toggle:hover { background: rgba(127,232,200,0.28); }
#logout { margin-left: 8px; background: transparent; color: var(--dim); border: 1px solid var(--grid);
  border-radius: 4px; padding: 3px 9px; font-family: var(--mono); font-size: 12px; cursor: pointer; }
#logout:hover { color: var(--down); border-color: var(--down); }
#notify-toggle { margin-left: 8px; background: transparent; border: 1px solid var(--grid); border-radius: 4px;
  padding: 2px 7px; font-size: 13px; cursor: pointer; }
#notify-toggle:hover { border-color: var(--phosphor); }


.modal-overlay {
  position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0.55);
}
.modal-overlay.closed { display: none; }
.modal {
  background: var(--panel); border: 1px solid var(--grid); border-radius: 8px; width: 380px; max-width: 92vw;
  box-shadow: 0 12px 48px rgba(0,0,0,0.5);
}
.modal-head {
  display: flex; align-items: center; justify-content: space-between; padding: 12px 14px;
  border-bottom: 1px solid var(--grid); color: var(--phosphor); font-weight: 600;
}
.modal-head button { background: none; border: none; color: var(--dim); cursor: pointer; font-size: 14px; }
.modal-head button:hover { color: var(--text); }
.modal-body { padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.nrow { display: flex; align-items: center; gap: 8px; color: var(--dim); font-size: 13px; }
.nrow input[type=text], .nrow input:not([type]), #notify-topic, #notify-server, #notify-url {
  flex: 1 1 auto; background: var(--bg); color: var(--text); border: 1px solid var(--grid);
  border-radius: 4px; padding: 6px 8px; font-family: var(--mono); font-size: 12px;
}
.nrow select { background: var(--bg); color: var(--text); border: 1px solid var(--grid);
  border-radius: 4px; padding: 5px 8px; font-family: var(--mono); font-size: 12px; }
#notify-ntfy, #notify-webhook { display: flex; flex-direction: column; gap: 8px; }
.nhint { font-size: 11px; line-height: 1.4; margin: 0; }
.nhint code { color: var(--text); }
.modal-actions { display: flex; align-items: center; gap: 8px; padding-top: 4px; }
.modal-actions button { padding: 6px 12px; font-size: 12px; cursor: pointer;
}
#notify-test { background: var(--bg); color: var(--text); border-color: var(--grid); }
.modal-actions #notify-status { margin-left: auto; }

#ai-drawer {
  position: fixed; top: 0; right: 0; height: 100vh; width: 380px; max-width: 92vw;
  background: var(--panel); border-left: 1px solid var(--grid);
  display: flex; flex-direction: column; z-index: 50;
  transition: transform 0.18s ease; box-shadow: -8px 0 24px rgba(0,0,0,0.4);
}
#ai-drawer.closed { transform: translateX(105%); }
#ai-head {
  flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-bottom: 1px solid var(--grid);
}
#ai-title { color: var(--phosphor); font-weight: 700; }
#ai-model {
  margin-left: auto; background: var(--bg); color: var(--text); border: 1px solid var(--grid);
  border-radius: 3px; padding: 3px 6px; font-family: var(--mono); font-size: 11px;
}
#ai-close { background: none; border: none; color: var(--dim); cursor: pointer; font-size: 14px; }
#ai-close:hover { color: var(--text); }

#ai-provider-bar {
  flex: 0 0 auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); font-size: 11px;
}
.ai-prov { color: var(--dim); }
.ai-ready { color: var(--up); }
.ai-not-ready { color: var(--down); }
.ai-key {
  background: var(--bg); color: var(--text); border: 1px solid var(--grid);
  border-radius: 3px; padding: 3px 6px; font-family: var(--mono); font-size: 11px; flex: 1 1 120px;
}
#ai-provider-bar button { padding: 3px 8px; font-size: 11px; cursor: pointer;
}

#ai-messages { flex: 1 1 auto; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.ai-msg { padding: 8px 10px; border-radius: 6px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; font-size: 12.5px; }
.ai-user { background: rgba(127,232,200,0.10); border: 1px solid rgba(127,232,200,0.22); align-self: flex-end; max-width: 88%; }
.ai-assistant { background: var(--bg); border: 1px solid var(--grid); align-self: flex-start; max-width: 92%; color: var(--text); }
.ai-error { color: var(--down); }


.ai-actions {
  align-self: flex-start; max-width: 92%; display: flex; flex-direction: column; gap: 6px;
  background: rgba(127,232,200,0.06); border: 1px solid rgba(127,232,200,0.28);
  border-radius: 6px; padding: 8px 10px; font-size: 12px;
}
.ai-actions-head { color: var(--phosphor); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.ai-action { display: flex; align-items: baseline; gap: 7px; line-height: 1.45; }
.ai-action-kind {
  flex: 0 0 auto; font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 3px;
  background: rgba(127,232,200,0.15); color: var(--phosphor); border: 1px solid rgba(127,232,200,0.35);
}
.ai-action-text { color: var(--text); word-break: break-word; }
.ai-action-row { display: flex; gap: 6px; padding-top: 3px; }
.ai-actions button { padding: 4px 9px; font-size: 11px; cursor: pointer;
}
.ai-actions button.ghost { background: none; color: var(--dim); border-color: var(--grid); }
.ai-actions button:disabled { opacity: 0.45; cursor: default; }
.ai-rejected { color: var(--flat); font-size: 11px; line-height: 1.45; }
.ai-mode-on { border-color: var(--phosphor) !important; color: var(--phosphor) !important; }
#ai-scope { color: var(--dim); font-size: 11px; }

#ai-input-row { flex: 0 0 auto; display: flex; gap: 6px; padding: 10px 12px; border-top: 1px solid var(--grid); }
#ai-input {
  flex: 1 1 auto; resize: none; background: var(--bg); color: var(--text);
  border: 1px solid var(--grid); border-radius: 4px; padding: 6px 8px;
  font-family: var(--mono); font-size: 12.5px;
}
#ai-input:disabled { opacity: 0.5; }
#ai-send {
  background: rgba(127,232,200,0.16); color: var(--phosphor); border: 1px solid rgba(127,232,200,0.4);
  border-radius: 4px; padding: 0 14px; font-family: var(--mono); font-size: 12px; cursor: pointer;
}
#ai-send:disabled { opacity: 0.45; cursor: default; }


#pf-toolbar {
  flex: 0 0 auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); font-size: 12px;
}
#pf-toolbar .group { display: inline-flex; gap: 6px; padding-left: 10px; border-left: 1px solid var(--grid); }
#pf-tabs { padding-left: 0; border-left: none; }
#pf-builder-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
#pf-toolbar input, #pf-toolbar button, #pf-toolbar select { padding: 4px 7px; font-size: 12px;
}
#pf-toolbar button { cursor: pointer; }
#pf-toolbar button.active { border-color: var(--phosphor); color: var(--phosphor); }

#pf-toolbar label { color: var(--dim); display: inline-flex; align-items: center; gap: 4px; }
#pf-toolbar input[type=date] { width: 122px; color-scheme: dark; }
#pf-cash { width: 96px; }
#pf-name { width: 160px; }

#pf-builder { flex: 1 1 auto; display: flex; min-height: 0; }
#pf-builder.closed { display: none; }
#pf-left { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; min-height: 0; padding: 14px 16px 0; overflow-y: auto; }
#pf-cards { margin-bottom: 12px; }
#pf-chart-head { display: flex; align-items: baseline; gap: 10px; font-size: 12px; margin-bottom: 4px; }
#pf-chart-title { color: var(--phosphor); font-weight: 600; }
#pf-chart-wrap { flex: 0 0 260px; position: relative; border: 1px solid var(--grid); border-radius: 4px; background: var(--panel); }
#pf-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
#pf-chart-readout {
  position: absolute; top: 6px; left: 10px; font-size: 11px; color: var(--text);
  background: rgba(5,7,5,0.72); padding: 3px 7px; border: 1px solid var(--grid);
  border-radius: 3px; pointer-events: none; white-space: pre; line-height: 1.5;
}
#pf-chart-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--dim); }
#pf-holdings-wrap { flex: 0 0 auto; padding: 14px 0 20px; }
#pf-holdings { width: 100%; border-collapse: collapse; white-space: nowrap; margin-bottom: 10px; }
#pf-holdings th { text-align: right; color: var(--dim); font-weight: 500; padding: 7px 12px; border-bottom: 1px solid var(--grid); font-size: 11px; }
#pf-holdings th.left { text-align: left; }
#pf-holdings td { text-align: right; padding: 6px 12px; border-bottom: 1px solid var(--grid); font-variant-numeric: tabular-nums; }
#pf-holdings td.left { text-align: left; }
#pf-holdings tbody tr { cursor: pointer; }
#pf-holdings tbody tr:hover { background: color-mix(in srgb, var(--phosphor) 5%, transparent); }
#pf-holdings tbody tr.selected { background: rgba(127,232,200,0.09); box-shadow: inset 2px 0 0 var(--phosphor); }
#pf-holdings input { background: var(--bg); color: var(--text); border: 1px solid var(--grid); border-radius: 3px; padding: 2px 5px; font-family: var(--mono); font-size: 12px; width: 82px; text-align: right; }
#pf-holdings .drop { background: none; border: none; color: var(--dim); cursor: pointer; }
#pf-holdings .drop:hover { color: var(--down); }
#pf-add-symbol { width: 190px; }
#pf-add-size, #pf-add-entry { width: 110px; }
#pf-holdings-wrap input, #pf-holdings-wrap button { padding: 4px 7px; font-size: 12px;
}
#pf-holdings-wrap button { cursor: pointer; }
#pf-broker { flex: 1 1 auto; overflow-y: auto; padding: 16px 18px; }
#pf-broker.closed { display: none; }

#pf-accounts.closed { display: none; }

#pf-accounts { flex: 1 1 auto; min-height: 0; overflow-y: auto; }


#pf-conn {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 10px 12px; margin-bottom: 16px; font-size: 12px;
  background: var(--panel); border: 1px solid var(--grid); border-radius: 5px;
}
#pf-conn .conn-label { color: var(--phosphor); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; font-size: 11px; }
#pf-conn .group { display: inline-flex; gap: 6px; padding-left: 10px; border-left: 1px solid var(--grid); }
#pf-conn label { color: var(--dim); display: inline-flex; align-items: center; gap: 5px; }
#pf-conn input, #pf-conn button, #pf-conn select { padding: 4px 7px; font-size: 12px;
}
#pf-conn button { cursor: pointer; }

#pf-conn button.active { border-color: var(--phosphor); color: var(--phosphor); }

#pf-conn button[data-bmode="live"].active { border-color: var(--down); color: var(--down); background: rgba(255,92,77,0.12); }
#pf-label { width: 92px; }
#pf-account-id { width: 170px; }
#pf-conn-status { margin-left: auto; }

#pf-mode-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 3px; letter-spacing: 1px; }
#pf-mode-badge.demo { background: rgba(87,182,255,0.13); color: #57b6ff; border: 1px solid rgba(87,182,255,0.4); }
#pf-mode-badge.live { background: rgba(255,92,77,0.16); color: var(--down); border: 1px solid rgba(255,92,77,0.55); }

#pf-mode-badge.mismatch { background: rgba(255,194,71,0.16); color: var(--warn); border: 1px solid rgba(127,232,200,0.6); }

#pf-broker.live-mode .pf-card-val { color: var(--down); }
#pf-broker.live-mode #pf-positions td.sym { color: var(--down); }
.pf-note { color: var(--flat); font-size: 11px; line-height: 1.5; margin: 0 0 12px; }
.pf-status { margin-bottom: 14px; }
.pf-account { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.pf-card { background: var(--panel); border: 1px solid var(--grid); border-radius: 5px; padding: 10px 16px; min-width: 150px; }
.pf-card-label { color: var(--dim); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.pf-card-val { color: var(--text); font-size: 18px; margin-top: 4px; font-variant-numeric: tabular-nums; }
#pf-positions { width: 100%; border-collapse: collapse; white-space: nowrap; }
#pf-positions th { text-align: right; color: var(--dim); font-weight: 500; padding: 8px 14px; border-bottom: 1px solid var(--grid); }
#pf-positions th.left { text-align: left; }
#pf-positions td { text-align: right; padding: 7px 14px; border-bottom: 1px solid var(--grid); font-variant-numeric: tabular-nums; }
#pf-positions td.left { text-align: left; }
#pf-positions tbody tr { cursor: pointer; }
#pf-positions tbody tr:hover { background: color-mix(in srgb, var(--phosphor) 5%, transparent); }



#cmdbar { position: relative; flex: 1 1 auto; min-width: 160px; align-self: stretch; display: flex; align-items: center; gap: 8px; }
#cmd-prompt { color: var(--phosphor); font-family: var(--mono); font-weight: 500; }
#cmd { flex: 1 1 auto; color: var(--phosphor); font-family: var(--mono); font-size: 13px; padding: 5px 10px; }
#cmd::placeholder { color: var(--faint); }

#cmd-menu { position: absolute; left: 0; right: 0; top: 100%; z-index: 50; max-height: 60vh; overflow-y: auto; background: var(--surface); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 6px 6px; box-shadow: 0 10px 28px rgba(0,0,0,0.45); font-family: var(--mono); font-size: 12px; }
#cmd-menu .cm-group { padding: 7px 12px 3px; color: var(--faint); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
#cmd-menu .cm-row { display: flex; align-items: baseline; gap: 10px; padding: 4px 12px; cursor: pointer; white-space: nowrap; }
#cmd-menu .cm-row.on { background: rgba(127, 232, 200, 0.10); box-shadow: inset 2px 0 0 var(--phosphor); }
#cmd-menu .cm-head { color: var(--phosphor); font-weight: 600; flex: 0 0 auto; min-width: 5.5em; }
#cmd-menu .cm-alias { color: var(--faint); flex: 0 0 10em; }
#cmd-menu .cm-args { color: var(--warn); flex: 0 0 17em; }
#cmd-menu .cm-row.on .cm-args, #cmd-menu .cm-row.on .cm-desc { color: var(--bone); }
#cmd-menu .cm-desc { color: var(--muted); flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; }
#cmd-menu .cm-none { padding: 8px 12px; color: var(--faint); }


#toasts { position: fixed; top: 14px; right: 14px; z-index: 100; display: flex; flex-direction: column; gap: 8px; max-width: 360px; }
.toast { background: var(--panel); border: 1px solid var(--grid); border-left: 3px solid var(--dim); border-radius: 4px; padding: 9px 12px; font-size: 12px; color: var(--text); box-shadow: 0 4px 16px rgba(0,0,0,0.4); transition: opacity 0.3s, transform 0.3s; }
.toast.ok { border-left-color: var(--up); }
.toast.error { border-left-color: var(--down); }
.toast.alert { border-left-color: var(--warn); color: var(--warn); }
.toast.out { opacity: 0; transform: translateX(20px); }



.snapshot { flex: 0 0 auto; position: relative; display: flex; align-items: stretch; border-bottom: 1px solid var(--grid); }
.tape { flex: 1 1 auto; min-width: 0; overflow: hidden; }
.tape.empty { min-height: 34px; }
.tape-track { display: flex; width: max-content; --tape-shift: -50%; --tape-secs: 40s; }
.tape-track.moving { animation: tape var(--tape-secs) linear infinite; }
@media (hover: hover) { .tape:hover .tape-track { animation-play-state: paused; } }
.tape-copy { display: flex; }
@keyframes tape { from { transform: translateX(0); } to { transform: translateX(var(--tape-shift)); } }
.tape-pick { flex: 0 0 auto; border: none; border-left: 1px solid var(--grid); border-radius: 0; background: transparent;
  color: var(--dim); padding: 0 12px; cursor: pointer; font-size: 15px; line-height: 1; }
.tape-pick:hover, .tape-pick.active { color: var(--phosphor); background: #0d130d; }
.tape-menu { display: none; position: absolute; right: 6px; top: calc(100% + 4px); z-index: 40; min-width: 220px; max-width: calc(100vw - 12px);
  max-height: 60vh; overflow-y: auto; background: var(--panel); border: 1px solid var(--grid); border-radius: 4px;
  padding: 8px 10px; box-shadow: 0 8px 24px rgba(0,0,0,.45); font-size: 12px; }
.tape-menu.open { display: block; }
.tape-menu-head { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 6px;
  color: var(--phosphor); text-transform: uppercase; letter-spacing: 1px; font-size: 11px; }
.tape-menu-head .hc-link { font-size: 11px; padding: 0; text-transform: none; letter-spacing: 0; }
.tape-menu-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 2px 12px; }
.tape-opt { display: flex; align-items: center; gap: 7px; padding: 3px 0; color: var(--dim); cursor: pointer;
  font-family: var(--mono); white-space: nowrap; }
.tape-opt.on { color: var(--text); }
.tape-opt input { margin: 0; accent-color: var(--phosphor); }
.snap { display: flex; align-items: baseline; gap: 8px; padding: 8px 16px; border-right: 1px solid var(--grid); cursor: pointer; white-space: nowrap; }
.snap:hover { background: #0d130d; }
.snap-sym { color: var(--phosphor); font-weight: 600; }
.snap-val { color: var(--text); font-variant-numeric: tabular-nums; }
.snap-chg { font-size: 11px; font-variant-numeric: tabular-nums; }
.snap.up .snap-chg { color: var(--up); }
.snap.down .snap-chg { color: var(--down); }
.snap.flat .snap-chg { color: var(--flat); }


.fred-attrib { color: var(--dim); font-size: 11px; line-height: 1.4; margin: 8px 0 12px; }
.fred-key { display: flex; flex-direction: column; gap: 6px; }
.fred-key .ai-key { width: 100%; }
.fred-save {
  background: rgba(127,232,200,0.16); color: var(--phosphor); border: 1px solid rgba(127,232,200,0.4);
  border-radius: 3px; padding: 4px 8px; font-family: var(--mono); font-size: 11px;
  cursor: pointer; align-self: flex-start;
}


#cal-toolbar {
  flex: 0 0 auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); font-size: 12px;
}
#cal-toolbar .group { display: inline-flex; gap: 6px; padding-left: 10px; border-left: 1px solid var(--grid); }
#cal-toolbar button { padding: 4px 8px; font-size: 12px; cursor: pointer;
}
#cal-toolbar button.active { border-color: var(--phosphor); color: var(--phosphor); }
#cal-status { margin-left: auto; }
#cal-list { flex: 1 1 auto; overflow-y: auto; padding: 4px 0 20px; }
.cal-date {
  position: sticky; top: 0; background: var(--bg); color: var(--phosphor); font-weight: 600;
  padding: 8px 16px; border-bottom: 1px solid var(--grid); text-transform: uppercase; letter-spacing: 1px; font-size: 12px;
}
.cal-group { display: flex; flex-direction: column; }
.cal-event {
  display: flex; align-items: baseline; gap: 10px; padding: 8px 16px; border-bottom: 1px solid var(--grid);
}
.cal-event:hover { background: #0d130d; }
.cal-badge {
  flex: 0 0 auto; font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 3px; letter-spacing: 0.5px;
}
.cal-badge-earnings { background: rgba(255,194,71,0.14); color: var(--warn); border: 1px solid rgba(127,232,200,0.35); }
.cal-badge-dividend { background: rgba(199,146,234,0.13); color: #c792ea; border: 1px solid rgba(199,146,234,0.35); }
.cal-badge-ipo { background: rgba(52,208,88,0.13); color: var(--up); border: 1px solid rgba(52,208,88,0.35); }
.cal-badge-econ { background: rgba(87,182,255,0.13); color: #57b6ff; border: 1px solid rgba(87,182,255,0.35); }
.cal-title { color: var(--text); }
.cal-detail { color: var(--dim); font-size: 11px; margin-left: auto; white-space: nowrap; }

.cal-event.watched { background: rgba(255,194,71,0.05); box-shadow: inset 2px 0 0 var(--warn); }
.cal-event.watched:hover { background: rgba(127,232,200,0.09); }
.cal-star { flex: 0 0 auto; color: var(--warn); font-size: 11px; }


@media (max-width: 740px) {
  body { font-size: 13px; }

  
  #clock, #status { display: none; }
  
  #ai-toggle, #notify-toggle { margin-left: 0; }

  
  #cmdbar { flex: 1 1 100%; order: 10; min-width: 0; padding: 0 0 8px; }
  #cmd { font-size: 16px; }
  #cmd-menu { max-height: 50vh; font-size: 13px; }
  #cmd-menu .cm-alias { display: none; }
  #cmd-menu .cm-row { flex-wrap: wrap; gap: 1px 8px; }
  #cmd-menu .cm-args { flex: 0 1 auto; }
  #cmd-menu .cm-desc { white-space: normal; }
  
  #cmd-menu .cm-cols .cm-desc { flex: 1 0 100%; }


  
  #view-home.active { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  #home-snapshot, #home-setup, #home-schedule { flex: 0 0 auto; }
  #home-scroll { flex: 0 0 auto; overflow: visible; min-height: auto; padding: 10px 12px 24px; }
  #home-cards { column-width: auto; column-count: 1; }
  
  #home-setup { grid-template-columns: 1fr; padding: 8px 12px 0; }
  #home-setup .su-summary { display: flex; }
  #home-setup:not(.open) .su-box { display: none; }

  
  main { padding: 0 2px; }
  thead th, tbody td { padding: 7px 8px; font-size: 12px; }

  
  #chart-toolbar { padding: 6px 8px; gap: 6px; }
  #chart-toolbar .group { padding-left: 6px; }
  
  #chart-toolbar .group, #news-toolbar .group, #pf-toolbar .group,
  #pf-conn .group, #cal-toolbar .group, #ops-panel .group {
    flex-wrap: wrap; min-width: 0; }
  #chart-symbol { flex: 1 1 100%; width: auto; font-size: 16px; }
  #chart-body { flex-direction: column; }
  #chart-main { min-height: 48vh; }
  #chart-side { flex: 0 0 auto; max-height: 38vh; border-left: none; border-top: 1px solid var(--grid); }

  
  #news-toolbar { padding: 6px 8px; gap: 6px; }
  #news-search { flex: 1 1 140px; width: auto; font-size: 16px; }
  #news-status { flex-basis: 100%; margin-left: 0; }
  #news-body { flex-direction: column; }
  #news-list { flex: 1 1 auto; padding: 2px 12px; }
  
  #news-reader { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    max-height: 72vh; overflow-y: auto; border-left: none; border-top: 1px solid var(--line-strong);
    border-radius: var(--r-card) var(--r-card) 0 0; background: var(--raised);
    padding: 12px 14px calc(14px + env(safe-area-inset-bottom)); box-shadow: 0 -12px 40px rgba(0,0,0,.45); }
  #news-reader.open { display: block; }
  #news-reader.empty { display: none; }
  #news-close { display: inline-block; }
  
  #news-sources { flex-basis: 100%; flex-wrap: wrap; }
  .news-item.news-rich { margin: 0; padding: 11px 8px; }

  
  #cal-toolbar { padding: 6px 8px; gap: 6px; }
  .cal-event { flex-wrap: wrap; gap: 6px 10px; padding: 9px 12px; }
  .cal-detail { margin-left: 0; flex-basis: 100%; white-space: normal; }

  
  #pf-toolbar { padding: 6px 8px; gap: 6px; }
  #pf-name, #pf-add-symbol { width: 130px; }
  #pf-left { padding: 10px 10px 0; }
  #pf-chart-wrap { flex: 0 0 200px; }
  #pf-holdings-wrap, #pf-positions-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #pf-holdings th, #pf-holdings td, #pf-positions th, #pf-positions td { padding: 6px 8px; }
  #pf-conn { gap: 6px; padding: 8px; }
  #pf-conn .group { padding-left: 6px; }
  #pf-broker { padding: 10px 12px; }

  
  #ai-drawer { width: 100vw; max-width: 100vw; }
  #ai-input { font-size: 16px; }

  
  #toasts { left: 10px; right: 10px; max-width: none; }

  #foot { font-size: 11px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); }
}


#view-graph { display: none; flex-direction: column; min-height: 0; }
#view-graph.active { display: flex; flex: 1 1 auto; }
#g-toolbar { flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); flex-wrap: wrap; }
#g-toolbar input[type="text"], #g-search { min-width: 260px; }
#g-body { flex: 1 1 auto; display: flex; min-height: 0; }
#g-wrap { flex: 1 1 auto; position: relative; min-width: 0; min-height: 0; }
#g-canvas { position: absolute; inset: 0; touch-action: none; }
#g-empty, #g-failed { position: absolute; inset: 0; display: flex; align-items: center;
  justify-content: center; color: var(--dim); padding: 24px; text-align: center;
  pointer-events: none; }


#g-controls { position: absolute; left: 10px; bottom: 10px; z-index: 2;
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
  max-width: calc(100% - 20px); }
.g-cgroup { display: inline-flex; }
#g-controls button { background: var(--panel); color: var(--dim);
  border: 1px solid var(--grid); border-radius: 3px; font: inherit; font-size: 12px;
  line-height: 1.1; padding: 5px 9px; cursor: pointer; }
.g-cgroup button { border-radius: 0; margin-left: -1px; }
.g-cgroup button:first-child { border-radius: 3px 0 0 3px; margin-left: 0; }
.g-cgroup button:last-child { border-radius: 0 3px 3px 0; }

.g-clabel { background: var(--panel); border: 1px solid var(--grid); border-right: none;
  border-radius: 3px 0 0 3px; color: var(--dim); font-size: 12px; line-height: 1.1;
  padding: 5px 7px; }
#g-controls input[type="number"], #g-toolbar input[type="number"] { width: 62px;
  background: var(--panel); color: var(--text); border: 1px solid var(--grid);
  border-radius: 0; font: inherit; font-size: 12px; padding: 4px 2px 4px 6px;
  margin-left: -1px; min-width: 0; }
#g-controls input[type="number"] { width: 52px; }
#g-controls input[type="number"]:disabled,
#g-toolbar input[type="number"]:disabled { color: var(--dim); opacity: .6; }

#sch-graph-hops:disabled, #sch-graph-limit:disabled,
.digest-graph-hops:disabled, .digest-graph-limit:disabled { opacity: .45; cursor: not-allowed; }
#g-controls input[type="number"]:focus,
#g-toolbar input[type="number"]:focus { outline: none; border-color: var(--phosphor); }

.depth-control { display: inline-flex; align-items: stretch; flex: 0 0 auto; max-width: 100%; }
.depth-control .g-clabel { display: inline-flex; align-items: center; white-space: nowrap; }
:is(#si-left, #cs-left, #fc-left, #ge-left, #mk-left, #rep-toolbar, #g-fcbar, #digest-panel, #sch-form) .depth-control .depth-hops {
  flex: 0 0 auto; width: 64px; min-width: 0; margin: 0 0 0 -1px; border-radius: 0;
  background: var(--panel); color: var(--text); border: 1px solid var(--grid);
  font-size: 12px; padding: 4px 2px 4px 6px; }
:is(#si-left, #cs-left, #fc-left, #ge-left, #mk-left, #rep-toolbar, #g-fcbar, #digest-panel, #sch-form) .depth-control .depth-all {
  flex: 0 0 auto; width: auto; font-size: 12px; padding: 4px 10px; }
.depth-control .depth-hops:focus { outline: none; border-color: var(--phosphor); }
.depth-control .depth-all.active { color: var(--phosphor); border-color: var(--phosphor); }

.depth-control .depth-hops:disabled { opacity: .45; cursor: not-allowed; }
#g-toolbar .g-cgroup { display: inline-flex; align-items: stretch; }

#g-toolbar .g-check { display: none; align-items: center; gap: 5px; font-size: 11px;
  color: var(--dim); white-space: nowrap; cursor: pointer; }
#g-toolbar .g-check.on { display: inline-flex; }
#g-toolbar .g-check input { margin: 0; }
#g-toolbar .g-cgroup button.active { color: var(--phosphor); border-color: var(--phosphor); }
#g-controls button:hover { color: var(--phosphor); border-color: var(--phosphor); }

#g-spin[hidden] { display: none; }
#g-controls button.active { color: var(--phosphor); border-color: var(--phosphor); }
#g-legend { position: absolute; left: 10px; bottom: 50px; z-index: 2; max-width: 300px;
  max-height: calc(100% - 68px); overflow-y: auto; background: var(--panel);
  border: 1px solid var(--grid); border-radius: 4px; padding: 8px 10px;
  font-size: 11px; color: var(--dim); display: flex; flex-direction: column; gap: 3px; }
#g-legend h4 { margin: 5px 0 1px; font-size: 10px; letter-spacing: 1px;
  text-transform: uppercase; color: var(--phosphor); }
#g-legend h4:first-child { margin-top: 0; }
.g-key { display: flex; align-items: center; gap: 6px; }
.g-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.g-line { width: 15px; border-top: 2px solid; flex: 0 0 auto; }
.g-line.dash { border-top-style: dashed; }
.g-help { line-height: 1.5; }
.g-help b { color: var(--text); font-weight: 600; }
#g-tip { position: absolute; z-index: 3; pointer-events: none; background: var(--panel);
  border: 1px solid var(--grid); border-radius: 3px; padding: 3px 7px;
  font-size: 11px; color: var(--text); white-space: nowrap; }

#g-legend[hidden], #g-tip[hidden] { display: none; }
#g-side { flex: 0 0 360px; overflow-y: auto; border-left: 1px solid var(--grid);
  padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
#g-side h3 { margin: 10px 0 4px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; }
.g-head { font-size: 14px; }
.g-row { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.g-row input, .g-row select { flex: 1 1 90px; min-width: 0; }

.g-row input { text-overflow: ellipsis; }
.g-chip { display: inline-block; padding: 0 7px; border: 1px solid var(--grid);
  border-radius: 9px; font-size: 11px; color: var(--dim); }
.g-chip.sym { color: var(--phosphor); border-color: var(--phosphor); }
.g-chip.warn { color: var(--warn); }
.g-chip.conf-high { color: var(--up); }
.g-chip.conf-low { color: var(--down); }
.g-chip.et-contradicts { color: var(--down); border-color: var(--down); }
.g-chip.et-supports { color: var(--up); }
.g-entry { border: 1px solid var(--grid); border-radius: 4px; padding: 6px 8px;
  margin: 4px 0; background: var(--panel); }
.g-entry.inactive, .g-edge.inactive { opacity: .5; }
.g-entry-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.g-entry-text { margin: 4px 0; white-space: pre-wrap; }
.g-entry-src a { color: var(--dim); text-decoration: underline dotted; margin-right: 6px; }
.g-edge { display: flex; align-items: center; gap: 6px; padding: 3px 0; flex-wrap: wrap; }
.g-x { margin-left: auto; background: none; border: none; color: var(--dim);
  cursor: pointer; font-size: 12px; }
.g-x:hover { color: var(--down); }
.g-hits { display: flex; flex-direction: column; gap: 3px; margin: 4px 0; }
.g-hit { text-align: left; }
#g-side details { border: 1px dashed var(--grid); border-radius: 4px; padding: 6px 8px; }
#g-side details summary { cursor: pointer; color: var(--dim); }
#g-side details[open] summary { color: var(--text); margin-bottom: 6px; }
#g-side textarea { width: 100%; margin: 4px 0; }
button.danger { color: var(--down); border-color: var(--down); }
@media (max-width: 900px) {
  #g-body { flex-direction: column; }
  #g-side { flex: 0 0 auto; max-height: 44vh; border-left: none;
    border-top: 1px solid var(--grid); }
}


#view-research { display: none; flex-direction: column; min-height: 0; }
#view-research.active { display: flex; flex: 1 1 auto; }
#r-body { flex: 1 1 auto; display: flex; min-height: 0; }
#r-left { flex: 0 0 330px; overflow-y: auto; border-right: 1px solid var(--grid);
  padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
#r-left h3, #r-detail h3 { margin: 8px 0 4px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; }
#r-left input, #r-left textarea, #r-left select { width: 100%; }
#r-detail { flex: 1 1 auto; overflow-y: auto; padding: 12px 16px;
  display: flex; flex-direction: column; gap: 8px; min-width: 0; }

.r-run, .g-hit { white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }

.a-when { white-space: nowrap; }
.r-run { display: block; width: 100%; text-align: left; margin: 2px 0; }
.phone-only { display: none; }
#r-form { display: contents; }
.r-run.sel { border-color: var(--phosphor); }
.r-chip { display: inline-block; padding: 0 7px; border: 1px solid var(--grid);
  border-radius: 9px; font-size: 11px; color: var(--dim); }
.r-chip.run { color: var(--phosphor); border-color: var(--phosphor); }
.r-chip.ok { color: var(--up); }
.r-chip.bad { color: var(--down); border-color: var(--down); }
.r-head { font-size: 14px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

.act-bar { align-items: center; gap: 6px; margin: 6px 0; min-width: 0; }
.act-bar > * { min-width: 0; }
.dl-ctl { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; min-width: 0; }
.dl-ctl select { font: inherit; width: auto; min-width: 0; max-width: 100%; }

.act-bar .dl-ctl select { width: auto !important; }
.act-bar .pub-live:empty { display: none; }
.r-counts { color: var(--dim); }
.r-flying { margin: 4px 0; overflow-wrap: anywhere; }
.r-summary { border: 1px solid var(--grid); border-left: 3px solid var(--phosphor);
  border-radius: 4px; padding: 8px 10px; background: var(--panel); white-space: pre-wrap; }
.r-summary.bad { border-left-color: var(--down); color: var(--down); }

.r-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.r-steps { flex: 0 0 auto; max-height: 40vh; overflow-y: auto; border: 1px solid var(--grid);
  border-radius: 4px; padding: 6px 8px; background: var(--panel); }
.r-step { padding: 1px 0; }
.r-follow { display: flex; gap: 8px; align-items: flex-start; }
.r-follow textarea { flex: 1 1 auto; }
.ai-web { color: var(--dim); display: inline-flex; align-items: center; gap: 4px;
  margin-left: 8px; cursor: pointer; }
@media (max-width: 900px) {
  #r-body { flex-direction: column; }
  #r-left { flex: 0 0 auto; border-right: none; border-bottom: 1px solid var(--grid); }
}


.g-walk { white-space: pre-wrap; border: 1px solid var(--grid); border-radius: 4px;
  padding: 8px 10px; background: var(--panel); max-height: 32vh; overflow-y: auto; }
.g-walk:empty { display: none; }
.g-cite { display: inline; padding: 0 6px; border: 1px solid #56b6c2; color: #56b6c2;
  background: none; border-radius: 9px; font-size: 11px; cursor: pointer; }
.g-prop { border: 1px solid var(--grid); border-left: 3px solid var(--phosphor);
  border-radius: 4px; padding: 6px 8px; margin: 4px 0; background: var(--panel); }
.g-prop-op { word-break: break-word; }


#view-reports { display: none; flex-direction: column; min-height: 0; }
#view-reports.active { display: flex; flex: 1 1 auto; }
#rep-toolbar { flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-bottom: 1px solid var(--grid); flex-wrap: wrap; }
#rep-target { min-width: 280px; }
#rep-body { flex: 1 1 auto; display: flex; min-height: 0; }
#rep-left { flex: 0 0 330px; overflow-y: auto; border-right: 1px solid var(--grid);
  padding: 10px 12px; }
#rep-left h3, #rep-detail h3 { margin: 8px 0 4px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; }
#rep-detail { flex: 1 1 auto; overflow-y: auto; padding: 12px 16px;
  display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.rep-mini { display: inline-flex; gap: 3px; margin: 0 6px; }
.rep-stance { display: inline-block; padding: 0 7px; border-radius: 9px;
  border: 1px solid var(--grid); font-size: 11px; color: var(--dim); }
.rep-stance.big { font-size: 13px; font-weight: 700; padding: 1px 10px; }

.rep-stance.s-buy, .rep-stance.s-add, .rep-stance.s-long { color: var(--up); border-color: var(--up); }

.rep-stance.s-sell, .rep-stance.s-exit, .rep-stance.s-trim { color: var(--warn, #f2a900); border-color: var(--warn, #f2a900); }
.rep-stance.s-short { color: var(--down); border-color: var(--down); }

.rep-conv.none { border-style: dashed; opacity: .5; }
.rep-stance.s-hold { color: var(--flat); border-color: var(--flat); }
.rep-stance.s-trim { color: var(--warn); border-color: var(--warn); }
.rep-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; }
.rep-card { border: 1px solid var(--grid); border-radius: 4px; padding: 10px 12px;
  background: var(--panel); }
.rep-card ul { margin: 4px 0 8px; padding-left: 18px; }
.rep-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.rep-conv { flex: 0 0 70px; height: 6px; border: 1px solid var(--grid); border-radius: 3px; overflow: hidden; }
.rep-conv span { display: block; height: 100%; background: var(--phosphor); }
.rep-fresh { border: 1px dashed var(--grid); border-radius: 4px; padding: 6px 10px; color: var(--dim); }
.rep-fresh.warn { border-color: var(--warn); color: var(--text); }

.rep-table { border-collapse: collapse; display: block; max-width: 100%;
  overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rep-table th, .rep-table td { padding: 3px 10px 3px 0; border-bottom: 1px solid var(--grid);
  white-space: normal; overflow-wrap: anywhere; }
.rep-table th.left, .rep-table td.left { min-width: 110px; }
#rep-thread { display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 900px) {
  #rep-body { flex-direction: column; }
  #rep-left { flex: 0 0 auto; border-right: none; border-bottom: 1px solid var(--grid); }
}
#g-3d.active { color: var(--phosphor); border-color: var(--phosphor); }
#g-fire.active { color: #ffd696; border-color: #ff9f43; }

#g-firechip { position: absolute; left: 10px; top: 10px; z-index: 3; display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 4px 3px 10px; font-size: 12px; color: #ffd696; background: var(--panel); border: 1px solid #ff9f43;
  border-radius: 12px; }
#g-firechip[hidden] { display: none; }
#g-firechip button { background: none; color: inherit; border: 1px solid #ff9f43; border-radius: 10px; padding: 1px 7px;
  font: inherit; cursor: pointer; }



#digest-ctl { display: flex; gap: 6px 8px; align-items: center; flex-wrap: wrap;
  max-width: 100%; min-width: 0; }
#digest-ctl select { font: inherit; }
#digest-status { flex: 1 1 260px; min-width: 0; }
#digest-status { font-size: 11px; }
.digest-open { background: none; border: 1px solid var(--grid); color: var(--phosphor); cursor: pointer;
  font: inherit; font-size: 11px; padding: 0 7px; border-radius: 9px; }
.digest-open:hover { border-color: var(--phosphor); }
.home-digest { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: -2px 0 10px; font-size: 12px; }
.home-digest button { font-size: 12px; }

.sch-toggle { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto;
  color: var(--dim); cursor: pointer; }
.sch-toggle:hover { color: var(--text); }

#r-left .sch-toggle input, .sch-toggle input { accent-color: var(--phosphor); cursor: pointer;
  margin: 0; flex: 0 0 auto; width: auto; }

#sch-form #sch-day, #gsch-form #gsch-day, #psch-form #psch-day { flex: 0 0 4.5em; }

#sch-form #sch-cadence, #gsch-form #gsch-cadence, #psch-form #psch-cadence { flex: 0 0 7.5em; }
#sch-form #sch-weekday, #gsch-form #gsch-weekday, #psch-form #psch-weekday { flex: 0 0 9em; }

.sch-field { display: inline-flex; align-items: center; gap: 6px; flex: 1 1 120px; min-width: 0; }
.sch-field > span:first-child { flex: 0 0 auto; color: var(--dim); font-family: var(--mono);
  font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
#r-left .sch-field select { flex: 1 1 0; min-width: 0; width: auto; }

#sch-form .sch-field select, #gsch-form .sch-field select, #psch-form .sch-field select { flex: 1 1 0; min-width: 0; }
#sch-form .sch-wide, #gsch-form .sch-wide, #psch-form .sch-wide { flex: 1 1 100%; }

.sch-keep { flex: 0 0 auto !important; max-width: 100%; }
.sch-keep select, .sch-keep input { flex: 0 1 auto !important; min-width: 0; max-width: 100%; }

.sch-keep input[type="number"] { width: 5em !important; }

#sch-form .sch-when, #gsch-form .sch-when, #psch-form .sch-when { flex: 0 1 auto; flex-wrap: wrap; }
#sch-form #sch-time, #gsch-form #gsch-time, #psch-form #psch-time { flex: 0 0 9.5em; }
#sch-local, #gsch-local, #psch-local, .sch-local { flex: 0 0 auto; font-size: 12px; white-space: nowrap; }
#sch-local:empty, #gsch-local:empty, #psch-local:empty, .sch-local:empty { display: none; }
#sch-form .digest-cat, #gsch-form .digest-cat, #psch-form .digest-cat { flex: 0 0 auto; }
#sch-form h3 { margin-bottom: 4px; }
#sch-note:empty, #gsch-note:empty, #psch-note:empty { display: none; }

.sch-cost { list-style: none; margin: 8px 0; padding: 0; color: var(--dim); font-size: 12px;
  line-height: 1.5; overflow-wrap: anywhere; }
.sch-cost li { padding-left: 1em; text-indent: -1em; }
.sch-cost li:first-child { color: var(--text); }
.sch-cost:empty { display: none; }

.gsch-pick { margin-top: 8px; padding: 8px 10px; border: 1px solid var(--grid);
  border-left: 2px solid var(--phosphor); border-radius: 4px; }
.gsch-pick .gsch-premise { margin: 0 0 4px; color: var(--text); }
#gs-status:empty { display: none; }

.digest-cat { display: inline-flex; align-items: center; gap: 4px; color: var(--dim);
  cursor: pointer; white-space: nowrap; }
.digest-cat:hover { color: var(--text); }
.digest-cat input { accent-color: var(--phosphor); cursor: pointer; margin: 0; }
.dg-score { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; align-items: center; }
.g-chip.dg-v-corroborated { color: var(--up); border-color: var(--up); }
.g-chip.dg-v-contradicted { color: var(--down); border-color: var(--down); }
.g-chip.dg-v-uncorroborated { color: var(--warn); }
.g-chip.dg-v-opinion, .g-chip.dg-v-skipped { color: var(--dim); }
.g-chip.dg-kind { text-transform: uppercase; font-size: 10px; letter-spacing: .5px; }
.g-chip.dg-imp-bullish { color: var(--up); border-color: var(--up); }
.g-chip.dg-imp-bearish { color: var(--down); border-color: var(--down); }
.g-chip.dg-imp-mixed { color: var(--warn); }
.dg-insights { padding-left: 18px; }
.dg-insights li { margin: 6px 0; }
.dg-articles td { vertical-align: top; }
.dg-articles a, .rep-card a { color: inherit; }
.rep-card .dg-art { color: var(--dim); font-size: 11px; margin: 2px 0; }

.dg-gap { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; margin: 2px 8px 2px 0; }
.dg-gap > .digest-open { white-space: normal; overflow-wrap: anywhere; line-height: 1.4; text-align: left; }
.dg-gap > .muted { flex: 1 1 14em; overflow-wrap: anywhere; }

.so-effects { padding-left: 18px; }
.so-effect { margin: 8px 0; }
.so-target { font-weight: 600; }
.so-path { font-family: var(--mono); font-size: 11px; color: var(--dim); margin: 3px 0; }
.so-calls td { vertical-align: top; }
.so-calls .so-thesis { max-width: 420px; }

.g-prop-err { color: var(--down); font-size: 11px; margin: 2px 0 4px; }


@media (max-width: 740px) {
  #view-graph.active { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  #g-controls { left: 8px; bottom: 8px; gap: 4px; }
  #g-controls button { padding: 7px 10px; }     
  #g-legend { bottom: 54px; max-width: calc(100% - 16px); }
  #g-toolbar { padding: 6px 8px; gap: 6px; }
  #g-toolbar input[type="text"], #g-search { flex: 1 1 100%; min-width: 0; width: auto; font-size: 16px; }
  #g-export { display: none; }
  
  #g-toolbar .group { display: flex; flex-basis: 100%; flex-wrap: wrap; gap: 6px; }
  #g-toolbar input[type="number"] { font-size: 16px; width: 70px; }
  
  :is(#si-left, #cs-left, #fc-left, #ge-left, #mk-left, #rep-toolbar, #g-fcbar, #digest-panel, #sch-form) .depth-control .depth-hops {
    font-size: 16px; width: 70px; }
  #g-toolbar .g-cgroup { flex: 1 1 auto; }
  #g-note { flex-basis: 100%; font-size: 11px; }
  #g-body { flex-direction: column; flex: 0 0 auto; }
  #g-wrap { flex: 0 0 56vh; min-height: 320px; border-bottom: 2px solid var(--grid); }
  #g-side { flex: 0 0 auto; max-height: none; overflow: visible; border-left: none; padding: 10px 12px 16px; }
  #g-side .g-row input, #g-side .g-row select, #g-side textarea { font-size: 16px; }
  .g-prop { padding: 8px 10px; }
}


@media (max-width: 740px) {

  #view-research.active, #view-reports.active { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  #r-body, #rep-body { flex-direction: column; flex: 0 0 auto; min-height: 0; }
  #r-left, #rep-left { flex: 0 0 auto; overflow: visible; border-right: none;
    border-bottom: 2px solid var(--grid); padding: 10px 12px; }
  
  #r-runs, #rep-list { max-height: none; overflow: visible; }
  #r-detail, #rep-detail { flex: 0 0 auto; overflow: visible; padding: 12px 12px 18px; }
  .phone-only { display: inline-block; }
  #r-form { display: none; }
  #r-form.open { display: flex; flex-direction: column; gap: 6px; }
  #r-left input, #r-left textarea, #r-left select { font-size: 16px; }
  .r-steps { max-height: 45vh; }
  .r-follow { flex-direction: column; align-items: stretch; }
  .r-follow textarea { width: 100%; font-size: 16px; }

  #rep-toolbar { padding: 6px 8px; gap: 6px; }
  #rep-target { min-width: 0; flex: 1 1 100%; width: auto; font-size: 16px; }
  #rep-portfolio { flex: 1 1 auto; min-width: 0; }
  #rep-status, #rep-gate { flex-basis: 100%; font-size: 11px; }
  .rep-cards { grid-template-columns: 1fr; }
  #rep-q { font-size: 16px; }
}


#view-gedanken { display: none; flex-direction: column; min-height: 0; }
#view-gedanken.active { display: flex; flex: 1 1 auto; }
#ge-body { flex: 1 1 auto; display: flex; min-height: 0; }
#ge-left { flex: 0 0 340px; overflow-y: auto; border-right: 1px solid var(--grid);
  padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; }
#ge-left h3, #ge-detail h3 { margin: 8px 0 4px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; }
#ge-left input, #ge-left textarea, #ge-left select { width: 100%; }
#ge-form { display: contents; }
#ge-detail { flex: 1 1 auto; overflow-y: auto; padding: 12px 16px;
  display: flex; flex-direction: column; gap: 8px; min-width: 0; }
#ge-detail > * { flex: 0 0 auto; }
.ge-top { color: var(--phosphor); font-size: 11px; }
.ge-branch { border: 1px solid var(--grid); border-radius: 4px; padding: 6px 10px; background: var(--panel); }
.ge-branch summary { cursor: pointer; display: flex; align-items: center; gap: 8px; font-size: 13px; }

.ge-branch summary .g-chip { flex: none; }
.ge-branch summary b { color: var(--phosphor); }
.ge-branch p { margin: 6px 0; }
.ge-branch ul { margin: 4px 0 8px; padding-left: 18px; }
.ge-horizons { margin: 6px 0 8px; padding-left: 8px; border-left: 2px solid var(--grid); }
.ge-horizons dt { color: var(--dim); font-family: var(--mono); font-size: 11px; margin-top: 6px; }
.ge-horizons dd { margin: 2px 0 0; }
.ge-p { display: inline-block; width: 70px; height: 7px; border: 1px solid var(--grid); border-radius: 4px; overflow: hidden; }
.ge-p span { display: block; height: 100%; background: var(--phosphor); }
.ge-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 8px; }
.ge-list { list-style: none; padding-left: 0 !important; }
.ge-watch { padding: 3px 0 3px 8px; border-left: 2px solid var(--grid); margin: 3px 0; }
.ge-watch.plus { border-left-color: var(--up); }
.ge-watch.minus { border-left-color: var(--down); }
.g-chip.ge-st-fired { color: var(--up); border-color: var(--up); }
.g-chip.ge-st-failed { color: var(--down); border-color: var(--down); }
.g-chip.ge-st-pending { color: var(--dim); }
.g-chip.ge-st-unknown { color: var(--dim); border-style: dashed; }
.ge-src { color: var(--dim); font-size: 11px; text-decoration: underline dotted; margin-left: 4px; }
.ge-dir-up { color: var(--up); } .ge-dir-down { color: var(--down); } .ge-dir-mixed { color: var(--warn); } .ge-dir-flat { color: var(--dim); }
.ge-up { color: var(--up); } .ge-down { color: var(--down); }
.ge-weigh .ge-cell { font-size: 10px; letter-spacing: 1px; }
#ge-fork-premise { flex: 1 1 220px; min-width: 0; }
#g-paint { margin-left: 6px; }


@media (max-width: 740px) {
  #view-gedanken.active { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  #ge-body { flex-direction: column; flex: 0 0 auto; min-height: 0; }
  #ge-left { flex: 0 0 auto; overflow: visible; border-right: none; border-bottom: 2px solid var(--grid); }
  #ge-list { max-height: none; overflow: visible; }              
  #ge-detail { flex: 0 0 auto; overflow: visible; padding: 12px 12px 18px; }
  #ge-form { display: none; }
  #ge-form.open { display: flex; flex-direction: column; gap: 6px; }
  #ge-status:empty { display: none; }       
  #ge-status { overflow-wrap: anywhere; }
  #ge-left input, #ge-left textarea, #ge-left select, #ge-q { font-size: 16px; }
  .ge-cols { grid-template-columns: 1fr; }
}


#view-situation, #view-casestudy, #view-factcheck, #view-markets { display: none; flex-direction: column; min-height: 0; }
#view-situation.active, #view-casestudy.active, #view-factcheck.active, #view-markets.active { display: flex; flex: 1 1 auto; }
#si-body, #cs-body, #fc-body, #mk-body { flex: 1 1 auto; display: flex; min-height: 0; }
#si-left, #cs-left, #fc-left, #mk-left { flex: 0 0 340px; overflow-y: auto;
  border-right: 1px solid var(--grid); padding: 10px 12px;
  display: flex; flex-direction: column; gap: 6px; }
#si-left h3, #cs-left h3, #fc-left h3, #mk-left h3 { margin: 8px 0 4px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; }
#si-left input, #si-left textarea, #si-left select,
#cs-left input, #cs-left textarea, #cs-left select,
#fc-left input, #fc-left textarea, #fc-left select,
#mk-left input[type="text"] { width: 100%; }

#si-form, #cs-form, #fc-form, #mk-form { display: contents; }
#si-detail, #cs-detail, #fc-detail, #mk-detail { flex: 1 1 auto; overflow-y: auto; padding: 12px 16px;
  display: flex; flex-direction: column; gap: 8px; min-width: 0; }
#si-detail > *, #cs-detail > *, #fc-detail > *, #mk-detail > * { flex: 0 0 auto; }

#si-list, #cs-list, #fc-list, #mk-list { display: flex; flex-direction: column; gap: 4px; }
#si-list .an-item, #cs-list .an-item, #fc-list .an-item, #mk-list .an-item { display: block; width: 100%; text-align: left;
  padding: 6px 8px; border: 1px solid var(--grid); border-radius: 4px;
  background: var(--panel); color: var(--text); cursor: pointer; font: inherit;
  font-size: 12px; line-height: 1.35;
  
  white-space: normal; overflow-wrap: anywhere; }
#si-list .an-item:hover, #cs-list .an-item:hover, #fc-list .an-item:hover, #mk-list .an-item:hover { border-color: var(--phosphor); }
#si-list .an-item.on, #cs-list .an-item.on, #fc-list .an-item.on, #mk-list .an-item.on {
  border-color: var(--phosphor); color: var(--phosphor); }
#si-list .an-item b, #cs-list .an-item b, #fc-list .an-item b, #mk-list .an-item b { display: block; font-weight: 600; }
#si-list .an-item .muted, #cs-list .an-item .muted, #fc-list .an-item .muted, #mk-list .an-item .muted { display: block; font-size: 11px; }


#mk-left .g-row { flex-wrap: wrap; }
.mk-side { border-top: 1px solid var(--grid); padding-top: 4px; min-width: 0; }
.mk-h { margin: 6px 0 4px; font-size: 13px; color: var(--phosphor); }
.mk-rows { display: flex; flex-direction: column; gap: 4px; }
.mk-row { display: flex; align-items: flex-start; gap: 10px; width: 100%; text-align: left; padding: 6px 8px;
  border: 1px solid var(--grid); border-radius: 4px; background: var(--panel); color: var(--text); cursor: pointer;
  font: inherit; font-size: 12px; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; min-width: 0; }
.mk-row:hover { border-color: var(--phosphor); }
.mk-row.mk-far { opacity: .55; }
.mk-p { flex: 0 0 52px; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--phosphor); }
.mk-q { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.mk-q .muted { font-size: 11px; }
.mk-odds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 4px 0 8px; }
.mk-odd { border: 1px solid var(--grid); border-radius: 6px; padding: 8px 10px; min-width: 0; background: var(--panel); }
.mk-odd b { display: block; font-size: 20px; line-height: 1.2; font-variant-numeric: tabular-nums; color: var(--phosphor); }
.mk-odd span { display: block; font-size: 11px; color: var(--dim); overflow-wrap: anywhere; }
.mk-facts { margin: 4px 0; padding-left: 18px; font-size: 12px; overflow-wrap: anywhere; }
.mk-rules { margin: 4px 0 8px; padding: 8px 12px; border-left: 3px solid var(--phosphor); background: var(--panel);
  white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.55; }
.mk-picks, .mk-parts { margin: 4px 0; padding-left: 18px; font-size: 12px; overflow-wrap: anywhere; }
.mk-picks li .muted { display: block; font-size: 11px; }
.mk-pick { margin-bottom: 8px; }
.mk-track { width: 100%; font-size: 12px; }
.mk-track th, .mk-track td:not(:first-child) { white-space: nowrap; }
.mk-verdict { display: inline-block; padding: 0 6px; border-radius: 8px; font-size: 11px; border: 1px solid var(--grid); color: var(--dim); }
.mk-verdict.v-supports { color: var(--phosphor); border-color: var(--phosphor); }
.mk-verdict.v-contradicts { color: var(--warn); border-color: var(--warn); }
.mk-disclaimer { margin: 12px 0 0; padding-top: 8px; border-top: 2px solid var(--warn); font-size: 12px; }
.linkish { background: none; border: none; padding: 0; color: var(--phosphor); font: inherit; cursor: pointer;
  text-decoration: underline; }
@media (max-width: 740px) {
  .mk-odds { grid-template-columns: minmax(0, 1fr); }
  #mk-left input[type="text"] { font-size: 16px; }
}


@media (max-width: 740px) {
  #view-situation.active, #view-casestudy.active,
  #view-factcheck.active, #view-markets.active { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  #si-body, #cs-body, #fc-body, #mk-body { flex-direction: column; flex: 0 0 auto; min-height: 0; }
  #si-left, #cs-left, #fc-left, #mk-left { flex: 0 0 auto; overflow: visible; border-right: none;
    border-bottom: 2px solid var(--grid); }
  #si-list, #cs-list, #fc-list, #mk-list { max-height: none; overflow: visible; }   
  #si-detail, #cs-detail, #fc-detail, #mk-detail { flex: 0 0 auto; overflow: visible; padding: 12px 12px 18px; }
  #si-form, #cs-form, #fc-form, #mk-form { display: none; }
  #si-form.open, #cs-form.open, #fc-form.open, #mk-form.open { display: flex; flex-direction: column; gap: 6px; }
  #si-left input, #si-left textarea, #si-left select,
  #cs-left input, #cs-left textarea, #cs-left select,
  #fc-left input, #fc-left textarea, #fc-left select { font-size: 16px; }
}


@media (max-width: 740px) {
  #view-home.active, #view-graph.active, #view-research.active,
  #view-reports.active, #view-gedanken.active, #view-situation.active,
  #view-casestudy.active, #view-factcheck.active { overflow-x: hidden; }
}


#g-timebar { display: flex; align-items: center; gap: 10px; padding: 6px 10px;
  border-bottom: 1px solid var(--grid, #262B38); }
#g-timebar input[type="range"] { flex: 1; min-width: 120px; accent-color: var(--accent, #7FE8C8); }
#g-timebar #g-tm-label { font-variant-numeric: tabular-nums; white-space: nowrap; }
#g-toolbar input[type="date"] { color-scheme: dark; }
@media (prefers-color-scheme: light) { #g-toolbar input[type="date"] { color-scheme: light; } }




.share-x, .share-art { margin-left: 6px; }
.act-bar .share-x, .act-bar .share-art { margin-left: 0; }

.share-btn { display: inline-flex; align-items: center; gap: 0.35em; }
.share-btn .share-mark { width: 1em; height: 1em; stroke: none; fill: currentColor; }
.ss-note-text { width: 100%; box-sizing: border-box; margin-top: 6px; font: inherit; font-size: 13px; line-height: 1.4; resize: vertical; }
.share-box { margin: 8px 0 10px; padding: 10px 12px; border: 1px solid var(--grid, #17201a); border-radius: 8px; background: var(--panel, rgba(255,255,255,0.03)); }
.share-box .share-text { width: 100%; box-sizing: border-box; margin-top: 6px; font: inherit; font-size: 13px; line-height: 1.4; resize: vertical; }
.share-box .share-title { width: 100%; box-sizing: border-box; margin-top: 6px; font: inherit; font-size: 14px; font-weight: 600; }
.share-box .share-article { font-family: var(--mono, ui-monospace, monospace); font-size: 12px; }
.share-box .share-row { display: flex; align-items: center; gap: 8px; margin-top: 6px; flex-wrap: wrap; }

.share-box .share-picture { margin: 0 0 8px; min-width: 0; }

.share-box .share-post-box .share-picture { margin: 8px 0 0; }
.share-box .share-picture-img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9;
  border-radius: 6px; border: 1px solid var(--grid, #17201a); background: #07080C; }
.share-box .share-picture-row { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  flex-wrap: wrap; margin-top: 4px; font-size: 12px; }
.share-box .share-picture-row .muted { min-width: 0; overflow-wrap: anywhere; }
.share-box .ss-body img { display: block; max-width: 100%; height: auto; }   
.share-box .share-count { font-variant-numeric: tabular-nums; color: var(--dim, #6f7d6c); margin-right: auto; }
.share-box .share-count.over { color: var(--down, #ff5c4d); font-weight: 600; }
.share-box .share-post { font-weight: 600; }

.share-post-box { border-top: 1px solid var(--grid); padding-top: 6px; margin-top: 8px; }
.share-post-box:first-of-type { border-top: none; }
.share-post-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  font-size: 12px; }
.share-post-head .share-count { margin-left: auto; font-size: 11px; }
.share-keep { display: inline-flex; align-items: center; gap: 4px; color: var(--dim);
  font-size: 11px; cursor: pointer; }
.share-keep input { width: auto; margin: 0; accent-color: var(--phosphor); cursor: pointer; }
.share-post-box.off .share-text { opacity: .4; }
.share-total { font-variant-numeric: tabular-nums; color: var(--dim); margin-right: auto; }

.share-published, .share-note { font-size: 11px; margin-top: 6px; overflow-wrap: anywhere; }
.share-published { color: var(--dim); }
.share-note { color: var(--amber); }
.share-box .sub { overflow-wrap: anywhere; }
.share-post-box.sent .share-text { opacity: .55; }
.share-post-box.sent .share-keep { display: none; }
.share-public { font-size: 11px; }


.dl-view { position: fixed; inset: 0; z-index: 70; background: rgba(0, 0, 0, 0.55); display: flex; align-items: center; justify-content: center; padding: 14px; }
.dl-view-panel { display: flex; flex-direction: column; width: min(860px, 100%); height: min(88vh, 100%); border: 1px solid var(--grid, #17201a); border-radius: 10px; background: var(--ink, #07080C); overflow: hidden; }
.dl-view-bar { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--grid, #17201a); }
.dl-view-title { margin-right: auto; color: var(--dim, #6f7d6c); }
.dl-view-close { font-weight: 600; }
.dl-view-body { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; }
.dl-view-text { margin: 0; padding: 12px 14px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12.5px; line-height: 1.45; }
.dl-view-frame { display: block; width: 100%; height: 100%; border: 0; }


.ti-otc { margin: 6px 0; padding: 8px 10px; border: 1px dashed var(--grid, #17201a); border-radius: 8px; }
.ti-otc p { margin: 4px 0 0; }


.ol-hyp .ol-val b { color: var(--up, #29d47e); }
.ol-hyp .ol-inval b { color: var(--down, #ff5c4d); }
.ol-hyp p { margin: 6px 0 2px; }
.ol-hyp ul { margin: 2px 0 4px; }


#view-graph:fullscreen, #view-graph.g-full { background: var(--ink, #07080C); }
#view-graph.g-full { position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column; }
#view-graph:fullscreen #g-toolbar > *, #view-graph.g-full #g-toolbar > * { display: none; }
#view-graph:fullscreen #g-toolbar > #g-fullscreen, #view-graph.g-full #g-toolbar > #g-fullscreen,
#view-graph:fullscreen #g-toolbar > #g-refresh, #view-graph.g-full #g-toolbar > #g-refresh { display: inline-block; }
#view-graph:fullscreen #g-toolbar > #g-note, #view-graph.g-full #g-toolbar > #g-note { display: inline; }

#g-pass:empty { display: none; }
#g-pass { font-size: 11px; }
#gp-status:empty { display: none; }
#view-graph:fullscreen #g-side, #view-graph.g-full #g-side { display: none; }

#view-graph:fullscreen.active, #view-graph.g-full.active { overflow: hidden; }
#view-graph:fullscreen #g-body, #view-graph.g-full #g-body { flex: 1 1 auto; flex-direction: row; }
#view-graph:fullscreen #g-wrap, #view-graph.g-full #g-wrap { flex: 1 1 auto; min-height: 0; border-bottom: 0; }
#g-fullscreen.active, #g-audit.active { color: var(--phosphor); border-color: var(--phosphor); }


.home-fold, .an-fold { border: 1px solid var(--grid); border-radius: 4px;
  margin: 10px 16px 0; background: var(--panel, transparent); }
.an-fold { margin: 8px 0 0; }
#news-analysis { margin: 0 16px 8px; }
.home-fold > summary, .an-fold > summary { cursor: pointer; list-style: none;
  padding: 7px 10px; font-size: 12px; color: var(--phosphor);
  text-transform: uppercase; letter-spacing: 1px; user-select: none;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.home-fold > summary::-webkit-details-marker,
.an-fold > summary::-webkit-details-marker { display: none; }
.home-fold > summary:hover, .an-fold > summary:hover { color: var(--text); }
.fold-caret { display: inline-block; transition: transform .12s ease; font-size: 10px; }
details[open] > summary .fold-caret { transform: rotate(90deg); }
.home-fold > summary .muted, .an-fold > summary .muted { text-transform: none;
  letter-spacing: 0; }

#home-schedule #sch-form, #home-gschedule #gsch-form, #home-pschedule #psch-form { display: flex; flex-direction: column; gap: 6px;
  padding: 0 10px 10px; }

:is(#sch-form, #gsch-form, #psch-form) .sch-field :is(select, input) { flex: 1 1 0; min-width: 0;
  width: auto; }
#home-schedule #sch-save, #home-gschedule #gsch-save, #home-pschedule #psch-save { align-self: flex-start; }

#home-schedule #sch-form .g-row > select, #home-gschedule #gsch-form .g-row > select,
#home-pschedule #psch-form .g-row > select { flex: 0 1 210px; }
#home-schedule #sch-form .g-row > .sch-preset { flex: 0 1 160px; }
#home-schedule #sch-form .sch-field, #home-gschedule #gsch-form .sch-field,
#home-pschedule #psch-form .sch-field { flex: 0 1 auto; }
#home-schedule #sch-form .sch-wide, #home-gschedule #gsch-form .sch-wide,
#home-pschedule #psch-form .sch-wide { flex: 1 1 320px; }
#home-schedule #sch-form .sch-wide input, #home-gschedule #gsch-form .sch-wide input,
#home-pschedule #psch-form .sch-wide input { flex: 1 1 auto; }


#pub-body { display: flex; flex-direction: column; gap: 8px; padding: 0 10px 10px; font-size: 12px; }
#pub-body .g-row { gap: 8px; }
#pub-body .pub-field { flex: 1 1 280px; }

#pub-body .pub-field input { flex: 1 1 0; min-width: 0; width: auto; font-family: var(--mono);
  font-size: 12px; text-overflow: ellipsis; }
#pub-body .pub-field:has(#pub-pin) { flex: 0 1 15em; }
#pub-body button { flex: 0 0 auto; }
.pub-lede { margin: 0; }
.pub-who { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.pub-badge { font-size: 11px; color: var(--dim); }
.pub-badge.ok { color: var(--up); }
.pub-badge.bad { color: var(--down); }

.pub-meta, .pub-step, .pub-row, .pub-help, .pub-lede, .pub-who > * { overflow-wrap: anywhere; min-width: 0; }
.pub-meta { font-size: 11px; }
.pub-step { flex: 1 1 220px; font-size: 11px; }
.pub-help { margin: 0; font-size: 11px; line-height: 1.5; }
.pub-recent { display: flex; flex-direction: column; gap: 3px; border-top: 1px solid var(--grid);
  padding-top: 8px; margin-top: 2px; }

.pub-label { font-family: var(--mono); font-size: 10px; letter-spacing: .08em;
  text-transform: uppercase; color: var(--dim); margin-bottom: 2px; }
.pub-row { font-size: 11px; color: var(--dim); }
.pub-row.bad { color: var(--down); }

.pub-venue { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pub-venue + .pub-venue { border-top: 1px solid var(--grid); padding-top: 8px; }


.an-grid { display: flex; gap: 10px; padding: 0 10px 10px; align-items: flex-start; }
.an-list { flex: 0 0 260px; max-height: 46vh; overflow-y: auto; }
.an-detail { flex: 1 1 auto; min-width: 0; max-height: 46vh; overflow-y: auto;
  display: flex; flex-direction: column; gap: 8px; }
.r-back { align-self: flex-start; }

#g-side .an-grid { flex-direction: column; padding: 0; }
#g-side .an-list { flex: 0 0 auto; width: 100%; max-height: 30vh; }
#g-side .an-detail { width: 100%; max-height: none; }
#g-audits { margin-top: 6px; }
@media (max-width: 740px) {
  .home-fold, #news-analysis { margin-left: 12px; margin-right: 12px; }
  .an-grid { flex-direction: column; }
  .an-list, .an-detail { flex: 0 0 auto; width: 100%; max-height: 40vh; }
  :is(#home-schedule, #home-gschedule, #home-pschedule) :is(input, select, textarea) { font-size: 16px; }
  
  #home-publish input { font-size: 16px; }
}


.tab-arrange { display: flex; gap: 4px; padding: 8px 6px 10px; flex-wrap: wrap; }
.tab-arrange button { font-size: 11px; padding: 3px 7px; color: var(--dim);
  background: none; border: 1px solid var(--grid); border-radius: 3px; cursor: pointer; }
.tab-arrange button:hover { color: var(--text); border-color: var(--phosphor); }

.tab-arrange button[hidden] { display: none; }
#nav.tabs-arrange .tab-arrange-btn { color: var(--phosphor); border-color: var(--phosphor); }

#nav.tabs-arrange .tab { cursor: grab; border: 1px dashed var(--grid); border-radius: 6px;
  margin: 1px 0; }
#nav.tabs-arrange .tab::after { content: "⣿"; margin-left: auto; padding-left: 8px;
  color: var(--dim); font-size: 11px; }
html[data-rail="hidden"] #nav.tabs-arrange .tab::after { content: ""; padding: 0; }
html[data-rail="hidden"] .tab-arrange { padding: 8px 2px; justify-content: center; }
html[data-rail="hidden"] .tab-arrange-reset { display: none; }


#nav.tabs-arrange .tab.tab-picked { border-style: solid; border-color: var(--phosphor);
  color: var(--phosphor); background: color-mix(in srgb, var(--phosphor) 12%, transparent); }
#nav.tabs-arrange .tab.tab-picked::after { content: "◀"; color: var(--phosphor); }
.tab-move { min-width: 30px; font-size: 13px !important; line-height: 1.1; }
.tab-move:disabled { opacity: .35; cursor: default; }
.tab-move:disabled:hover { color: var(--dim); border-color: var(--grid); }

html[data-rail="hidden"] .tab-move { min-width: 26px; }

#nav.tabs-arrange .tab-arrange { position: sticky; bottom: 0; z-index: 1;
  background: var(--surface); border-top: 1px solid var(--grid); }


.detail-inline { max-height: none !important; overflow: visible !important;
  width: auto !important; flex: 0 0 auto !important; min-width: 0;
  border-left: 2px solid var(--phosphor); border-right: none !important;
  margin: 2px 0 8px; padding: 8px 10px !important; }

.list-open { max-height: none !important; overflow: visible !important; }


#pf-acc-link { flex-wrap: wrap; align-items: center; gap: 6px; }
#pf-acc-fields { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.acc-field { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--muted); }
.acc-field input { width: 150px; }
.acc-totals { display: flex; flex-wrap: wrap; align-items: baseline; gap: 14px; margin: 10px 0 4px; }
.acc-total b { font-size: 20px; }
.acc-count { font-size: 11px; }
.acc-kinds { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 6px; }
.acc-kind { font-size: 11px; color: var(--muted); }
.acc-kind b { color: var(--fg); }

.acc-note { font-size: 11px; color: var(--warn, #e0b25a); margin-bottom: 8px; }
.acc-card { border: 1px solid var(--line); border-radius: 4px; padding: 8px 10px; margin-bottom: 8px; }
.acc-card.off { opacity: 0.5; }
.acc-card.acc-bad { border-color: var(--bad, #ff5c4d); }
.acc-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.acc-head b { font-size: 13px; }
.acc-tag { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted);
           border: 1px solid var(--line); border-radius: 3px; padding: 0 4px; }
.acc-tag.acc-trade { color: var(--accent, #f2a900); border-color: currentColor; }
.acc-tag.acc-live { color: var(--bad, #ff5c4d); border-color: currentColor; }
.acc-value { margin-left: auto; font-variant-numeric: tabular-nums; font-size: 15px; }
.acc-ops { display: inline-flex; gap: 4px; }
.acc-ops button { font-size: 10px; padding: 1px 6px; }
.acc-id { font-size: 10px; margin-top: 2px; }
.acc-error { font-size: 11px; color: var(--bad, #ff5c4d); margin-top: 4px; }
.acc-empty { padding: 14px 2px; max-width: 60ch; line-height: 1.5; }

.acc-all { margin: 10px 0 14px; border: 1px solid var(--line); border-radius: 6px;
  overflow: hidden; }
.acc-all-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
  padding: 7px 10px; background: var(--surface); border-bottom: 1px solid var(--line); }
.acc-all-head b { font-size: 12px; letter-spacing: .02em; }
.acc-all-sums { display: flex; flex-wrap: wrap; gap: 14px; margin-left: auto; font-size: 11px; }
.acc-all-sums span { color: var(--muted); }
.acc-all-sums b { color: var(--text, inherit); font-size: 13px; margin-left: 4px; }
.acc-all .wrap { overflow-x: auto; }
.acc-owner { white-space: nowrap; }
.acc-owner i { font-style: normal; color: var(--muted); }
.acc-when { white-space: nowrap; color: var(--muted); font-size: 10px; }
.acc-basis { color: var(--muted); font-size: 10px; margin-left: 3px; }

.acc-chain { display: block; font-style: normal; font-size: 9px; color: var(--muted);
  letter-spacing: .04em; text-transform: uppercase; }

.acc-sum { font-size: 11px; margin-top: 4px; }
.acc-unpriced { color: var(--warn, #f2a900); }
.acc-positions { width: 100%; margin-top: 6px; font-size: 11px; }
.acc-positions th { font-weight: normal; color: var(--muted); }
.acc-positions td, .acc-positions th { padding: 1px 6px; text-align: right; }
.acc-positions .left { text-align: left; }


.cal-badge-rates { background: var(--warn, #f2a900); color: var(--ink, #07080C); font-weight: 600; }


.acc-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 6px 0 2px; }
.acc-chip { font-size: 11px; padding: 3px 9px; border-radius: 11px; cursor: pointer;
  color: var(--dim); background: none; border: 1px solid var(--grid); }
.acc-chip.on { color: var(--phosphor); border-color: var(--phosphor);
  background: color-mix(in srgb, var(--phosphor) 10%, transparent); }
.acc-chip:hover { color: var(--text); }
.acc-chip-all { margin-left: 6px; border-style: dashed; }
.acc-filtered { font-size: 11px; }

tr.acc-pos { cursor: pointer; }
tr.acc-pos:hover > td { background: color-mix(in srgb, var(--bone) 5%, transparent); }
tr.acc-pos.open > td { background: color-mix(in srgb, var(--phosphor) 8%, transparent); }
tr.acc-pos-detail > td { padding: 0 8px 8px; }
.acc-detail { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 8px 10px;
  border-left: 2px solid var(--phosphor); border-radius: 0 4px 4px 0;
  background: color-mix(in srgb, var(--bone) 4%, transparent); }
.acc-detail .acc-d { font-size: 11px; color: var(--text); white-space: nowrap; }
.acc-detail .acc-d i { color: var(--dim); font-style: normal; margin-right: 5px; }
.acc-detail code { font-size: 10px; word-break: break-all; white-space: normal; }


.pub-box .pub-titled { display: grid; gap: 6px; margin: 8px 0; min-width: 0; }
.pub-box .pub-label { display: grid; gap: 3px; font-size: 12px; color: var(--dim); min-width: 0; }
.pub-box .pub-headline, .pub-box .pub-answer { width: 100%; min-width: 0; box-sizing: border-box; font: inherit;
  font-size: 14px; color: var(--text); background: var(--bg); border: 1px solid var(--grid); border-radius: 4px;
  padding: 6px 8px; }
.pub-box .pub-answer { resize: vertical; }
.pub-box .pub-save { justify-self: start; }
.pub-box .pub-source { font-size: 11px; color: var(--dim); }
.pub-box .pub-text { margin: 8px 0 0; padding: 8px 10px; max-height: 26rem; overflow-y: auto; overflow-x: hidden; white-space: pre-wrap; overflow-wrap: anywhere;
  font-family: var(--mono, ui-monospace, monospace); font-size: 12px; line-height: 1.45;
  border: 1px solid var(--grid, #17201a); border-radius: 6px; background: var(--bg, transparent); }
.pub-box .pub-hash { font-family: var(--mono, ui-monospace, monospace); font-size: 11px; color: var(--dim, #6f7d6c);
  margin-right: auto; min-width: 0; overflow-wrap: anywhere; }
.pub-box .pub-list { margin: 6px 0 0; padding-left: 18px; font-size: 11px; color: var(--dim, #6f7d6c); overflow-wrap: anywhere; }
.pub-box .pub-list.pub-refused { color: var(--down, #ff5c4d); }
.pub-box .pub-changes { margin: 6px 0 0; font-size: 11px; color: var(--dim, #6f7d6c); }
.pub-box .pub-changes summary { cursor: pointer; color: var(--text, inherit); }
.pub-box .pub-changes ol { margin: 4px 0 0; padding-left: 22px; max-height: 18em; overflow-x: hidden; overflow-y: auto; }
.pub-box .pub-changes li { margin: 2px 0; overflow-wrap: anywhere; }
.pub-box .pub-where { font-family: var(--mono, monospace); }
.pub-box .pub-before { text-decoration: line-through; opacity: .75; }
.pub-box .pub-after { color: var(--text, inherit); }
.pub-box .pub-gone { color: var(--down, #ff5c4d); }


.share-box .ss-field { display: grid; gap: 3px; font-size: 12px; color: var(--dim); margin: 8px 0 4px; min-width: 0; }
.share-box .ss-title, .share-box .ss-subtitle { width: 100%; min-width: 0; box-sizing: border-box; font: inherit; font-size: 14px;
  color: var(--text); background: var(--bg); border: 1px solid var(--grid); border-radius: 4px; padding: 6px 8px; }
.share-box .ss-body { margin: 10px 0 0; padding: 8px 12px; max-height: 26rem; overflow-y: auto; overflow-x: hidden;
  overflow-wrap: anywhere; border: 1px solid var(--grid); border-radius: 4px; font-size: 14px; line-height: 1.5; }
.share-box .ss-body h2, .share-box .ss-body h3 { font-size: 15px; margin: 12px 0 4px; }


.pub-box .pub-site { display: grid; gap: 6px; margin: 0 0 8px; font-size: 13px; min-width: 0; overflow-wrap: anywhere; }
.pub-box .pub-paused { color: var(--amber); }
.pub-box .pub-blocked { color: var(--down); }
.pub-box .pub-site-acts { display: flex; gap: 8px; flex-wrap: wrap; }


.pub-box .pub-public { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--grid); min-width: 0; }


.pb-row { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; min-width: 0; }
.pb { display: inline-flex; align-items: center; gap: 3px; padding: 0 6px; border: 1px solid var(--grid);
  border-radius: 9px; font-size: 11px; color: var(--faint, var(--dim)); white-space: nowrap; text-decoration: none; }
.pb.pb-out { color: var(--up); border-color: var(--up); }
.pb.pb-half { color: var(--dim); border-style: dashed; }
.pb.pb-warn { color: var(--warn); border-color: var(--warn); }
.pb.pb-bad { color: var(--down); border-color: var(--down); white-space: normal; overflow-wrap: anywhere; }
.pb .pb-s { display: none; }
.pb-bar { margin: 6px 0 0; min-width: 0; }
.pb-full { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.pb-full .pb { font-size: 12px; padding: 1px 8px; white-space: normal; overflow-wrap: anywhere; }
.pb-full .pb-why { color: var(--dim); }
.pb-mark { margin-top: 6px; font-size: 12px; color: var(--dim); }
.pb-mark { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pb-mark p { flex: 1 1 100%; margin: 0; }
.pb-mark .pb-url { width: min(100%, 320px); min-width: 0; }
@media (max-width: 600px) {
  .pb-row .pb .pb-l { display: none; }                 
  .pb-row .pb .pb-s { display: inline; }
}


.pub-at { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--grid); min-width: 0; }
.pub-at-head { margin-bottom: 6px; }
.pub-at-job { margin-bottom: 6px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; min-width: 0; }
.pub-at-job .share-published { overflow-wrap: anywhere; min-width: 0; }
.pub-at-form { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; min-width: 0; }
.pub-at-form input[type="date"] { min-width: 0; max-width: 100%; }
.pub-at-form .pub-at-time { width: 6.5em; min-width: 0; }
.pub-at-form select { min-width: 0; max-width: 100%; text-overflow: ellipsis; }
.pub-at-targets { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.pub-at-note:empty { display: none; }

#mk-list .an-item.mk-earlier { margin-left: 14px; width: calc(100% - 14px); opacity: .8; font-size: 12px; }
.mk-reeval { margin: 6px 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.mk-reeval span { min-width: 0; overflow-wrap: anywhere; }
