/* Styles des pages sur mesure de l'appli Bourse (pas de build Tailwind sur le serveur : CSS écrit à la main,
   avec les variables de couleur de Filament pour suivre le mode clair / sombre). */
.b-pos { color: var(--success-600); }
.b-neg { color: var(--danger-600); }
.dark .b-pos { color: var(--success-400); }
.dark .b-neg { color: var(--danger-400); }
.b-muted { color: var(--gray-500); font-size: .8rem; }
.b-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Cartes des comptes (tableau de bord) */
.b-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.b-carte { display: block; padding: 1rem 1.1rem; border-radius: .75rem; background: #fff; text-decoration: none; color: inherit;
  box-shadow: 0 1px 2px rgba(0,0,0,.05); outline: 1px solid rgba(15,23,42,.06); transition: transform .15s, box-shadow .15s; }
.dark .b-carte { background: var(--gray-900); outline-color: rgba(255,255,255,.1); }
.b-carte:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.b-carte-titre { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; font-weight: 600; }
.b-carte-total { font-size: 1.6rem; font-weight: 700; margin: .35rem 0 .15rem; font-variant-numeric: tabular-nums; }
.b-carte-ligne { display: flex; justify-content: space-between; font-size: .85rem; padding: .12rem 0; }
.b-alerte { margin-top: .5rem; padding: .3rem .55rem; border-radius: .4rem; font-size: .8rem; font-weight: 600;
  background: var(--warning-50); color: var(--warning-700); }
.dark .b-alerte { background: rgba(245,158,11,.12); color: var(--warning-400); }

/* Tableau des lignes d'un portefeuille */
.b-table-zone { overflow-x: auto; }
.b-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.b-table th { text-align: left; font-weight: 600; font-size: .75rem; text-transform: uppercase; letter-spacing: .03em;
  color: var(--gray-500); padding: .55rem .6rem; border-bottom: 1px solid var(--gray-200); white-space: nowrap; }
.b-table td { padding: .55rem .6rem; border-bottom: 1px solid var(--gray-100); vertical-align: middle; }
.dark .b-table th { border-color: rgba(255,255,255,.1); }
.dark .b-table td { border-color: rgba(255,255,255,.05); }
.b-table tbody tr:hover { background: var(--gray-50); }
.dark .b-table tbody tr:hover { background: rgba(255,255,255,.03); }
.b-table tfoot td { font-weight: 700; border-top: 2px solid var(--gray-200); border-bottom: 0; }
.b-valeur { font-weight: 600; }
.b-valeur a { color: inherit; text-decoration: none; }
.b-valeur a:hover { color: var(--primary-600); }
.b-barre { height: 4px; border-radius: 2px; background: var(--gray-100); margin-top: 4px; min-width: 60px; }
.dark .b-barre { background: rgba(255,255,255,.08); }
.b-barre > span { display: block; height: 100%; border-radius: 2px; background: var(--primary-500); }
.b-actions { display: flex; gap: .15rem; justify-content: flex-end; }
.b-direct { display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--success-500); margin-right: .3rem;
  animation: b-pulse 2s infinite; vertical-align: middle; }
@keyframes b-pulse { 50% { opacity: .35; } }
.b-entete { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-bottom: .75rem; }
.b-entete > div > div:first-child { font-size: .75rem; color: var(--gray-500); text-transform: uppercase; letter-spacing: .03em; }
.b-entete > div > div:last-child { font-size: 1.15rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Téléphone : on masque les colonnes secondaires */
@media (max-width: 768px) { .b-secondaire { display: none; } }
