/* Scrollbars (global, factorisé) : fines, sans gouttière, pouce au dégradé Orchidée.
   Firefox (scrollbar-*) ne prend qu'un plein → --brand ; WebKit porte le dégradé sur
   le pouce, piste transparente (aucun conteneur ne mange d'espace). */
* { scrollbar-width: thin; scrollbar-color: var(--brand) transparent; }
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--brand-grad); border-radius: 7px; }
/* Display gravity (shadcn/Geist): headings are semibold with tight tracking; the
   page h1 is the one moment of typographic weight. Sentence case, graphite — never
   uppercase, never a brand colour. */
h1 { font-size: var(--fs-26); font-weight: var(--fw-semibold); letter-spacing: -.025em; margin: 0; }
h2 { font-size: var(--fs-19); font-weight: var(--fw-semibold); letter-spacing: -.02em; }
h3 { font-size: var(--fs-15); font-weight: var(--fw-semibold); letter-spacing: -.01em; color: var(--title-zone); margin: 0 0 9px; }
code { background: var(--chip); padding: 1px 5px; border-radius: 4px; font-size: var(--fs-13); }
code.hash { word-break: break-all; }
.muted { color: var(--muted); }
.hidden { display: none !important; }
.neg { color: var(--bad); font-weight: var(--fw-semibold); }
.pos { color: var(--ok); font-weight: var(--fw-semibold); }
.num, .right, .r { text-align: right; }
.num-col { text-align: right; font-variant-numeric: tabular-nums; }
.date-col { text-align: center; }
.center-col { text-align: center; font-variant-numeric: tabular-nums; }

/* breadcrumb on deep pages */
.crumbs { display: flex; gap: 7px; align-items: center; font-size: var(--fs-13); color: var(--muted); margin-bottom: 8px; flex-wrap: wrap; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--brand-d); }
.crumbs .sep { opacity: .5; }

