/* Cours des actions — /bourse/
   Propre à la page ; le châssis, les couleurs et les composants (k-table,
   k-chips, k-card, k-btn) viennent de /kit/kit.css. */

:root{
  --up: #12a150; --up-bg: #e6f6ec;
  --down: #d64b3f; --down-bg: #fcecea;
  --note-hi: #12a150; --note-hi-bg: #e6f6ec;
  --note-mid: #d98324; --note-mid-bg: #fdf3e4;
  --note-lo: #d64b3f; --note-lo-bg: #fcecea;
}
[hidden]{ display:none !important; }

.b-search{ flex: 1 1 260px; max-width: 360px; }
.b-count{ font-size: 12px; color: var(--k-ink-soft); white-space: nowrap; }

.b-chips{ margin-bottom: var(--k-gap); }
.b-chip{ border: 0; cursor: pointer; font: inherit; }
.b-chip.is-active{ background: var(--k-blue); color: #fff; box-shadow: inset 0 0 0 1px var(--k-blue-deep); }
.b-chip-n{ opacity: .75; font-size: 10px; }

/* ---- tableau ---- */
#b-table tbody tr{ cursor: pointer; }
#b-table tbody tr.b-hidden{ display: none; }
#b-table tbody tr:hover td{ background: #f4fafc; }
#b-table tbody tr.is-open td{ background: var(--k-blue-pale); }

.b-row-nom{ display: flex; align-items: center; gap: 10px; min-width: 0; }
.b-logo{
  width: 30px; height: 30px; flex: 0 0 auto; border-radius: 9px; overflow: hidden;
  display: grid; place-items: center; background: #fff;
  box-shadow: inset 0 0 0 1px var(--k-frame-edge);
  font-size: 11px; font-weight: 800; color: #fff; letter-spacing: .01em;
}
.b-logo img{ width: 100%; height: 100%; object-fit: contain; }
.b-row-txt{ min-width: 0; }
.b-row-nm{ font-weight: 600; color: var(--k-ink-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.b-row-tk, .b-tk{ font-size: 11px; font-weight: 700; letter-spacing: .03em; color: var(--k-ink-soft); text-transform: uppercase; }

.b-note-pill{
  display: inline-block; min-width: 32px; padding: 3px 8px; border-radius: 999px;
  font-weight: 800; font-variant-numeric: tabular-nums; text-align: center;
}
.b-note-pill.n-hi{ color: var(--note-hi); background: var(--note-hi-bg); }
.b-note-pill.n-mid{ color: var(--note-mid); background: var(--note-mid-bg); }
.b-note-pill.n-lo{ color: var(--note-lo); background: var(--note-lo-bg); }
.b-note-pill.n-na{ color: var(--k-ink-soft); background: #f1f4f6; }

.b-canslim-icons{ display: flex; gap: 4px; font-size: 13px; }
.b-canslim-icons span{ opacity: .35; }
.b-canslim-icons span.ok{ opacity: 1; }
.b-hors-note{ font-size: 11px; color: var(--k-ink-soft); font-style: italic; }

.b-up{ color: var(--up); } .b-down{ color: var(--down); }
.b-empty{ margin: 16px 4px; font-size: 13px; color: var(--k-ink-soft); text-align: center; }

th[data-sort]{ cursor: pointer; user-select: none; }
th[data-sort]:hover{ color: var(--k-blue-deep); }
th[data-sort].is-sorted::after{ content: " " attr(data-arrow); }

/* ---- détail (ouvert sous la ligne cliquée) ---- */
.b-detail{ margin-top: var(--k-gap); position: relative; }
.b-detail-close{
  position: absolute; top: 14px; right: 14px; border: 0; background: transparent;
  cursor: pointer; font-size: 16px; color: var(--k-ink-soft); padding: 4px;
}
.b-detail-close:hover{ color: var(--k-ink-strong); }
.b-detail-head{ display: flex; align-items: center; gap: 14px; padding-right: 30px; }
.b-detail-head .b-logo{ width: 46px; height: 46px; border-radius: 12px; font-size: 16px; }
.b-detail-head h2{ margin: 0; font-size: clamp(17px, 2.2vw, 22px); color: var(--k-ink-strong); }
.b-detail-note{ margin-left: auto; font-size: 22px; font-weight: 800; padding: 6px 14px; border-radius: 12px; }
.b-detail-note.n-hi{ color: var(--note-hi); background: var(--note-hi-bg); }
.b-detail-note.n-mid{ color: var(--note-mid); background: var(--note-mid-bg); }
.b-detail-note.n-lo{ color: var(--note-lo); background: var(--note-lo-bg); }
.b-detail-note.n-na{ color: var(--k-ink-soft); background: #f1f4f6; }

.b-chart-wrap{ position: relative; margin: 16px 0; }
#d-chart{ width: 100%; height: clamp(160px, 28vh, 260px); display: block; }
.b-chart-loading{ position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--k-ink-soft); margin: 0; }

.b-kpis{
  display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1px; margin: 0 0 20px; padding: 0;
  background: var(--k-frame-edge); border-radius: 12px; overflow: hidden;
  box-shadow: 0 0 0 1px var(--k-frame-edge);
}
.b-kpis > div{ background: #fff; padding: 9px 11px; }
.b-kpis dt{ font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: #5b8ea3; }
.b-kpis dd{ margin: 3px 0 0; font-size: 14px; font-weight: 800; color: var(--k-ink-strong); font-variant-numeric: tabular-nums; }

.b-note-detail h3, .b-canslim h3, .b-news h3{ margin: 0 0 10px; font-size: 13px; color: var(--k-ink-strong); }
.b-explication{ margin: 0 0 14px; padding: 8px 12px; background: var(--k-blue-pale); border-radius: 10px; font-size: 13px; color: var(--k-ink); }
.b-sous{ display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 20px; }
.b-sous-item{ text-align: center; padding: 10px 8px; border-radius: 10px; background: #f6fafb; box-shadow: inset 0 0 0 1px var(--k-frame-edge); }
.b-sous-item .n{ font-size: 18px; font-weight: 800; color: var(--k-ink-strong); }
.b-sous-item .l{ font-size: 10.5px; color: var(--k-ink-soft); text-transform: uppercase; letter-spacing: .03em; margin-top: 2px; }

.b-canslim{ margin-bottom: 20px; }
.b-canslim ul{ list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.b-canslim li{ font-size: 13px; color: var(--k-ink); display: flex; align-items: center; gap: 8px; }
.b-canslim li .ic{ font-size: 14px; }

.b-news{ margin-bottom: 8px; }
.b-sentiment{ margin: 0 0 10px; font-size: 12.5px; font-weight: 700; }
.b-sentiment.s-pos{ color: var(--up); } .b-sentiment.s-neg{ color: var(--down); } .b-sentiment.s-neutre{ color: var(--k-ink-soft); }
.b-news-list{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.b-news-list li{ font-size: 12.5px; line-height: 1.4; }
.b-news-list a{ color: var(--k-ink-strong); text-decoration: none; font-weight: 600; }
.b-news-list a:hover{ text-decoration: underline; }
.b-news-src{ color: var(--k-ink-soft); font-size: 11px; margin-left: 5px; }

.b-note-sm{ margin: 0 0 0; padding: 8px 12px; border-radius: 10px; background: #fdf3e4; color: #7a5a1e; font-size: 12.5px; line-height: 1.45; }
.b-note{ margin: 20px 0 0; font-size: 11px; line-height: 1.6; color: var(--k-ink-soft); }
.b-note a{ color: #4a8ba5; }
.b-note strong{ color: var(--k-ink); }

/* ---- backtest des facteurs ---- */
.b-backtest{ margin-top: var(--k-gap); }
.b-backtest h2{ margin: 0 0 10px; font-size: 16px; color: var(--k-ink-strong); }
.b-backtest .b-note-sm{ margin: 12px 0; }
.b-bt-row{
  display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 8px 16px;
  padding: 10px 4px; border-top: 1px solid #eef3f5;
}
.b-bt-label{ font-size: 13px; color: var(--k-ink-strong); font-weight: 600; }
.b-bt-vs{ font-weight: 400; color: var(--k-ink-soft); font-size: 11px; text-transform: uppercase; }
.b-bt-vals{ display: flex; gap: 14px; font-variant-numeric: tabular-nums; font-size: 13px; font-weight: 700; }
.b-bt-haut{ color: var(--up); } .b-bt-bas{ color: var(--k-ink-soft); }
.b-bt-ecart{ font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; min-width: 120px; }
.b-bt-ecart.b-up{ color: var(--up); } .b-bt-ecart.b-down{ color: var(--down); }

@media (max-width: 560px){
  .b-bt-row{ grid-template-columns: 1fr; text-align: left; }
  .b-bt-ecart{ text-align: left; }
}
