:root {
  --bg: #14161a;
  --card: #1c1f24;
  --border: #2b2f36;
  --text: #e8eaed;
  --muted: #9aa0a8;

  /* Convenzione unica con l'indicatore TradingView:
     resistenza (lato call) ROSSA, supporto (lato put) VERDE, flip ORO.
     Gli stessi due colori indicano anche valori negativi/positivi. */
  --resistenza: #ef5350;
  --supporto: #26a69a;
  --gold: #d9a441;
  --green: #26a69a;
  --red: #ef5350;
  --accent: #d9a441;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  min-height: 100vh;
  line-height: 1.5;
}

header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: calc(12px + env(safe-area-inset-top)) 16px 12px;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  background: var(--bg);
  z-index: 10;
}

.brand { display: flex; align-items: center; gap: 10px; }
h1 { font-size: 1.05rem; font-weight: 600; }
h1 span { color: var(--muted); font-weight: 400; font-size: 0.85rem; }

.head-right { display: flex; align-items: center; gap: 8px; }

/* Selettore strumento: due mondi separati, non due viste dello stesso dato */
.strumenti { display: flex; gap: 4px; background: var(--card); border: 1px solid var(--border); border-radius: 8px; padding: 2px; }
.strumenti button {
  background: transparent;
  border: none;
  color: var(--muted);
  font-family: inherit;
  font-size: 0.78rem;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}
.strumenti button.active { background: var(--bg); color: var(--text); font-weight: 600; }

#refresh {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 0.8rem;
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
}
#refresh:active { background: var(--card); }

.tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  position: sticky;
  top: 57px;
  z-index: 9;
  overflow-x: auto;
}
.tab {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-family: inherit;
  font-size: 0.8rem;
  padding: 11px 8px;
  cursor: pointer;
  white-space: nowrap;
}
.tab.active { color: var(--text); border-bottom-color: var(--gold); font-weight: 600; }
.tabpane { display: none; }
.tabpane.active { display: block; }

main { padding: 14px 14px 30px; max-width: 640px; margin: 0 auto; }

.status { text-align: center; color: var(--muted); padding: 8px; font-size: 0.8rem; }
.status.error { color: var(--red); }
.hidden { display: none; }

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
}
.card h2 { font-size: 0.95rem; font-weight: 600; margin-bottom: 4px; }
.caption { color: var(--muted); font-size: 0.78rem; margin: 6px 0 10px; }

.label { color: var(--muted); font-size: 0.75rem; }
.hero-top { display: flex; justify-content: space-between; align-items: center; }
.spot { font-size: 2.3rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; }
.regime {
  padding: 6px 14px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.8rem;
}
.regime.pos { background: rgba(38,166,154,0.16); color: var(--supporto); }
.regime.neg { background: rgba(239,83,80,0.16); color: var(--resistenza); }

.meaning {
  color: var(--text);
  font-size: 0.88rem;
  margin-top: 10px;
  line-height: 1.6;
}
.meaning b { font-weight: 600; }

/* ── La lettura di oggi ───────────────────────────────────────────────────
   Sempre aperta, mai a scomparsa: è il testo che tiene insieme tutto il
   resto. Riga alta e misura contenuta perché va letto, non consultato. */
.lettura { border-left: 3px solid var(--gold); }
.lettura h2 { margin-bottom: 10px; }
#lettura p {
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.72;
  margin: 0 0 13px;
}
#lettura p:last-child { margin-bottom: 0; }
#lettura b { font-weight: 600; color: #fff; }
/* Il capoletto in oro dà il ritmo: si trova il paragrafo che serve a colpo
   d'occhio senza doverli leggere tutti. */
#lettura p > b:first-child { color: var(--gold); }
#lettura .lt-fine {
  border-top: 1px solid var(--border);
  padding-top: 12px;
  margin-top: 15px;
}
#lettura .lt-nota { color: var(--muted); font-size: 0.78rem; }
.lt-disc {
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.5;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

/* ── KRISIS Brain ────────────────────────────────────────────────────────
   L'AI interpreta soltanto lo snapshot numerico. GPT e Agnes restano
   visivamente separati: una divergenza deve essere evidente, non mediata. */
.brain { border-left: 3px solid #7b72e9; }
.brain-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.brain-head .caption { margin-bottom: 0; }
.brain-mark {
  display: grid; place-items: center; flex: 0 0 34px; height: 34px;
  border-radius: 10px; color: #c8c3ff; font-size: 0.72rem; font-weight: 800;
  background: rgba(123,114,233,0.16); border: 1px solid rgba(123,114,233,0.42);
}
.brain-live { display: grid; grid-template-columns: 1fr; gap: 9px; margin-top: 14px; }
.brain-signal {
  min-width: 0; padding: 12px; border-radius: 11px;
  background: linear-gradient(145deg, rgba(123,114,233,0.08), rgba(20,22,26,0.58));
  border: 1px solid rgba(123,114,233,0.23);
}
.brain-signal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.brain-kicker {
  display: block; color: var(--muted); font-size: 0.61rem; line-height: 1.2;
  text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 3px;
}
.brain-signal h3 { font-size: 0.82rem; line-height: 1.3; }
.brain-chip {
  flex: 0 0 auto; padding: 3px 7px; border-radius: 999px; font-size: 0.62rem;
  font-weight: 700; color: var(--gold); background: rgba(217,164,65,0.12);
  border: 1px solid rgba(217,164,65,0.25);
}
.brain-chip.positive { color: var(--supporto); background: rgba(38,166,154,0.12); border-color: rgba(38,166,154,0.28); }
.brain-chip.negative { color: var(--resistenza); background: rgba(239,83,80,0.12); border-color: rgba(239,83,80,0.28); }
.brain-chip.muted { color: var(--muted); background: rgba(255,255,255,0.035); border-color: var(--border); }
.brain-signal-body { margin-top: 10px; }
.brain-placeholder { color: var(--muted); font-size: 0.71rem; line-height: 1.45; }
.brain-volume-main { display: flex; align-items: baseline; gap: 7px; margin-bottom: 9px; }
.brain-volume-main strong { font-size: 1.3rem; line-height: 1; font-variant-numeric: tabular-nums; }
.brain-volume-main span { color: var(--muted); font-size: 0.67rem; }
.brain-flow-labels, .brain-volume-meta { display: flex; justify-content: space-between; gap: 8px; }
.brain-flow-labels { color: var(--muted); font-size: 0.65rem; margin-bottom: 4px; }
.brain-flow-labels b { color: var(--text); font-weight: 600; }
.brain-flowbar {
  position: relative; overflow: hidden; height: 5px; border-radius: 999px;
  background: rgba(239,83,80,0.55);
}
.brain-flowbar::before {
  content: ""; display: block; width: var(--buy, 50%); height: 100%;
  background: var(--supporto); border-radius: inherit;
}
.brain-volume-meta { color: var(--muted); font-size: 0.64rem; margin-top: 7px; }
.brain-volume-note { color: var(--muted); font-size: 0.61rem; line-height: 1.35; margin-top: 7px; }
.brain-event-list { list-style: none; display: grid; gap: 8px; }
.brain-event { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; align-items: center; }
.brain-event-time {
  display: grid; place-items: center; min-height: 31px; border-radius: 8px;
  color: var(--gold); background: rgba(217,164,65,0.09); font-size: 0.68rem; font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.brain-event-title { color: var(--text); font-size: 0.69rem; line-height: 1.3; overflow-wrap: anywhere; }
.brain-event-meta { display: block; color: var(--muted); font-size: 0.61rem; margin-top: 2px; }
.brain-news {
  margin-top: 9px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,0.07);
  color: var(--muted); font-size: 0.62rem; line-height: 1.4;
}
.brain-news b { color: #c8c3ff; font-weight: 600; }
.brain-actions { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0 10px; }
.brain-actions button, .brain-pin button {
  background: var(--bg); border: 1px solid var(--border); color: var(--text);
  font-family: inherit; font-size: 0.78rem; padding: 7px 11px;
  border-radius: 8px; cursor: pointer;
}
.brain-actions button.primary { border-color: #7b72e9; color: #c8c3ff; background: rgba(123,114,233,0.1); }
.brain-actions button:disabled { opacity: 0.45; cursor: wait; }
.brain-pin {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  padding: 10px; margin-bottom: 10px; border-radius: 9px; background: var(--bg);
}
.brain-pin.hidden { display: none; }
.brain-pin label { color: var(--muted); font-size: 0.76rem; }
.brain-pin input {
  min-width: 145px; flex: 1; background: var(--card); border: 1px solid var(--border);
  color: var(--text); font-family: inherit; font-size: 0.82rem; padding: 7px 9px; border-radius: 7px;
}
.brain-pin input:focus-visible { outline: 2px solid #7b72e9; outline-offset: 1px; }
.brain-status { color: var(--muted); font-size: 0.76rem; line-height: 1.5; margin: 7px 0; }
.brain-status.error { color: var(--red); }
.brain-compare {
  margin: 12px 0 8px; padding: 9px 11px; border-radius: 8px;
  font-size: 0.8rem; font-weight: 600; background: var(--bg); border-left: 3px solid var(--muted);
}
.brain-compare.concorde { border-left-color: var(--supporto); color: var(--supporto); }
.brain-compare.divergente { border-left-color: var(--resistenza); color: var(--resistenza); }
.brain-compare.parziale { border-left-color: var(--gold); color: var(--gold); }
.brain-grid { display: grid; grid-template-columns: 1fr; gap: 9px; margin-top: 9px; }
.brain-result { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 12px; }
.brain-result-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.brain-provider { font-size: 0.84rem; font-weight: 700; }
.brain-model { color: var(--muted); font-size: 0.68rem; }
.brain-orient {
  padding: 3px 8px; border-radius: 999px; font-size: 0.7rem; font-weight: 700;
  background: rgba(255,255,255,0.05); color: var(--muted);
}
.brain-orient.rialzista { color: var(--supporto); background: rgba(38,166,154,0.13); }
.brain-orient.ribassista { color: var(--resistenza); background: rgba(239,83,80,0.13); }
.brain-orient.neutrale, .brain-orient.incerta { color: var(--gold); background: rgba(217,164,65,0.13); }
.brain-title { font-size: 0.88rem; margin: 2px 0 5px; }
.brain-summary { color: var(--text); font-size: 0.81rem; line-height: 1.6; }
.brain-section { margin-top: 10px; }
.brain-section h3 { color: var(--muted); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 3px; }
.brain-section ul { padding-left: 18px; }
.brain-section li { color: var(--text); font-size: 0.78rem; line-height: 1.5; margin: 3px 0; }
.brain-next { margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--border); color: var(--gold); font-size: 0.78rem; }
.brain-provider-error { color: var(--red); font-size: 0.8rem; }
.brain-privacy { margin-top: 12px; }

@media (min-width: 560px) {
  .brain-live { grid-template-columns: 1fr 1fr; }
  .brain-grid.dual { grid-template-columns: 1fr 1fr; }
}

/* ── Flussi ───────────────────────────────────────────────────────────── */
.fl-cfg { display: flex; align-items: center; gap: 10px; margin: 10px 0 14px; flex-wrap: wrap; }
.fl-cfg-lbl { color: var(--muted); font-size: 0.78rem; }
.fl-sess { display: flex; gap: 4px; background: var(--bg); border-radius: 8px; padding: 3px; }
.fl-sess button {
  background: none; border: none; color: var(--muted);
  font-size: 0.76rem; padding: 5px 10px; border-radius: 6px; cursor: pointer;
}
.fl-sess button.active { background: var(--card); color: var(--text); font-weight: 600; }
.fl-gap { color: var(--muted); font-size: 0.79rem; line-height: 1.5; margin-bottom: 12px; }

/* Il bilancio viene prima dei singoli strike: la domanda vera non è quale
   strike si è mosso, ma da che parte del prezzo si è spostato il peso. */
.fl-bias { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.fl-b {
  font-size: 0.84rem; line-height: 1.62;
  padding: 11px 13px; border-radius: 9px;
  border-left: 3px solid var(--muted);
  background: var(--bg);
  color: var(--text);
}
.fl-b b { font-weight: 600; color: #fff; }
.fl-b.pos { border-left-color: var(--supporto); }
.fl-b.neg { border-left-color: var(--resistenza); }
.fl-b.neu { border-left-color: var(--muted); }

.fl-h3 {
  font-size: 0.78rem; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.06em;
  margin: 0 0 6px;
}
.fl-row { padding: 11px 0; border-bottom: 1px solid var(--border); }
.fl-row:last-child { border-bottom: none; }
.fl-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.fl-name { font-size: 0.85rem; color: var(--text); }
.fl-name b { font-weight: 700; font-variant-numeric: tabular-nums; }
.fl-val { font-weight: 700; font-size: 0.95rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fl-val.pos { color: var(--green); }
.fl-val.neg { color: var(--red); }
.fl-pos { color: var(--muted); font-size: 0.76rem; margin-top: 2px; }
.fl-tag {
  display: inline-block; margin-top: 6px;
  font-size: 0.75rem; line-height: 1.45;
  padding: 4px 9px; border-radius: 6px;
  background: rgba(217,164,65,0.13); color: var(--gold);
}
.fl-tag.medio { background: rgba(255,255,255,0.05); color: var(--muted); }
.fl-eff { font-size: 0.82rem; line-height: 1.6; color: var(--text); margin-top: 6px; }
.fl-eff b { font-weight: 600; color: #fff; }

/* Scala dei livelli: il colpo d'occhio della Panoramica.
   Ordine di prezzo dall'alto in basso, con la riga "ORA" al posto giusto. */
.scala { margin-top: 14px; border-top: 1px solid var(--border); }
.sc-riga {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.84rem;
}
.sc-riga:last-child { border-bottom: none; }
.sc-p { font-variant-numeric: tabular-nums; font-weight: 700; min-width: 62px; }
.sc-n { flex: 1; color: var(--muted); display: flex; align-items: center; gap: 8px; }
.sc-n.res { color: var(--resistenza); }
.sc-n.sup { color: var(--supporto); }
.sc-n.flip { color: var(--gold); }
.sc-n.em { color: #78b4dc; }
.sc-d { color: var(--muted); font-variant-numeric: tabular-nums; min-width: 48px; text-align: right; }
.sc-bar { flex: 1; max-width: 90px; height: 4px; background: var(--bg); border-radius: 2px; overflow: hidden; }
.sc-bar i { display: block; height: 100%; border-radius: 2px; }
.sc-bar i.res { background: var(--resistenza); }
.sc-bar i.sup { background: var(--supporto); }

/* La riga del prezzo attuale è l'unica cosa che deve saltare all'occhio */
.sc-ora {
  background: rgba(217, 164, 65, 0.12);
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
  margin: 2px -16px;
  padding: 9px 16px;
}
.sc-ora .sc-p { color: var(--gold); font-size: 1.05rem; }
.sc-ora .sc-n { color: var(--gold); font-weight: 600; letter-spacing: 0.06em; }

/* Stato sintetico, stessa classificazione dell'indicatore TradingView */
.stato {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.stato-badge {
  display: inline-block;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 4px 11px;
  border-radius: 7px;
  margin-right: 8px;
}
.stato-badge.calmo { background: rgba(38,166,154,0.18); color: var(--supporto); }
.stato-badge.attenzione { background: rgba(217,164,65,0.18); color: var(--gold); }
.stato-badge.rischio { background: rgba(239,83,80,0.18); color: var(--resistenza); }
.stato-testo { font-size: 0.84rem; color: var(--muted); line-height: 1.6; }

/* Righe metrica: nome+valore a sinistra, spiegazione sotto */
.mrow {
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.mrow:last-child { border-bottom: none; }
.mrow .mhead {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}
.mrow .mname { color: var(--muted); font-size: 0.82rem; }
.mrow .mval { font-weight: 700; font-size: 1.05rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.mrow .mval.pos { color: var(--green); }
.mrow .mval.neg { color: var(--red); }
.mrow .mtext { color: var(--text); font-size: 0.82rem; margin-top: 7px; line-height: 1.55; }
.mrow .bar-wrap { background: var(--bg); border-radius: 4px; height: 6px; margin-top: 7px; overflow: hidden; }
.mrow .bar { height: 100%; border-radius: 4px; }
.mrow .bar.resistenza { background: var(--resistenza); }
.mrow .bar.supporto { background: var(--supporto); }

details {
  margin-top: 10px;
  border-top: 1px solid var(--border);
  padding-top: 10px;
}
details summary {
  color: var(--gold);
  font-size: 0.82rem;
  cursor: pointer;
  list-style: none;
}
details summary::before { content: "ⓘ "; }
details p { color: var(--muted); font-size: 0.82rem; line-height: 1.65; margin-top: 8px; }
details p b { color: var(--text); font-weight: 600; }
details code {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 5px;
  font-size: 0.78rem;
}

.line-row { display: flex; gap: 10px; align-items: center; }
.line-row code {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  font-size: 0.78rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  overflow-x: auto;
  white-space: nowrap;
}
#copy {
  background: var(--gold);
  color: #1a1a1a;
  border: none;
  border-radius: 8px;
  padding: 10px 16px;
  font-weight: 600;
  font-size: 0.82rem;
  font-family: inherit;
  cursor: pointer;
}

canvas { width: 100%; display: block; margin-top: 8px; }
.tv-chart { width: 100%; height: 360px; margin-top: 8px; }

/* L'overlay delle forze sta sopra il grafico ma non intercetta il tocco:
   pan e zoom devono continuare ad arrivare a lightweight-charts. */
.tv-wrap { position: relative; }
.tv-overlay {
  position: absolute;
  top: 8px; left: 0;          /* 8px = il margin-top di .tv-chart */
  pointer-events: none;
}

/* Interruttori dei livelli: spenti sono grigi e piatti, accesi prendono il
   colore. Servono perché con tutto acceso il grafico torna illeggibile. */
.ch-strati { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.ch-strati-lbl {
  font-size: 0.72rem; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.05em; margin-right: 2px;
}
.ch-strati button {
  background: var(--bg); border: 1px solid var(--border); color: var(--muted);
  font-size: 0.75rem; padding: 5px 11px; border-radius: 999px; cursor: pointer;
}
.ch-strati button.on {
  border-color: var(--gold); color: var(--gold);
  background: rgba(217,164,65,0.1); font-weight: 600;
}

.alert-banner {
  background: rgba(217,164,65,0.12);
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: 0.84rem;
  padding: 10px 14px;
  border-radius: 10px;
  margin-bottom: 10px;
}
/* Parametri del rischio: si toccano una volta e restano */
.rk-cfg { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; font-size: 0.82rem; margin: 8px 0 12px; color: var(--muted); }
.rk-cfg label { display: flex; gap: 7px; align-items: center; }
.rk-cfg input, .rk-cfg select {
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: inherit;
  font-size: 0.82rem;
  padding: 5px 8px;
  border-radius: 6px;
}
.rk-cfg input[type="number"] { width: 92px; }

.alert-cfg { display: flex; gap: 20px; align-items: center; font-size: 0.84rem; margin-top: 6px; }
.alert-cfg label { display: flex; gap: 7px; align-items: center; }
.alert-cfg input[type="checkbox"] { accent-color: var(--gold); width: 16px; height: 16px; }
.alert-cfg input[type="number"] {
  width: 60px;
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: inherit;
  font-size: 0.84rem;
  padding: 5px 8px;
  border-radius: 6px;
}

.sim-spot { display: flex; justify-content: space-between; align-items: baseline; margin: 6px 0; }
.sim-big { font-size: 1.6rem; font-weight: 700; color: var(--gold); font-variant-numeric: tabular-nums; }
#sim-range { width: 100%; accent-color: var(--gold); margin: 4px 0 10px; }
.sim-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.84rem;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
}
.sim-row span:first-child { color: var(--muted); }
.sim-row span:last-child { text-align: right; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 0.8rem; font-variant-numeric: tabular-nums; }
th, td { padding: 7px 8px; text-align: right; border-bottom: 1px solid var(--border); white-space: nowrap; }
th { color: var(--muted); font-weight: 500; }
th:first-child, td:first-child { text-align: left; }

/* Grafico a candele */
.tf-row { display: flex; justify-content: space-between; align-items: center; flex-wrap:wrap; gap:12px; margin-bottom: 4px; }
.tf-pick { display: inline-flex; align-items: center; gap: 8px; }
.tf-pick-lbl { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.tf-select {
  appearance: none;
  -webkit-appearance: none;
  background: rgba(217,164,65,0.1)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23d9a441' stroke-width='1.6' stroke-linecap='round'/></svg>")
    no-repeat right 9px center / 11px 7px;
  border: 1px solid var(--gold);
  color: var(--text);
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 6px 28px 6px 11px;
  border-radius: 7px;
  cursor: pointer;
}
.tf-select:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.tf-select option, .tf-select optgroup { background: #12151b; color: var(--text); }
.chart-price { font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; font-size: 0.76rem; color: var(--muted); }
.lgd { display: inline-flex; align-items: center; gap: 5px; }
.lgd i { width: 11px; height: 3px; border-radius: 2px; display: inline-block; }

.io-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.io-row button, .io-file {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  font-family: inherit;
  font-size: 0.8rem;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
}
.io-row button:active, .io-file:active { background: var(--bg); }

.lg { margin-left: 6px; }
.lg-gold { color: var(--gold); }
.lg-white { color: var(--text); }
.lg-green { color: var(--supporto); }
.lg-red { color: var(--resistenza); }

.disclaimer {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.6;
  margin-top: 18px;
  text-align: center;
  padding-bottom: env(safe-area-inset-bottom);
}

/* Stato delle fonti e riepilogo sempre leggibili, anche con dati parziali. */
.feed-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 6px 0 16px; }
.feed-chip { min-width: 0; border: 1px solid var(--border); border-radius: 9px; padding: 9px 12px; background: var(--card); }
.feed-chip strong { display: block; font-size: 0.75rem; }
.feed-chip span { display: block; color: var(--muted); font-size: 0.72rem; margin-top: 2px; }
.feed-chip.ok strong::before, .feed-chip.warning strong::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 7px; background: var(--green); }
.feed-chip.warning strong::before { background: var(--gold); }
.feed-chip.warning span { color: #e7bd73; }
#refresh:disabled { opacity: 0.65; cursor: wait; }
button:focus-visible, input:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.daily-summary { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 10px; }
.summary-head { display: flex; justify-content: space-between; gap: 8px; font-size: 0.68rem; color: var(--muted); margin-bottom: 5px; }
.summary-level { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 0.8rem; font-variant-numeric: tabular-nums; }
.summary-level:last-child { border-bottom: none; }
.summary-level strong { font-weight: 500; }
.summary-level small { display: block; color: var(--muted); font-size: 0.66rem; }
.summary-level > span { min-width: 70px; text-align: right; color: var(--gold); }

@media (min-width: 1000px) {
  main { max-width: 1200px; padding: 20px 28px 36px; }
  main:not(.today-layout) { max-width: 850px; }
  .today-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 14px 20px; align-items: start;
    grid-template-areas: "status status" "feeds feeds" "alerts alerts" "broker broker" "chart hero" "chart levels" "decision decision" "research research" "brief brief" "database database" "reading reading" "brain brain" "tools tools" "footer footer"; }
  .today-layout.without-chart { grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "status status" "feeds feeds" "alerts alerts" "decision decision" "brief brief" "hero levels" "reading reading" "brain brain" "tools tools" "footer footer"; }
  .today-layout > .status { grid-area: status; text-align: left; padding: 0; }
  .today-layout > .feed-status { grid-area: feeds; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
  .today-layout [data-pane="deck"].active { display: contents; }
  .today-layout #alerts { grid-area: alerts; }
  .today-layout #database-card { grid-area: database; margin: 0; }
  .today-layout #broker-card { grid-area: broker; margin: 0; }
  .today-layout #research-card { grid-area: research; margin: 0; }
  .today-layout #decision-card { grid-area: decision; margin: 0; }
  .today-layout #alerts:empty { display: none; }
  .today-layout #brief-card { grid-area: brief; margin: 0; }
  .today-layout #hero, .today-layout #vuoto-card { grid-area: hero; margin: 0; }
  .today-layout #levels-card { grid-area: levels; margin: 0; }
  .today-layout #lettura-card { grid-area: reading; margin: 0; }
  .today-layout #brain-card { grid-area: brain; margin: 0; }
  .today-layout [data-pane="grafico"] { grid-area: chart; min-width: 0; position: sticky; top: 115px; }
  .today-layout [data-pane="grafico"] > .card { margin: 0; }
  .today-layout .tv-chart { height: 480px; }
  .today-layout [data-pane="strumenti"].active { grid-area: tools; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .today-layout [data-pane="strumenti"] > .card { min-width: 0; margin: 0; }
  .today-layout #line-card { grid-column: 1 / -1; }
  .today-layout > .disclaimer { grid-area: footer; }
  .brain-live { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  header { gap: 8px; flex-wrap: wrap; }
  h1 span { display: none; }
  #refresh { padding: 8px; font-size: 0.72rem; }
  .strumenti button { padding: 6px 8px; }
  .summary-level { gap: 8px; }
  .hero-top { gap: 8px; }
  .regime { padding: 6px 9px; font-size: 0.72rem; }
}

/* Il briefing distingue osservazioni, dati mancanti e prezzi ipotetici. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.brief-card { background: linear-gradient(120deg, #21262c 0%, #1a1e24 70%); padding: 24px; border-top: 2px solid var(--gold); }
.brief-topline { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.eyebrow { font-size: 0.65rem; letter-spacing: 0.13em; text-transform: uppercase; color: var(--muted); }
.brief-card h2 { font-size: clamp(1.25rem, 2.5vw, 1.9rem); font-weight: 650; letter-spacing: -0.025em; line-height: 1.2; }
.brief-summary { max-width: 850px; color: #b4bbc5; font-size: 0.86rem; line-height: 1.65; margin: 8px 0 18px; }
.brief-quality { font-size: 0.67rem; border: 1px solid var(--border); padding: 4px 9px; border-radius: 999px; flex-shrink: 0; color: var(--muted); }
.brief-quality.warning { color: #e6bb70; border-color: #665332; background: #d9a4410d; }
.brief-quality.ok { color: #76cec3; border-color: #32605c; }
.brief-tabs { display: flex; gap: 22px; border-bottom: 1px solid #343a43; margin-bottom: 16px; }
.brief-tabs button { background: none; color: var(--muted); border: none; border-bottom: 2px solid transparent; font: inherit; font-size: 0.78rem; padding: 10px 0; cursor: pointer; }
.brief-tabs button[aria-selected="true"] { color: var(--text); border-bottom-color: var(--gold); }
[role="tabpanel"][hidden] { display: none; }
.evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.evidence-item { min-width: 0; padding: 0 18px 0 0; border-right: 1px solid #343a43; }
.evidence-item:last-child { border-right: 0; }
.evidence-item > span { color: var(--muted); font-size: 0.72rem; }
.evidence-item > strong { display: block; font-size: 1.55rem; font-weight: 500; letter-spacing: -0.03em; margin: 2px 0; font-variant-numeric: tabular-nums; }
.evidence-item > p { font-size: 0.71rem; color: #a4adb8; }
.brief-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border); }
.brief-card h3 { font-size: 0.77rem; font-weight: 600; margin-bottom: 5px; }
.brief-bottom p, .brief-method p, .change-empty p { font-size: 0.75rem; line-height: 1.65; color: #aab3bf; }
.brief-method { border-top: 1px solid var(--border); padding-top: 10px; margin-top: 16px; }
.brief-method summary { font-size: 0.72rem; color: #aab3bf; }
.brief-method a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.quality-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.quality-check { display: flex; gap: 9px; align-items: flex-start; }
.quality-check strong { font-size: 0.74rem; font-weight: 500; }
.quality-dot { width: 6px; height: 6px; flex-shrink: 0; margin-top: 8px; border-radius: 50%; background: var(--muted); }
.quality-dot.ok { background: var(--green); }
.quality-dot.warning { background: var(--gold); }
.snapshot-meta { margin-top: 10px; font-size: 0.68rem; color: var(--muted); }
.price-map { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 10px; }
.price-map summary { font-size: 0.72rem; }
.regime.neutral { color: var(--muted); background: #9aa0a811; }
.watch-list { margin-top: 16px; }
.watch-item { display: flex; gap: 14px; margin-bottom: 16px; }
.watch-item > span { color: var(--gold); font-size: 0.72rem; font-variant-numeric: tabular-nums; padding-top: 3px; }
.watch-item b { font-size: 0.79rem; font-weight: 500; }
#lettura .watch-item p { font-size: 0.78rem; color: #aab3bf; line-height: 1.6; margin: 4px 0 0; }
.scenario-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.scenario-top .eyebrow { display: block; }
.scenario-top output { display: block; font-size: 1.75rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.scenario-top button, .scenario-presets button { border: 1px solid #414854; border-radius: 8px; color: var(--text); background: #14161a66; padding: 8px 12px; font: inherit; font-size: 0.72rem; cursor: pointer; }
#scenario-slider { width: 100%; accent-color: var(--gold); margin: 16px 0; }
.scenario-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.scenario-presets button { display: flex; gap: 8px; align-items: center; }
.scenario-presets button span { color: var(--muted); }
.scenario-presets button[aria-pressed="true"] { border-color: var(--gold); }
.scenario-output { background: #13161b66; border-radius: 10px; padding: 14px; margin-top: 14px; }
.scenario-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.scenario-metrics span { display: block; font-size: 0.69rem; color: var(--muted); }
.scenario-metrics strong { display: block; font-size: 1.1rem; font-weight: 500; margin-top: 4px; font-variant-numeric: tabular-nums; }
.scenario-reading { font-size: 0.78rem; margin-top: 12px; line-height: 1.6; }
.scenario-nearest { color: var(--gold); font-size: 0.72rem; margin-top: 7px; }
.change-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-bottom: 14px; }
.change-head > span { font-size: 0.69rem; color: var(--muted); }
.change-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.change-item { background: #13161b66; border: 1px solid var(--border); border-radius: 9px; padding: 12px; }
.change-item span, .change-item small { display: block; color: var(--muted); font-size: 0.69rem; }
.change-item strong { display: block; font-size: 1.35rem; font-weight: 500; margin: 4px 0; }
.change-empty { padding: 12px 0; max-width: 660px; }
.change-empty h3 { font-size: 1rem; margin: 8px 0; }
.change-empty p + p { margin-top: 8px; }
.oi-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 14px 0; }
.oi-totals > div { border: 1px solid var(--border); border-radius: 8px; padding: 10px; }
.oi-totals span { display: block; color: var(--muted); font-size: 0.72rem; }
.oi-totals b { display: block; font-size: 1.05rem; font-weight: 500; }
.trading-readiness { border-left: 2px solid var(--gold); padding: 10px 12px; margin: 12px 0 18px; background: #d9a44108; }
.trading-readiness strong { font-size: 0.76rem; font-weight: 500; color: #e6bb70; }
.trading-readiness p { font-size: 0.72rem; color: #aab3bf; line-height: 1.55; margin: 4px 0 0; }
.evidence-item > strong { font-size: 1.15rem; overflow-wrap: anywhere; }
.plan-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.plan-heading a { font-size: 0.72rem; color: var(--gold); }
.plan-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.plan-form label { display: flex; flex-direction: column; gap: 5px; font-size: 0.72rem; color: var(--muted); min-width: 0; }
.plan-form input, .plan-form select { width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid #414854; border-radius: 6px; background: #14161a; color: var(--text); font: inherit; font-size: 0.8rem; }
.plan-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 14px; border-radius: 10px; background: #13161b66; margin-top: 16px; }
.plan-results span { display: block; font-size: 0.7rem; color: var(--muted); }
.plan-results strong { display: block; font-size: 1.05rem; font-weight: 500; margin-top: 4px; }
.plan-empty { margin-top: 16px; color: var(--gold); font-size: 0.78rem; line-height: 1.6; }
.database-card { border-top: 2px solid var(--gold); }
.database-card button { border: 1px solid #414854; border-radius: 8px; color: var(--text); background: #14161a66; padding: 8px 12px; font: inherit; font-size: .72rem; cursor: pointer; }
.database-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.database-metrics span { display: block; color: var(--muted); font-size: .7rem; }
.database-metrics strong { display: block; font-size: .95rem; font-weight: 500; margin-top: 5px; overflow-wrap: anywhere; }
.database-findings p { font-size: .8rem; line-height: 1.6; color: #bac3cf; margin: 8px 0; }
@media (min-width: 1000px) { .database-findings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 28px; } }
.database-source { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: .7rem; }
.database-source strong { width: 100%; font-weight: 500; }
.database-source span { color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 600px) { .database-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.plan-settings summary { font-size: 0.75rem; }
@media (max-width: 600px) {
  .brief-card { padding: 18px 16px; }
  .brief-topline { flex-wrap: wrap; gap: 6px; }
  .brief-tabs { gap: 14px; }
  .brief-tabs button { font-size: 0.71rem; }
  .evidence-grid { grid-template-columns: 1fr; gap: 14px; }
  .evidence-item { padding: 0 0 12px; border-right: 0; border-bottom: 1px solid var(--border); }
  .evidence-item:last-child { border-bottom: 0; padding-bottom: 0; }
  .evidence-item > span { font-size: 0.65rem; }
  .evidence-item > strong { font-size: 1.2rem; }
  .evidence-item > p { display: block; }
  .brief-bottom { grid-template-columns: 1fr; gap: 12px; }
  .quality-checks, .change-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scenario-metrics { grid-template-columns: 1fr; gap: 10px; }
  .scenario-metrics > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 4px 12px; }
  .scenario-metrics .metric-purpose { grid-column: 1 / -1; }
  .scenario-metrics strong { margin: 0; }
  .scenario-top button { max-width: 130px; }
  .change-head { display: block; }
}

/* La frase essenziale è leggibile senza aprire un pannello. */
.metric-purpose { color: #b8c2ce; font-size: .76rem; line-height: 1.6; margin: 7px 0 0; font-weight: 400; }
.evidence-item > .metric-purpose { font-size: .76rem; color: #b8c2ce; line-height: 1.6; }
.summary-level .metric-purpose { max-width: 40ch; font-size: .72rem; }
.metric-details { margin-top: 8px; }
.metric-details summary { color: var(--gold); font-size: .72rem; cursor: pointer; padding: 4px 0; }
.metric-details summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 3px; }
.metric-details p { font-size: .76rem; color: #b8c2ce; line-height: 1.6; margin-top: 7px; }
.field-help { display: block; font-size: .72rem; font-weight: 400; color: #b8c2ce; line-height: 1.55; white-space: normal; }
.alert-cfg { flex-wrap: wrap; }
.alert-cfg label:has(.field-help) { max-width: 34ch; flex-wrap: wrap; }
.alert-cfg .field-help { flex-basis: 100%; margin-top: 5px; }
.database-source .metric-purpose { flex-basis: 100%; margin-top: 0; }
.database-findings .metric-purpose { font-size: .72rem; color: var(--muted); margin-top: -3px; }
.mrow .mhead { gap: 12px; flex-wrap: wrap; }
.decision-card { border-top: 2px solid var(--gold); }
.decision-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 12px; }
.decision-heading label { font-size: .72rem; color: var(--muted); }
.decision-heading select { display: block; margin-top: 4px; padding: 6px; background: var(--bg); color: var(--text); border: 1px solid var(--border); border-radius: 6px; }
.decision-card > h2 { font-size: 1.2rem; line-height: 1.4; }
.decision-summary { color: #c4ced9; line-height: 1.6; font-size: .84rem; }
.decision-scenarios { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin: 18px 0; }
.decision-scenario { padding: 16px; border: 1px solid var(--border); border-radius: 10px; background: #13161b66; min-width: 0; }
.decision-scenario.observed { border-color: var(--gold); }
.decision-scenario h3 { font-size: .85rem; font-weight: 600; margin-bottom: 10px; }
.decision-trigger { font-size: .82rem; color: var(--muted); }
.decision-trigger strong { font-size: 1.35rem; color: var(--text); margin-left: 4px; }
.decision-trigger span { display: block; font-size: .7rem; margin-top: 4px; }
.decision-scenario dt { font-size: .73rem; color: var(--gold); margin-top: 12px; }
.decision-scenario dd { margin: 4px 0 0; font-size: .77rem; color: #bbc5d1; line-height: 1.6; }
.decision-scenario button { margin-top: 16px; padding: 8px 12px; background: var(--bg); border: 1px solid #414854; border-radius: 6px; color: var(--text); cursor: pointer; font: inherit; font-size: .73rem; }
.decision-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 14px 0; }
.decision-check { display: flex; gap: 10px; align-items: baseline; font-size: .75rem; }
.decision-check > span { flex-shrink: 0; font-size: .66rem; }
.decision-check .ok { color: var(--green); }
.decision-check .pending { color: var(--gold); }
.decision-check p { margin-top: 4px; color: var(--muted); line-height: 1.6; }
@media (max-width:600px) { .decision-scenarios, .decision-checks { grid-template-columns: 1fr; } }

/* Stessa scala per entrambe le direzioni; testo e numeri accompagnano il colore. */
.score-worst { --score-ink: #ff9eab; --score-fill: #800d25; --score-bg: #430d1b; }
.score-unfavorable { --score-ink: #ffb2a7; --score-fill: #d34b3f; --score-bg: #41211f; }
.score-neutral { --score-ink: #d4d9df; --score-fill: #a1aab6; --score-bg: #30353d; }
.score-favorable { --score-ink: #b4ecd1; --score-fill: #3aa476; --score-bg: #193a2d; }
.score-best { --score-ink: #b5f9c9; --score-fill: #29c563; --score-bg: #123b24; }
.score-unknown { --score-ink: #f5d580; --score-fill: #d9a441; --score-bg: #3c3019; }
.score-legend { display: flex; justify-content: space-between; gap: 8px; padding: 13px 0 0; margin: 15px 0 9px; position: relative; font-size: .68rem; color: #d4d9df; }
.score-legend::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; border-radius: 10px; background: linear-gradient(90deg,#800d25 0%,#d34b3f 25%,#a1aab6 50%,#3aa476 75%,#29c563 100%); }
.score-badge { display: inline-flex; gap: 2px; align-items: baseline; justify-content: center; padding: 5px 9px; border-radius: 7px; color: var(--score-ink); background: var(--score-bg); border: 1px solid var(--score-fill); font-size: 1.15rem; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.score-badge small { font-size: .62rem; font-weight: 400; }
.score-meter { display: block; height: 5px; width: 100%; border-radius: 4px; background: #ffffff0b; overflow: hidden; }
.score-meter i { display: block; height: 100%; background: var(--score-fill); }
.scenario-score-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.scenario-score-head h3 { margin: 0; }
.decision-scenario { border-top: 3px solid var(--score-fill,var(--border)); }
.decision-scenario.observed { border-color: var(--score-fill); }
.score-status { color: var(--score-ink); font-size: .72rem; margin: 7px 0 4px; }
.score-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 5px 12px; margin: 22px 0 10px; }
.score-heading h3 { font-size: .88rem; }
.score-heading > span { font-size: .68rem; color: var(--muted); }
.score-evidence { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.score-row { display: grid; grid-template-columns: minmax(0,1fr) 90px 90px; gap: 16px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.score-row:last-child { border-bottom: 0; }
.score-row:nth-child(even) { background: #ffffff02; }
.score-row h4 { font-size: .78rem; font-weight: 600; }
.score-row h4 small { display: inline-block; font-size: .64rem; font-weight: 400; color: var(--muted); margin-left: 5px; }
.score-row-copy p { font-size: .72rem; color: #b8c2ce; line-height: 1.6; margin-top: 5px; max-width: 90ch; }
.score-direction { text-align: center; min-width: 0; }
.score-direction > span:first-child { display: block; font-size: .64rem; color: var(--muted); margin-bottom: 5px; }
.score-direction .score-meter { margin-top: 7px; }
.score-method { margin: 12px 0 18px; }
.score-method summary { font-size: .75rem; color: var(--gold); cursor: pointer; }
.score-method a { color: var(--gold); }
.scenario-reasons { margin: 14px 0; font-size: .75rem; color: #c4ced9; line-height: 1.6; }
.scenario-reasons h4 { font-size: .72rem; color: var(--text); margin: 12px 0 5px; }
.scenario-reasons ul { padding-left: 18px; }
.scenario-reasons li + li { margin-top: 5px; }
.scenario-reasons strong { font-weight: 500; }
.scenario-execution { padding: 10px 12px; background: var(--score-bg); color: var(--score-ink); border-left: 2px solid var(--score-fill); border-radius: 4px; font-size: .73rem; margin: 12px 0; }
.scenario-conditions { margin-top: 12px; }
.scenario-conditions summary { font-size: .72rem; color: var(--gold); cursor: pointer; }
@media (max-width:600px) {
  .score-row { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 14px; }
  .score-row-copy { grid-column: 1 / -1; }
  .score-direction { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
  .score-direction > span:first-child { margin: 0; }
  .score-direction .score-badge { font-size: .95rem; padding: 4px 6px; }
  .score-direction .score-meter { flex-basis: 100%; margin-top: 0; }
}
/* Probabilità: tre eventi distinti, mai un indice euristico promosso a fiducia. */
.research-card {grid-column:1/-1;border-top:3px solid var(--accent,#d7b56d)}
.broker-card {border-top:3px solid var(--green);}
.broker-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.broker-heading h2 {margin:4px 0}
.broker-state {padding:7px 12px;border-radius:20px;font-size:.76rem;white-space:nowrap}
.broker-state.live {color:#b4ecd1;background:#193a2d;border:1px solid #3aa476}
.broker-state.waiting {color:#f5d580;background:#3c3019;border:1px solid #d9a441}
.broker-quotes {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.broker-quotes>div,.broker-movements>div {min-width:0;padding:14px;background:#ffffff04;border:1px solid var(--border);border-radius:9px}
.broker-quotes span,.broker-movements span {display:block;color:var(--muted);font-size:.72rem}
.broker-quotes strong {display:block;font-size:1.65rem;font-variant-numeric:tabular-nums;margin:6px 0}
.broker-quotes small,.broker-movements small {display:block;color:var(--muted);font-size:.7rem;line-height:1.5}
.broker-movements {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.broker-movements strong {display:block;margin:7px 0;font-size:1.2rem;font-variant-numeric:tabular-nums}
.broker-facts {font-size:.76rem;color:#b8c2ce;line-height:1.7;margin:16px 0}
.broker-reading {margin-top:18px;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-top:16px}
.broker-reading>div {min-width:0}.broker-reading strong {font-size:.78rem;color:var(--gold)}
.broker-reading p {font-size:.74rem;line-height:1.65;color:#c4ced9;margin-top:7px}
@media(max-width:800px) {.broker-reading {grid-template-columns:1fr;gap:14px}}
.broker-actions {display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.broker-actions button {padding:9px 14px;background:#193a2d;border:1px solid #3aa476;border-radius:7px;color:#b4ecd1;cursor:pointer;font:inherit;font-size:.78rem}
.broker-actions button:disabled {opacity:.45;cursor:default}
.broker-card details {margin-top:16px}

/* La sintesi è la prima risposta; fonti e misure sono nella scheda Perché. */
.assistant-card {border-top:3px solid var(--gold);background:linear-gradient(135deg,#25262b,var(--card) 60%);}
.assistant-top,.assistant-toolbar {display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.assistant-card h2 {font-size:1.55rem;line-height:1.3;max-width:900px;margin:16px 0 12px}
.assistant-summary {font-size:1rem;line-height:1.8;color:#e0e4e9;max-width:1100px}
.assistant-toolbar {margin:20px 0;border-top:1px solid var(--border);padding-top:16px}
.assistant-toolbar label {font-size:.8rem;color:var(--muted)}
.assistant-toolbar select {color:var(--text);border:1px solid #454854;border-radius:7px;background:var(--bg);padding:8px;font:inherit;margin-left:8px;max-width:100%}
.assistant-body {display:grid;grid-template-columns:1fr 1fr;gap:28px}
.assistant-section-title {font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--gold);margin-bottom:10px}
.assistant-item {border-left:2px solid #414854;padding:8px 12px;margin:0 0 12px}
.assistant-item.contrast {border-color:var(--gold)}
.assistant-item.observed {border-color:var(--green)}
.assistant-item h3 {font-size:.82rem;font-weight:600;margin-bottom:6px}
.assistant-item p {font-size:.82rem;line-height:1.75;color:#c7ced8}
.assistant-caution {padding:14px 0;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem;line-height:1.7}
.assistant-actions {display:flex;gap:9px;flex-wrap:wrap;margin:0 0 15px}
.assistant-actions button {border:1px solid #414854;border-radius:7px;background:transparent;color:var(--text);padding:9px 12px;font:inherit;font-size:.78rem;cursor:pointer}
.assistant-actions button:first-child {border-color:var(--gold);color:var(--gold)}
.assistant-actions button:disabled {opacity:.45;cursor:default}
.scenario-memory {margin:20px 0;padding:18px;border:1px solid #46505e;border-radius:12px;background:#10151c66}
.validation-table {overflow-x:auto;margin:18px 0}
.validation-table table {border-collapse:collapse;min-width:800px;width:100%;font-size:.8rem;text-align:left}
.validation-table th,.validation-table td {padding:12px;border-bottom:1px solid var(--border);vertical-align:top}
.validation-table thead {color:var(--gold)}
.validation-table small {display:block;color:var(--muted);font-size:.7rem;margin-top:6px}
.validation-table-wrap {max-width:100%;overflow-x:auto;margin:18px 0}
.validation-table-wrap > table.validation-table {border-collapse:collapse;min-width:1100px;width:100%;font-size:.8rem;text-align:left}
.research-card {min-width:0}
#outlook-validation-results p {font-size:.83rem;line-height:1.75;margin:12px 0}
#assistant-validation {border-left:2px solid var(--gold);padding:8px 12px;margin:12px 0}
.scenario-memory[hidden] {display:none}
.scenario-header {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.scenario-header h3 {font-size:.95rem;margin:0}
.scenario-status {padding:5px 9px;border:1px solid #556171;border-radius:6px;font-size:.72rem;color:#c7ced8}
.scenario-status.confirmed,.scenario-status.reached {color:var(--green);border-color:var(--green)}
.scenario-status.invalidated {color:var(--red);border-color:var(--red)}
.scenario-status.breakout,.scenario-status.interrupted {color:var(--gold);border-color:var(--gold)}
.scenario-memory h4 {font-size:.87rem;margin:16px 0 6px}
.scenario-levels {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.scenario-levels span {display:block;color:var(--muted);font-size:.72rem;margin-bottom:7px}
.scenario-levels strong {font-size:.85rem;font-weight:600}
.scenario-latest {font-size:.83rem;line-height:1.75;margin-bottom:14px}
.scenario-history {list-style:none;padding:0;margin:16px 0;max-height:340px;overflow:auto}
.scenario-history-item {padding:10px 12px;margin-bottom:8px;border-left:2px solid #556171;background:#11161d}
.scenario-history-item.confirmed,.scenario-history-item.reached {border-color:var(--green)}
.scenario-history-item.invalidated {border-color:var(--red)}
.scenario-event-time {font-size:.72rem;color:var(--gold)}
.scenario-history-item p {font-size:.8rem;line-height:1.65;margin:7px 0}
#scenario-storage {margin:12px 0}
@media(max-width:600px) {.scenario-memory {padding:13px}.scenario-levels {grid-template-columns:1fr;gap:10px}.scenario-levels span {margin-bottom:4px}}
.assistant-zone {color:var(--gold);font-weight:600;font-size:.85rem;margin:12px 0}
.assistant-zone:empty,.assistant-section-title:empty {display:none}
#assistant-status {display:none}
.assistant-section-title[hidden],.assistant-summary[hidden] {display:none}
.assistant-outlook {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.assistant-outlook:empty {display:none}
.assistant-outlook .assistant-item {background:#14161a66;border-left-color:var(--gold);padding:12px}
.assistant-explanation {margin:16px 0}.assistant-explanation .assistant-body {margin-top:16px}
@media(max-width:800px) {.assistant-outlook {grid-template-columns:1fr}}
.source-status {margin-bottom:12px;color:var(--muted);font-size:.78rem}
.source-status .feed-status {margin-top:12px}
.today-layout>.source-status {grid-area:feeds;margin:0}
.today-layout #assistant-card {grid-area:assistant;margin:0;min-width:0}
.today-layout [data-pane="grafico"] {position:static}
@media(min-width:1000px) {
  .today-layout,.today-layout.without-chart {grid-template-columns:minmax(0,1fr);grid-template-areas:"assistant" "alerts" "chart" "feeds" "status" "footer"}
}
@media(max-width:999px) {
  .today-layout {display:grid;gap:14px;grid-template-areas:"assistant" "alerts" "chart" "feeds" "status" "footer"}
  .today-layout [data-pane="deck"].active {display:contents}
  .today-layout > .status {grid-area:status}.today-layout > .feed-status {grid-area:feeds}
  .today-layout #alerts {grid-area:alerts}.today-layout #alerts:empty {display:none}
  .today-layout #broker-card {grid-area:broker}.today-layout #research-card {grid-area:research}
  .today-layout #decision-card {grid-area:decision}.today-layout #database-card {grid-area:database}
  .today-layout #brief-card {grid-area:brief}.today-layout #hero,.today-layout #vuoto-card {grid-area:hero}
  .today-layout #levels-card {grid-area:levels}.today-layout #lettura-card {grid-area:reading}
  .today-layout #brain-card {grid-area:brain}.today-layout [data-pane="grafico"] {grid-area:chart;min-width:0}
  .today-layout > .disclaimer {grid-area:footer}.today-layout .card {margin:0}
}
@media(max-width:800px) {
  .assistant-body {grid-template-columns:1fr;gap:16px}
  .assistant-body>section:first-child {order:2}.assistant-body>section:last-child {order:1}
  .assistant-card h2 {font-size:1.2rem}.assistant-summary {font-size:.9rem}
  .assistant-toolbar select {margin-left:0}.assistant-top .broker-state {font-size:.65rem}
}

/* Spazio di lavoro: l’analisi guida, gli approfondimenti hanno una casa propria. */
body {background:radial-gradient(ellipse at 75% 0%,#25252966,transparent 45%),#111418}
header {background:#111418f5;border-color:#272d36}
.card {background:#1a1f26;border-color:#2c333e;border-radius:16px;padding:22px}
.workspace-heading {display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:4px 0 24px}
.workspace-heading h2 {font-size:1.65rem;line-height:1.25;letter-spacing:-.025em;font-weight:600;margin:8px 0}
.workspace-heading p {font-size:.88rem;color:var(--muted);max-width:650px;line-height:1.65}
.workspace-heading .eyebrow {letter-spacing:.12em;color:var(--gold)}
.workspace-connection {color:#d3b274;font-size:.72rem;white-space:nowrap;border:1px solid #54472f;padding:7px 10px;border-radius:30px;margin-top:4px}
.workspace-connection.live {color:#78d4b6;border-color:#31584c}
.workspace-panel {border:1px solid #303742;background:#191e25;border-radius:12px;margin:0 0 18px;padding:0 18px;min-width:0}
.workspace-panel>summary {padding:16px 0;color:#d7dce3;font-size:.86rem;cursor:pointer}
.workspace-panel>summary::marker {color:var(--gold)}
.workspace-panel>.card {border:0;background:transparent;padding:10px 0 18px;margin:0}
.assistant-card {background:linear-gradient(135deg,#222831,#1a1f26 70%);padding:28px;border-top-color:#c9a65c}
.assistant-card h2 {font-size:1.6rem;letter-spacing:-.02em;margin:20px 0 14px}
.assistant-summary {font-size:.96rem;line-height:1.85}
.assistant-outlook .assistant-item {border-radius:10px;background:#11141866;border-top:2px solid var(--gold);border-left:0;margin:0;padding:16px}
.assistant-outlook .assistant-item:first-child {border-top-color:var(--green)}
.assistant-outlook .assistant-item:nth-child(2) {border-top-color:var(--red)}
.assistant-outlook .assistant-item p {font-size:.83rem;line-height:1.8}
.assistant-actions button:first-child {background:#c9a65c;color:#13171c;border-color:#c9a65c;font-weight:600}
.assistant-actions button {padding:10px 14px;transition:background .15s ease}
.assistant-actions button:hover:not(:disabled) {background:#303742}
.assistant-actions button:first-child:hover:not(:disabled) {background:#debd76}
.assistant-zone {font-size:.9rem;padding:12px 14px;border:1px solid #4f432d;border-radius:10px;background:#b9964410}
.nav-caption {display:none}.tab small {display:none}.nav-number {display:none}
.today-layout {grid-template-areas:"heading" "assistant" "brain" "alerts" "feeds" "status" "footer"}
.today-layout>.workspace-heading {grid-area:heading;margin-bottom:4px}
.today-layout [data-pane="brain"].active {grid-area:brain;min-width:0}
.skip-link {position:fixed;left:16px;top:-80px;z-index:100;background:var(--gold);color:#111418;padding:12px;border-radius:8px}
.skip-link:focus {top:12px}
@media(min-width:1100px) {
  body {padding-left:224px}
  header {padding:18px 32px;height:74px}
  .tabs {position:fixed;top:0;left:0;bottom:0;width:224px;z-index:11;display:flex;flex-direction:column;gap:6px;padding:104px 14px 24px;border-right:1px solid #292f38;border-bottom:0;background:#14191ff5;overflow-y:auto;overflow-x:hidden}
  .nav-caption {display:block;padding:0 14px 16px;font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:#7d899a}
  .tab {display:flex;align-items:center;gap:12px;flex:0;border:1px solid transparent;text-align:left;border-radius:10px;padding:12px 13px;font-size:.88rem;color:#aab3c0}
  .tab small {display:block;font-size:.68rem;color:#8490a0;font-weight:400;margin-top:3px}
  .nav-number {display:block;font-size:.62rem;color:#647081;align-self:flex-start;margin-top:3px}
  .tab.active {border-color:#504631;background:#c9a65c12;color:#f0d7a1}
  .tab.active .nav-number {color:var(--gold)}
  .tab:hover:not(:disabled) {background:#252c35}.tab:disabled {opacity:.35;cursor:default}
  main,main:not(.today-layout) {max-width:1260px;padding:30px 36px 40px}
  .today-layout,.today-layout.without-chart {grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "assistant" "brain" "alerts" "feeds" "status" "footer"}
  .tv-chart {height:550px}
}
@media(max-width:1099px) {
  .tabs {justify-content:flex-start;gap:4px;padding:0 10px;background:#111418f5}
  .tab {flex:0 0 auto;padding:13px 16px}
  .workspace-heading {flex-direction:column;gap:10px;margin-bottom:20px}
  .workspace-heading h2 {font-size:1.3rem}
  .workspace-heading p {font-size:.8rem}
  .workspace-connection {font-size:.66rem}
  .today-layout {grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "assistant" "brain" "alerts" "feeds" "status" "footer"}
}
@media(max-width:600px) {
  .card,.assistant-card {padding:18px;border-radius:12px}
  .assistant-card h2 {font-size:1.22rem}.assistant-summary {font-size:.86rem}
  .assistant-outlook {gap:9px;margin-top:14px}.assistant-outlook .assistant-item {padding:13px}
  .assistant-actions {display:grid;grid-template-columns:1fr 1fr}.assistant-actions button {font-size:.72rem;padding:10px 8px}
  .assistant-toolbar {gap:10px}.assistant-zone {font-size:.8rem}
  .workspace-panel {padding:0 14px}.workspace-panel>summary {font-size:.78rem}
  .source-status {font-size:.72rem}.disclaimer {font-size:.65rem}
}
@media(prefers-reduced-motion:reduce) {* {scroll-behavior:auto!important;transition:none!important}}
@media(max-width:600px) {.broker-quotes {grid-template-columns:repeat(2,minmax(0,1fr))}.broker-quotes strong {font-size:1.45rem}.broker-movements {gap:6px}.broker-movements>div {padding:10px}.broker-movements strong {font-size:1rem}}
.research-horizon {display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}
.research-probabilities {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.research-probability {display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--score-fill,var(--border));color:var(--score-ink,var(--text));background:var(--score-bg,var(--card));border-radius:12px;min-width:0}
.research-probability strong {font-size:1.8rem;line-height:1.2}
.research-probability small {font-size:.78rem;line-height:1.4;opacity:.85}
.research-confirm {display:flex;gap:10px;align-items:flex-start;margin:18px 0;line-height:1.5}
.research-confirm input {margin-top:5px;flex-shrink:0}
#research-plan-result {margin-top:18px}
#research-plan-result .score-best,#research-plan-result .score-worst,#research-plan-result .score-unknown {color:var(--score-ink)}
#journal-rows p {padding:10px 0;border-bottom:1px solid #ffffff15;overflow-wrap:anywhere}
@media(max-width:600px) {.research-probabilities {gap:6px}.research-probability {padding:10px;font-size:.8rem}.research-probability strong {font-size:1.4rem}.research-probability small {font-size:.68rem}}
.forecast-zone{font-size:1.1rem;font-weight:600;margin:1rem 0}
#comex-daily-results .table-scroll{max-width:100%;overflow-x:auto;margin:16px 0}
#comex-daily-results table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:.9rem}
#comex-daily-results th,#comex-daily-results td{padding:10px;text-align:right;border-bottom:1px solid var(--border,#343b47)}
#comex-daily-results th:first-child,#comex-daily-results td:first-child{text-align:left}
.journal-trade{border:1px solid var(--border,#343b47);border-radius:12px;padding:1rem;margin:1rem 0}.journal-trade-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.journal-hypothesis{border-left:2px solid var(--gold,#c6a653);padding-left:1rem;margin:1rem 0}.journal-hypothesis p{margin:.4rem 0}

/* Official evidence stays folded into the existing reading. */
.timeframe-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin:18px 0}
main.today-layout{display:flex;flex-direction:column;gap:18px}
.today-layout>.workspace-heading{order:0}.today-layout>.status{order:1}.today-layout>.source-status{order:2}.today-layout #alerts{order:2}
.today-layout #assistant-card{order:3}.today-layout #timeframe-card{order:4;min-width:0;margin:0}.today-layout #forecast-card{order:5}
.today-layout>[data-pane="brain"]{order:6}.today-layout>.disclaimer{order:7}
.timeframe-tile{border:1px solid var(--line,#30323a);border-radius:12px;padding:15px;min-width:0;background:rgba(255,255,255,.018)}
.timeframe-tile>button{font-size:17px;font-weight:700;letter-spacing:.04em;padding:5px 10px;margin-bottom:12px}
.timeframe-tile>strong,.timeframe-tile small{display:block}.timeframe-tile>strong{font-size:14px}.timeframe-tile p{font-size:13px;margin:8px 0;line-height:1.5}
.timeframe-tile small{font-size:11px;color:var(--muted,#9aa0a8);line-height:1.6;margin-top:8px}
.timeframe-tile.up{border-top:3px solid #26a69a}.timeframe-tile.down{border-top:3px solid #ef5350}.timeframe-tile.range{border-top:3px solid #d9b66f}.timeframe-tile.unavailable{border-top:3px solid #606875}
.timeframe-summary{line-height:1.6;color:var(--text,#e8eaed)}.timeframe-summary.contrast{border-left:3px solid #d9b66f;padding-left:12px}
.assistant-confluence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.assistant-confluence:empty{display:none}.assistant-confluence .assistant-item{margin:0;padding:14px;background:#11141866;border-radius:10px}
.assistant-confluence .assistant-item h3{font-size:.82rem;margin:0 0 8px}.assistant-confluence .assistant-item p{font-size:.84rem;line-height:1.7;margin:0}
.assistant-confluence .assistant-item:last-child:nth-child(3){grid-column:1/-1}
@media(max-width:640px){.assistant-confluence{grid-template-columns:1fr}.assistant-toolbar label{max-width:100%}.assistant-toolbar select{max-width:100%}}
.chart-timeframes{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.chart-timeframes button{min-width:52px}.chart-timeframes button.on{background:#d9b66f;color:#14161a;border-color:#d9b66f}
.gex-chart-panel{border-top:1px solid var(--line,#30323a);margin-top:22px;padding-top:20px}.gex-chart-panel h3{margin:0}.gex-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:16px 0}
.gex-controls label{font-size:13px;display:flex;gap:10px;align-items:center}.gex-controls select{font:inherit;color:var(--text,#e8eaed);background:#20242b;border:1px solid #424852;padding:8px;border-radius:8px}
.gex-history-choice{font-size:13px;line-height:1.6;margin:12px 0;display:flex;align-items:center;gap:8px}.gex-history-choice[hidden]{display:none}
.gex-zone-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:12px;margin:16px 0}.gex-zone-row{border:1px solid var(--line,#30323a);border-radius:10px;padding:14px;min-width:0}
.gex-zone-heading{display:flex;flex-direction:column;gap:8px}.gex-zone-heading strong{font-size:14px}.gex-zone-heading span{font-size:13px;color:#79bddd}
.gex-zone-row small{display:block;font-size:12px;line-height:1.6;color:var(--muted,#9aa0a8);margin-top:8px}.gex-reaction-label{font-size:13px;font-weight:600;margin:12px 0 0}.gex-zone-row.incomplete,.gex-zone-row.unavailable{border-color:#665a37}
.gex-history-item{margin-top:16px}.gex-history-item .gex-zone-row{margin-top:8px}.gex-history-item h4{font-size:13px;color:var(--muted,#9aa0a8)}
@media(max-width:1500px){.timeframe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1150px){.timeframe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.timeframe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.timeframe-tile{padding:12px}.timeframe-tile:last-child{grid-column:1/-1}.gex-controls label{flex-wrap:wrap}.gex-zone-results{grid-template-columns:1fr}.scenario-header{gap:8px}}
.evidence-families,.evidence-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.evidence-families .assistant-item{margin:0}.evidence-metrics>div{padding:12px;border:1px solid var(--line,#30323a);border-radius:8px}.evidence-metrics span,.evidence-metrics strong{display:block}.evidence-metrics strong{margin-top:5px}.evidence-source-table td{min-width:140px}#evidence-results details{margin-top:16px}#evidence-results th small,#evidence-results td small{display:block;font-weight:normal;margin-top:4px}

/* Prima il significato; dati e regole restano consultabili. */
.assistant-outlook{grid-template-columns:repeat(2,minmax(0,1fr))}
.assistant-memory-panel,.assistant-explanation{border-top:1px solid #ffffff12;margin-top:16px;padding-top:12px}
.assistant-memory-panel>summary,.assistant-explanation>summary{font-size:.8rem;color:var(--muted)}
#scenario-compact-status{margin-left:10px;color:#c7ad79;font-size:.72rem}
.assistant-memory-panel .scenario-memory{margin-top:16px}
#forecast-card>summary{font-size:.88rem;color:#cbd1da;cursor:pointer}
#forecast-card[open]>summary{margin-bottom:18px}
.timeframe-data{margin-top:12px}.timeframe-data>summary{font-size:.7rem;color:var(--muted);cursor:pointer}
.timeframe-tile .timeframe-meaning{font-size:.79rem;line-height:1.6}
.assistant-zone:empty{display:none}
@media(max-width:640px){.assistant-outlook{grid-template-columns:1fr}}
/* Sources of the deterministic market interpretation. */
.context-sources { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin:.75rem 0; overflow-wrap:anywhere; }
.context-sources a { color:var(--accent, #dcb15a); font-size:.85rem; text-underline-offset:.18em; }
#assistant-market-context { border-top:1px solid var(--border, #303846); margin-top:.8rem; padding-top:.6rem; }
