/* GitOps — par-dessus theme.css (le thème de ChartOps / TrackMyFund, « ht »). La coquille et la marque sont reprises de
   ChartOps (static/css/layout.css, app.css). N'écrire que des var(--ht-…) : tout doit marcher en clair ET en sombre. */

:root {
  --ht-top-h: 3.6rem;
  --ht-side-w: 15rem;
  --co-chart: #1762c4; --co-ops: #bf4824;
  --ht-card-bg: var(--ht-emphasis-bg);
  --go-mono: var(--ht-font-monospace, ui-monospace, SFMono-Regular, Consolas, monospace);
}
[data-bs-theme="dark"] { --co-chart: #78bcff; --co-ops: #ffad80; }
body { background: var(--ht-body-bg); }
code { color: var(--ht-primary); font-size: .85em; }

/* ── la marque (CHART/OPS → GIT/OPS, le logo de GitOps) ───────────────────────────────────────────────────────── */
.ht-logo { width: 2.1rem; height: 2.1rem; border-radius: .5rem; display: inline-grid; place-items: center; flex: none; position: relative;
  background: linear-gradient(135deg, #2b7fe3, #0d4594); box-shadow: inset 0 1px 0 rgba(255,255,255,.18); }
.ht-logo svg { width: 2.1rem; height: 2.1rem; fill: none; stroke: #fff; stroke-width: 4.6; stroke-linecap: round; stroke-linejoin: round; }
.ht-logo .ops-line { stroke: #ffa36f; }
.ht-logo .ops-dot { fill: #ffa36f; stroke: #0f4c9f; stroke-width: 2; }
.ht-logo .lg-hud { display: none; }   /* le logo HUD : seulement en style HUD (hud.css) */
.ht-brand { font-family: var(--ht-font-sans-serif); color: var(--co-chart); font-weight: 800; letter-spacing: -.045em; white-space: nowrap; }
.ht-brand span { color: var(--co-ops); }
.ht-brand .co-slash { display: inline-block; margin: 0 .08em; transform: skew(-8deg); color: var(--co-ops); }
.ht-brandlink { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.ht-brandlink .ht-brand { font-size: 1.05rem; }
.ht-ver { align-self: flex-end; margin-left: -.35rem; padding-bottom: .1rem; font-size: .62rem; font-weight: 600; color: var(--ht-gray-600);
  font-variant-numeric: tabular-nums; }

/* ── la coquille : barre du haut, menu de gauche, page ─────────────────────────────────────── */
.ht-shell { display: grid; grid-template-columns: var(--ht-side-w) minmax(0, 1fr); grid-template-rows: var(--ht-top-h) 1fr; min-height: 100vh; }
.ht-top { grid-column: 1 / -1; position: sticky; top: 0; z-index: 1020; height: var(--ht-top-h); padding: 0 1.25rem;
  border-bottom: 1px solid var(--ht-border-color); display: flex; align-items: center; gap: 1rem; }
.ht-top .ht-brandlink { width: calc(var(--ht-side-w) - 1.25rem); flex: none; }
.ht-side { position: sticky; top: var(--ht-top-h); height: calc(100vh - var(--ht-top-h)); overflow-y: auto;
  padding: .9rem .5rem 1.5rem; border-right: 1px solid var(--ht-border-color); }
.htn { --nv-ink: var(--ht-gray-900); --nv-muted: var(--ht-gray-600); --nv-hover: rgba(var(--ht-primary-rgb), .06); --nv-active: rgba(var(--ht-primary-rgb), .11);
  display: flex; flex-direction: column; gap: .15rem; font-size: .8125rem; color: var(--nv-ink); }
.htn-sec { padding: .9rem .6rem .25rem; font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--ht-primary);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.htn-link { position: relative; display: flex; align-items: center; gap: .55rem; padding: .3rem .6rem; margin: 0 .25rem; border-radius: .6rem;
  color: var(--nv-ink); text-decoration: none; font-weight: 500; transition: background .12s; }
.htn-link:hover { background: var(--nv-hover); color: var(--nv-ink); }
.htn-link .ic { width: 1.45rem; height: 1.45rem; border-radius: .4rem; display: grid; place-items: center; flex-shrink: 0; background: var(--ht-gray-100); color: var(--nv-muted); transition: all .12s; }
.htn-link .ic .go-ic { width: .9rem; height: .9rem; }
.htn-link.active { background: var(--nv-active); color: var(--ht-primary); font-weight: 600; }
.htn-link.active::before { content: ""; position: absolute; left: -.25rem; top: .25rem; bottom: .25rem; width: 3px; border-radius: 3px; background: var(--ht-primary); }
.htn-link.active .ic { background: var(--ht-primary); color: #fff; box-shadow: 0 .25rem .6rem rgba(var(--ht-primary-rgb), .35); }
.htn-link .pill { margin-left: auto; font-size: .65rem; font-weight: 700; padding: .05rem .45rem; border-radius: 1rem; background: rgba(var(--ht-primary-rgb), .12); color: var(--ht-primary); }
.htn-link .pill:empty { display: none; }
.ht-main { padding: 1.5rem 1.75rem 3rem; min-width: 0; }

/* au clavier (Tab) : on voit toujours où l'on est */
.htn-link:focus-visible, .go-repo:focus-visible, .go-guide:focus-visible, .go-copy:focus-visible, .go-burger:focus-visible, .go-toc a:focus-visible,
.go-crumbs a:focus-visible, .go-csubj:focus-visible, .go-fname:focus-visible { outline: 2px solid var(--ht-primary); outline-offset: 1px; border-radius: .4rem; }
@media (prefers-reduced-motion: reduce) { .ht-side, .go-burger span, .go-burger span::before, .go-burger span::after, .go-guide, .go-sideback { transition: none !important; animation: none !important; } }

.go-ic { width: 1rem; height: 1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.15em; }
.btn .go-ic { width: .95rem; height: .95rem; }

/* recherche de la barre du haut */
.go-search { align-items: center; gap: .45rem; padding: 0 .7rem; height: 2rem; min-width: 16rem; border-radius: .5rem;
  background: var(--ht-gray-100); border: 1px solid var(--ht-border-color); color: var(--ht-gray-600); }
.go-search input { border: 0; outline: 0; background: transparent; color: var(--ht-body-color); font-size: .8rem; width: 100%; }
.go-search:focus-within { border-color: rgba(var(--ht-primary-rgb), .5); box-shadow: 0 0 0 3px rgba(var(--ht-primary-rgb), .12); }

/* menus déroulants sans JavaScript (<details>) */
.go-dd { position: relative; }
.go-dd > summary { list-style: none; display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; }
.go-dd > summary::-webkit-details-marker { display: none; }
.go-menu { position: absolute; top: calc(100% + .4rem); z-index: 1050; min-width: 14rem; padding: .35rem 0; border-radius: .6rem;
  background: var(--ht-card-bg); border: 1px solid rgba(var(--ht-primary-rgb), .22); box-shadow: 0 .6rem 1.6rem rgba(var(--ht-primary-rgb), .14); }
.go-menu-end { right: 0; }
.go-menu .dropdown-item { display: flex; align-items: center; gap: .55rem; font-size: .84rem; padding: .35rem .9rem; width: 100%; background: none; border: 0; text-align: left; color: var(--ht-body-color); }
.go-menu .dropdown-item:hover { background: rgba(var(--ht-primary-rgb), .11); color: var(--ht-primary); }
.go-menu .dropdown-item.text-danger:hover { background: rgba(var(--ht-danger-rgb), .1); color: var(--ht-danger); }
.go-menu .dropdown-item.on { color: var(--ht-primary); font-weight: 600; }
.go-menu .dropdown-divider { border-color: rgba(var(--ht-primary-rgb), .16); margin: .3rem 0; }
.go-menu .dropdown-header { color: var(--ht-primary); font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; padding: .4rem .9rem .2rem; }
.go-menu form { margin: 0; }
/* ── le menu du compte : copié de ChartOps (static/css/app.css) ── */
/* ── le menu du compte, aux couleurs du thème (repris de .mq-usermenu) ─────────────────────────── */
.ht-usermenu {
  --ht-dropdown-bg: color-mix(in srgb, var(--ht-primary) 6%, var(--ht-dropdown-bg-global, var(--ht-body-bg)));
  background-color: var(--ht-dropdown-bg);
  border: 1px solid rgba(var(--ht-primary-rgb), .22);
  box-shadow: 0 .6rem 1.6rem rgba(var(--ht-primary-rgb), .12);
  padding-top: .35rem;
}
.ht-usermenu .dropdown-header { color: var(--ht-primary); font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
.ht-usermenu .dropdown-divider { border-color: rgba(var(--ht-primary-rgb), .16); }
.ht-usermenu .dropdown-item:hover, .ht-usermenu .dropdown-item:focus { background-color: rgba(var(--ht-primary-rgb), .11); color: var(--ht-primary); }
.ht-usermenu .dropdown-item.text-danger:hover, .ht-usermenu .dropdown-item.text-danger:focus { background-color: rgba(var(--ht-danger-rgb), .1); color: var(--ht-danger); }
/* v1.90 : l'en-tête (initiale, nom, rôle), des icônes, l'état des réglages à droite, la suppression discrète en bas */
.ht-usermenu { min-width: 17rem; }
.ht-usermenu .dropdown-item { display: flex; align-items: center; gap: .55rem; font-size: .84rem; padding-top: .32rem; padding-bottom: .32rem; }
.ht-um-ic { width: 1rem; height: 1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; opacity: .8; }
.ht-um-kbd { margin-left: auto; font-size: .62rem; padding: .05rem .3rem; border-radius: .25rem; background: rgba(var(--ht-primary-rgb), .12); color: var(--ht-primary); }
.ht-um-head { display: flex; align-items: center; gap: .65rem; padding: .35rem .9rem .5rem; }
.ht-um-av { flex: none; width: 2.2rem; height: 2.2rem; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 1rem;
  color: #fff; background: linear-gradient(135deg, var(--ht-primary), color-mix(in srgb, var(--ht-primary) 55%, #000)); }
.ht-um-av.sm { width: 1.35rem; height: 1.35rem; font-size: .7rem; margin-right: .4rem; }
.ht-um-who { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; color: var(--ht-heading-color); }   /* le nom en hérite (le thème sombre force b { color: inherit }) */
.ht-um-who b { font-size: .92rem; color: var(--ht-heading-color); overflow: hidden; text-overflow: ellipsis; }
.ht-um-who small { font-size: .7rem; color: var(--ht-gray-600); }
.ht-userbtn { display: inline-flex; align-items: center; }
.ht-usermenu .ht-um-del { font-size: .74rem; color: var(--ht-gray-500); }
.ht-usermenu .ht-um-del:hover, .ht-usermenu .ht-um-del:focus { color: var(--ht-danger); background-color: rgba(var(--ht-danger-rgb), .08); }
.ht-usermenu form { margin: 0; }

.go-flash { margin-bottom: 1rem; }

/* ── en-têtes de page ──────────────────────────────────────────────────────────────────────── */
.go-pagehead { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.go-pagehead h2 { font-size: 1.35rem; font-weight: 700; margin: 0 0 .15rem; color: var(--ht-heading-color); }
.go-pagehead p { margin: 0; font-size: .8rem; color: var(--ht-gray-600); }
.go-filter { width: 14rem; }
.go-narrow { max-width: 44rem; }
.go-h5 { font-size: .95rem; font-weight: 700; margin: 0 0 .6rem; }
.go-h6 { font-size: .78rem; font-weight: 700; margin: 1.1rem 0 .4rem; color: var(--ht-heading-color); }
.go-h6:first-child { margin-top: 0; }
.go-cardhead { display: flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 600; padding: .6rem 1rem; background: rgba(var(--ht-primary-rgb), .03); border-bottom: 1px solid var(--ht-border-color); }
.go-errcode { font-size: 3.5rem; font-weight: 800; color: var(--ht-primary); letter-spacing: -.05em; line-height: 1; margin-bottom: .75rem; }

/* ── la liste des dépôts ───────────────────────────────────────────────────────────────────── */
/* chaque dépôt est sa propre carte, avec un petit espace entre elles */
.go-repos { display: flex; flex-direction: column; gap: .5rem; }
.go-repo, .go-repos > .go-empty { background: var(--ht-card-bg); border: 1px solid var(--ht-border-color); border-radius: var(--ht-card-border-radius, .5rem);
  box-shadow: var(--ht-box-shadow-sm, 0 .125rem .25rem rgba(0, 0, 0, .075)); }
.go-repo { display: flex; align-items: center; gap: .9rem; padding: .85rem 1.1rem; text-decoration: none; color: var(--ht-body-color);
  transition: border-color .12s, background .12s, transform .12s; }
.go-repo:hover { background: color-mix(in srgb, var(--ht-primary) 4%, var(--ht-card-bg)); border-color: rgba(var(--ht-primary-rgb), .35); color: var(--ht-body-color); transform: translateY(-1px); }
.go-repo:hover b { color: var(--ht-primary); }
.go-repoic { width: 2.6rem; height: 2.6rem; flex: none; border-radius: .7rem; display: grid; place-items: center; color: var(--ht-primary);
  background: linear-gradient(135deg, rgba(var(--ht-primary-rgb), .14), rgba(var(--ht-info-rgb), .08)); border: 1px solid rgba(var(--ht-primary-rgb), .18); }
.go-repoic .go-ic { width: 1.3rem; height: 1.3rem; }
.go-repoic.sm { width: 2.1rem; height: 2.1rem; border-radius: .55rem; }
.go-repoic.sm .go-ic { width: 1.05rem; height: 1.05rem; }
.go-repomid { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.go-repomid b { font-size: .92rem; color: var(--ht-heading-color); }
.go-repomid small { font-size: .76rem; color: var(--ht-gray-700); }
.go-repolast { font-size: .72rem; color: var(--ht-gray-600); display: flex; align-items: center; gap: .3rem; margin-top: .15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.go-reporight { display: flex; flex-direction: column; align-items: flex-end; gap: .25rem; font-size: .72rem; color: var(--ht-gray-600); flex: none; }
.go-empty { padding: 2.5rem 1rem; text-align: center; color: var(--ht-gray-600); font-size: .85rem; }
.go-empty > .go-ic { width: 2.2rem; height: 2.2rem; opacity: .5; margin-bottom: .5rem; }

/* ── l'en-tête d'un dépôt ──────────────────────────────────────────────────────────────────── */
.go-repohead { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.go-repotitle { display: flex; gap: .85rem; align-items: flex-start; min-width: 0; }
.go-repotitle h1 { font-size: 1.3rem; font-weight: 700; margin: 0; letter-spacing: -.01em; }
.go-repotitle h1 a { color: var(--ht-heading-color); text-decoration: none; }
.go-repotitle h1 a:hover { color: var(--ht-primary); }
.go-repotitle p { margin: .1rem 0 0; font-size: .82rem; color: var(--ht-gray-700); }
.go-repometa { display: flex; gap: 1rem; margin-top: .3rem; font-size: .72rem; color: var(--ht-gray-600); }
.go-clone { display: flex; gap: .5rem; align-items: center; }
.go-clonebox { display: flex; align-items: center; border: 1px solid var(--ht-border-color); border-radius: .5rem; background: var(--ht-card-bg); overflow: hidden; height: 2rem; }
.go-clonelbl { font-size: .62rem; font-weight: 800; letter-spacing: .06em; color: var(--ht-primary); padding: 0 .55rem; align-self: stretch; display: grid; place-items: center;
  background: rgba(var(--ht-primary-rgb), .08); border-right: 1px solid var(--ht-border-color); }
.go-clonebox input { border: 0; outline: 0; background: transparent; font-family: var(--go-mono); font-size: .74rem; padding: 0 .55rem; width: 22rem; max-width: 52vw; color: var(--ht-body-color); }
.go-copy { border: 0; background: transparent; color: var(--ht-gray-600); padding: 0 .55rem; align-self: stretch; display: inline-grid; place-items: center; cursor: pointer; border-radius: .35rem; }
.go-copy:hover { color: var(--ht-primary); background: rgba(var(--ht-primary-rgb), .08); }
.go-copy.ok { color: var(--ht-success); }
.go-clonebox .go-copy { border-left: 1px solid var(--ht-border-color); border-radius: 0; }

.go-bar { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; flex-wrap: wrap; }
.go-refpick { display: inline-flex; align-items: center; gap: .35rem; height: 2rem; padding: 0 .3rem 0 .6rem; border: 1px solid var(--ht-border-color); border-radius: .5rem; background: var(--ht-card-bg); color: var(--ht-primary); margin: 0; }
.go-refpick select { border: 0; outline: 0; background: transparent; font-size: .8rem; font-weight: 600; color: var(--ht-heading-color); max-width: 16rem; cursor: pointer; }
.go-refpick select option, .go-refpick select optgroup { background: var(--ht-card-bg); color: var(--ht-body-color); }
.go-crumbs { font-size: .9rem; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }
.go-crumbs a { font-weight: 600; text-decoration: none; }
.go-crumbs .sep { color: var(--ht-gray-500); }
.go-crumbs b { color: var(--ht-heading-color); }

/* le dernier commit, au-dessus des fichiers */
.go-latest { display: flex; align-items: center; gap: .55rem; padding: .65rem 1rem; font-size: .8rem; border-bottom: 1px solid var(--ht-border-color);
  background: rgba(var(--ht-primary-rgb), .035); border-radius: var(--ht-card-border-radius, .375rem) var(--ht-card-border-radius, .375rem) 0 0; flex-wrap: wrap; }
.go-latest b { color: var(--ht-heading-color); }
.go-latestmsg { color: var(--ht-gray-700); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.go-latestmsg:hover { color: var(--ht-primary); text-decoration: underline; }
.go-latest time { color: var(--ht-gray-600); font-size: .74rem; }
.go-count { font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: .3rem; }
.go-sha { font-family: var(--go-mono); font-size: .74rem; color: var(--ht-gray-700); text-decoration: none; }
.go-sha:hover { color: var(--ht-primary); }
.go-av { flex: none; width: 1.45rem; height: 1.45rem; border-radius: 50%; display: inline-grid; place-items: center; font-size: .66rem; font-weight: 800; color: #fff;
  background: linear-gradient(135deg, hsl(var(--h) 62% 52%), hsl(calc(var(--h) + 40) 62% 40%)); }

/* les fichiers d'un dossier, les branches, les utilisateurs */
.go-files { width: 100%; border-collapse: collapse; font-size: .82rem; }
.go-files td { padding: .5rem 1rem; border-bottom: 1px solid var(--ht-border-color); vertical-align: middle; }
.go-files tr:last-child td { border-bottom: 0; }
.go-files tr:hover td { background: rgba(var(--ht-primary-rgb), .03); }
.go-fname { display: inline-flex; align-items: center; gap: .55rem; color: var(--ht-heading-color); text-decoration: none; white-space: nowrap; }
a.go-fname:hover { color: var(--ht-primary); text-decoration: underline; }
.go-fname .go-ic { color: var(--ht-gray-600); }
.go-fname .go-icfolder { color: var(--ht-primary); fill: rgba(var(--ht-primary-rgb), .18); }
.go-fmsg { color: var(--ht-gray-600); max-width: 1px; width: 55%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.go-fmsg a { color: var(--ht-gray-600); text-decoration: none; }
.go-fmsg a:hover { color: var(--ht-primary); text-decoration: underline; }
.go-ftime { color: var(--ht-gray-600); text-align: right; white-space: nowrap; font-size: .76rem; }
.go-ab { display: inline-flex; gap: .35rem; font-size: .7rem; font-family: var(--go-mono); color: var(--ht-gray-600); }
.go-inline { display: inline-flex; gap: .35rem; }
.go-inline .form-control { width: 12rem; }

/* ── le code ───────────────────────────────────────────────────────────────────────────────── */
.go-scroll { overflow-x: auto; }
.go-code { font-family: var(--go-mono); font-size: .76rem; line-height: 1.6; }
.go-code table { border-collapse: collapse; width: 100%; }
.go-code td.ln { width: 1%; min-width: 3.2rem; padding: 0 .7rem; text-align: right; color: var(--ht-gray-500); user-select: none; vertical-align: top; white-space: nowrap; }
.go-code td.ln a { color: inherit; text-decoration: none; }
.go-code td.ln a:hover { color: var(--ht-primary); }
.go-code td.lc { padding: 0 1rem; white-space: pre; color: var(--ht-body-color); tab-size: 4; }
.go-code tr:first-child td { padding-top: .5rem; }
.go-code tr:last-child td { padding-bottom: .5rem; }
.go-code tr:target td, .go-code tr.hl td { background: rgba(var(--ht-warning-rgb), .16); }
.go-filehead { flex-wrap: wrap; }
.go-seg { display: inline-flex; border: 1px solid var(--ht-border-color); border-radius: .45rem; overflow: hidden; }
.go-seg a { padding: .2rem .7rem; font-size: .74rem; text-decoration: none; color: var(--ht-gray-700); }
.go-seg a.on { background: var(--ht-primary); color: #fff; }
.go-imgview { padding: 2rem; text-align: center; background: repeating-conic-gradient(var(--ht-gray-100) 0% 25%, transparent 0% 50%) 50% / 20px 20px; }
.go-imgview img { max-width: 100%; max-height: 70vh; }
.go-pre { white-space: pre-wrap; font-family: var(--go-mono); font-size: .78rem; margin: 0; }

/* les commandes à copier (aide, dépôt vide) */
.go-cmd { position: relative; border: 1px solid var(--ht-border-color); border-radius: .5rem; background: var(--ht-gray-100); }
.go-cmd pre { margin: 0; padding: .7rem 2.8rem .7rem .9rem; font-family: var(--go-mono); font-size: .76rem; color: var(--ht-body-color); white-space: pre-wrap; }
.go-cmd .go-copy { position: absolute; top: .35rem; right: .35rem; height: 1.8rem; }

/* ── les commits ───────────────────────────────────────────────────────────────────────────── */
.go-dayhead { display: flex; align-items: center; gap: .45rem; font-size: .74rem; font-weight: 600; color: var(--ht-gray-700); margin: 1rem 0 .45rem .2rem; }
.go-dayhead:first-of-type { margin-top: 0; }
.go-commits { margin-bottom: .5rem; }
.go-commit { display: flex; align-items: center; gap: .75rem; padding: .65rem 1rem; border-bottom: 1px solid var(--ht-border-color); }
.go-commit:last-child { border-bottom: 0; }
.go-commit:hover { background: rgba(var(--ht-primary-rgb), .03); }
.go-cmid { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.go-csubj { font-size: .86rem; font-weight: 600; color: var(--ht-heading-color); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.go-csubj:hover { color: var(--ht-primary); text-decoration: underline; }
.go-cmid small { font-size: .72rem; color: var(--ht-gray-600); }
.go-cmid small b { color: var(--ht-gray-800); font-weight: 600; }
.go-cright { display: flex; align-items: center; gap: .2rem; }
.go-cright .go-sha { padding: .15rem .45rem; border: 1px solid var(--ht-border-color); border-radius: .35rem; }
.go-cright .go-copy { height: 1.7rem; }
.go-pager { display: flex; justify-content: space-between; align-items: center; margin-top: 1rem; }

.go-ctitle { font-size: 1.1rem; font-weight: 700; margin: 0 0 .5rem; }
.go-cbody { white-space: pre-wrap; font-family: var(--go-mono); font-size: .78rem; color: var(--ht-gray-800); margin: 0 0 .75rem; }
.go-cmeta { display: flex; align-items: center; gap: .55rem; font-size: .8rem; flex-wrap: wrap; padding-top: .75rem; border-top: 1px solid var(--ht-border-color); }
.go-fullsha { font-family: var(--go-mono); font-size: .72rem; color: var(--ht-gray-800); }
.go-diffsum { display: flex; align-items: center; gap: 1rem; font-size: .82rem; margin: 0 0 .6rem .2rem; }
.go-stat { display: inline-flex; gap: .4rem; font-family: var(--go-mono); font-size: .74rem; font-weight: 600; }
.go-stat i { font-style: normal; }
.go-stat .a { color: var(--ht-success); }
.go-stat .d { color: var(--ht-danger); }
.go-toc { padding: .35rem 0; max-height: 16rem; overflow-y: auto; }
.go-toc a { display: flex; align-items: center; gap: .5rem; padding: .25rem 1rem; font-size: .78rem; font-family: var(--go-mono); text-decoration: none; color: var(--ht-body-color); }
.go-toc a:hover { background: rgba(var(--ht-primary-rgb), .05); color: var(--ht-primary); }
.go-dot { width: .5rem; height: .5rem; border-radius: 50%; flex: none; }
.go-dot.success { background: var(--ht-success); } .go-dot.danger { background: var(--ht-danger); }
.go-dot.info { background: var(--ht-info); } .go-dot.warning { background: var(--ht-warning); }
.go-dfile .go-cardhead { position: sticky; top: var(--ht-top-h); z-index: 5; background: var(--ht-card-bg); flex-wrap: wrap; }
.go-dname { font-family: var(--go-mono); font-size: .78rem; word-break: break-all; }
.go-fold { border: 0; background: none; color: var(--ht-gray-600); padding: 0 .2rem; cursor: pointer; transition: transform .15s; }
.go-dfile.folded .go-fold { transform: rotate(-90deg); }
.go-dfile.folded .go-diff { display: none; }
.go-diff td.lc { padding-left: .4rem; }
.go-diff .mk { display: inline-block; width: 1.1rem; color: var(--ht-gray-500); user-select: none; }
.go-diff tr.ad td { background: rgba(var(--ht-success-rgb), .11); }
.go-diff tr.ad td.ln { background: rgba(var(--ht-success-rgb), .2); }
.go-diff tr.ad .mk { color: var(--ht-success); }
.go-diff tr.de td { background: rgba(var(--ht-danger-rgb), .1); }
.go-diff tr.de td.ln { background: rgba(var(--ht-danger-rgb), .18); }
.go-diff tr.de .mk { color: var(--ht-danger); }
.go-diff tr.hk td { background: rgba(var(--ht-primary-rgb), .07); color: var(--ht-primary); padding-top: .2rem; padding-bottom: .2rem; }
.go-diff tr.nl td { color: var(--ht-gray-500); font-style: italic; }
.go-dnote { padding: 1rem !important; color: var(--ht-gray-600); font-family: var(--ht-font-sans-serif); font-size: .8rem; }

/* ── le Markdown (README) ──────────────────────────────────────────────────────────────────── */
.go-md { font-size: .9rem; line-height: 1.65; padding: 1.5rem 2rem; overflow-wrap: break-word; }
.go-md > :first-child { margin-top: 0; }
.go-md h1, .go-md h2 { padding-bottom: .3rem; border-bottom: 1px solid var(--ht-border-color); }
.go-md h1 { font-size: 1.6rem; } .go-md h2 { font-size: 1.3rem; } .go-md h3 { font-size: 1.1rem; } .go-md h4, .go-md h5, .go-md h6 { font-size: .95rem; }
.go-md h1, .go-md h2, .go-md h3, .go-md h4, .go-md h5, .go-md h6 { margin: 1.4rem 0 .7rem; font-weight: 700; }
.go-md pre { background: var(--ht-gray-100); border: 1px solid var(--ht-border-color); border-radius: .5rem; padding: .8rem 1rem; font-size: .78rem; overflow-x: auto; }
.go-md pre code { color: var(--ht-body-color); font-size: inherit; }
.go-md :not(pre) > code { background: rgba(var(--ht-primary-rgb), .08); padding: .1rem .35rem; border-radius: .3rem; }
.go-md blockquote { border-left: 3px solid rgba(var(--ht-primary-rgb), .4); padding: .1rem 0 .1rem 1rem; color: var(--ht-gray-700); margin: 0 0 1rem; }
.go-md table { border-collapse: collapse; margin: 0 0 1rem; font-size: .84rem; }
.go-md th, .go-md td { border: 1px solid var(--ht-border-color); padding: .35rem .75rem; }
.go-md th { background: var(--ht-gray-100); font-weight: 600; }
.go-md img { max-width: 100%; }
.go-md hr { margin: 1.5rem 0; }
.go-md li > input[type=checkbox] { margin-right: .3rem; }

/* ── connexion ─────────────────────────────────────────────────────────────────────────────── */
.go-bare-main { min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.go-logincard { width: min(28rem, 100%); }
.go-bare-main .go-flash { width: min(28rem, 100%); }

/* ── téléphone ─────────────────────────────────────────────────────────────────────────────── */
/* le bouton ☰ (trois traits qui deviennent une croix) : seulement sur le téléphone */
.go-burger { display: none; flex: none; width: 2.2rem; height: 2.2rem; margin-left: -.35rem; padding: 0; border: 0; border-radius: .5rem; background: transparent;
  color: var(--ht-gray-800); place-items: center; cursor: pointer; }
.go-burger:hover { background: var(--nv-hover, rgba(var(--ht-primary-rgb), .06)); color: var(--ht-primary); }
.go-burger span, .go-burger span::before, .go-burger span::after { display: block; width: 1.1rem; height: 2px; border-radius: 2px; background: currentColor;
  transition: transform .2s, background .2s; }
.go-burger span { position: relative; }
.go-burger span::before, .go-burger span::after { content: ""; position: absolute; left: 0; }
.go-burger span::before { top: -6px; } .go-burger span::after { top: 6px; }
.go-menu-open .go-burger span { background: transparent; }
.go-menu-open .go-burger span::before { transform: translateY(6px) rotate(45deg); }
.go-menu-open .go-burger span::after { transform: translateY(-6px) rotate(-45deg); }
.go-sideback { position: fixed; inset: var(--ht-top-h) 0 0 0; z-index: 1030; background: rgba(0, 0, 0, .35); backdrop-filter: blur(2px); animation: go-fade .15s ease-out; }
@keyframes go-fade { from { opacity: 0; } }

@media (max-width: 860px) {
  .ht-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: var(--ht-top-h) 1fr; }
  .ht-top { padding: 0 1rem; gap: .6rem; }
  .ht-top .ht-brandlink { width: auto; }
  .go-burger { display: inline-grid; }
  /* le menu : un panneau qui glisse de la gauche, sous la barre du haut, avec ses sections comme sur l'ordinateur */
  .ht-side { position: fixed; top: var(--ht-top-h); left: 0; bottom: 0; z-index: 1040; width: min(17rem, 85vw); height: auto;
    background: var(--ht-card-bg); box-shadow: .5rem 0 1.5rem rgba(0, 0, 0, .18); transform: translateX(-105%); visibility: hidden;
    transition: transform .22s ease, visibility 0s linear .22s; }
  .go-menu-open .ht-side { transform: none; visibility: visible; transition: transform .22s ease; }
  .go-menu-open { overflow: hidden; }
  .htn-link { padding: .5rem .6rem; font-size: .88rem; }
  .ht-main { padding: 1rem; }
  /* le dernier commit : le message prend sa propre ligne au lieu d'être coupé à trois lettres */
  .go-latestmsg { order: 5; flex-basis: 100%; white-space: normal; }
}
/* un petit téléphone : la barre du haut tient sur la largeur (🎨 reste dans le menu du compte : « Thème de couleur… ») */
@media (max-width: 575.98px) {
  .ht-shell #btn-themes, .ht-shell .ht-ver { display: none; }
  .go-clonebox input { width: 100%; max-width: none; }
  .go-clone { width: 100%; } .go-clonebox { flex: 1; }
  .go-fmsg { display: none; }
  .go-md { padding: 1rem; }
  .go-filter { width: 100%; }
  .go-userbtn { font-size: 0; gap: 0 !important; }
}

/* ── l'activité (les pushes, table pushes) ─────────────────────────────────────────────────── */
.go-feed { padding: .25rem 0; }
.go-fitem { display: flex; gap: .6rem; padding: .55rem 1rem; font-size: .8rem; line-height: 1.45; border-bottom: 1px solid var(--ht-border-color); }
.go-fitem:last-child { border-bottom: 0; }
.go-fitem > div { min-width: 0; }
.go-fitem b { color: var(--ht-heading-color); }
.go-fitem small { display: block; font-size: .7rem; color: var(--ht-gray-600); }
.go-fitem .badge { text-decoration: none; }

/* ── l'aide : un onglet par système ────────────────────────────────────────────────────────── */
.go-os { display: inline-flex; border: 1px solid var(--ht-border-color); border-radius: .5rem; overflow: hidden; margin-bottom: 1rem; }
.go-os button { border: 0; background: transparent; padding: .3rem .9rem; font-size: .8rem; font-weight: 600; color: var(--ht-gray-700); }
.go-os button.on { background: var(--ht-primary); color: #fff; }
[data-os-pane][hidden] { display: none; }

/* ═══ LE JOURNAL DES MODIFICATIONS — copié tel quel de ChartOps (static/css/app.css v1.37 / v1.57, layout.css : .ht-seg, .ht-newver) ═══ */
/* ── le journal des modifications (v1.37) : par jour, chaque changement sur une ligne ── */
.htc-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding-bottom: .7rem; margin-bottom: .6rem; border-bottom: 1px solid var(--ht-border-color); }
.htc-tools .htc-q { flex: 1 1 14rem; max-width: 22rem; }
.htc-tools .htc-kinds small { opacity: .65; font-size: .68rem; }
.htc-stat { margin-left: auto; font-size: .74rem; color: var(--ht-gray-600); } .htc-stat b { color: var(--ht-info); }
#changelog-body .htc-list { max-height: 66vh; overflow-y: auto; padding-right: .3rem; }
.htc-day { margin-bottom: 1.1rem; }
.htc-dayh { position: sticky; top: 0; z-index: 1; margin: 0 0 .5rem; padding: .3rem 0; font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--ht-primary); background: var(--ht-emphasis-bg); border-bottom: 1px solid rgba(var(--ht-primary-rgb), .25); }
.htc-ver2 { display: grid; grid-template-columns: 6.2rem minmax(0, 1fr); gap: .2rem .8rem; padding: .45rem .5rem; border-radius: .6rem; }
.htc-ver2 + .htc-ver2 { border-top: 1px dashed var(--ht-border-color); border-radius: 0; }
.htc-ver2.fresh { background: rgba(var(--ht-info-rgb), .07); border-radius: .6rem; }
.htc-vh { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }
.htc-vh b { font-family: var(--ht-font-monospace); font-size: .92rem; color: var(--ht-gray-900); }
.htc-latest, .htc-fresh { font-size: .6rem; font-weight: 800; padding: .05rem .4rem; border-radius: 1rem; white-space: nowrap; }
.htc-latest { background: rgba(var(--ht-success-rgb), .15); color: var(--ht-success); }
.htc-fresh { background: rgba(var(--ht-info-rgb), .16); color: var(--ht-info); }
.htc-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.htc-items li { display: flex; gap: .5rem; align-items: baseline; padding: .2rem .35rem; border-radius: .4rem; cursor: pointer; font-size: .82rem; line-height: 1.5; color: var(--ht-gray-700); }
.htc-items li:hover { background: rgba(var(--ht-primary-rgb), .06); }
.htc-items li .ic { flex: none; width: 1.2rem; text-align: center; font-size: .8rem; }
.htc-items li .tx { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.htc-items li.open .tx { white-space: normal; }
.htc-items li .tx b { color: var(--ht-gray-900); font-weight: 700; }
.htc-items li.k-fix .tx b { color: var(--ht-warning); } .htc-items li.k-new .tx b { color: var(--ht-success); }
.htc-none { text-align: center; color: var(--ht-gray-500); padding: 2rem 0; }
/* v1.57 : des versions pas encore lues — un petit compteur dans le bouton de l'utilisateur (entre le nom et la flèche du menu,
   qui est le ::after de Bootstrap), et « 3 nouvelles » au bout de « Journal des modifications » ; aux couleurs du thème */
#nav-user { display: inline-flex; align-items: center; }
#nav-user::after { order: 2; }
#nav-user[data-new]::before { content: attr(data-new); order: 1; margin-left: .45rem; min-width: 1.15rem; height: 1.15rem; padding: 0 .3rem; border-radius: 1rem;
  font-size: .62rem; font-weight: 800; line-height: calc(1.15rem - 2px); text-align: center;
  color: var(--ht-info); background: rgba(var(--ht-info-rgb), .16); border: 1px solid rgba(var(--ht-info-rgb), .55); }
#btn-changelog { display: flex; align-items: center; gap: .35rem; }
#btn-changelog[data-new]::after { content: attr(data-new); margin-left: auto; padding: .05rem .5rem; border-radius: 1rem; font-size: .62rem; font-weight: 800;
  letter-spacing: .02em; color: var(--ht-info); background: rgba(var(--ht-info-rgb), .14); border: 1px solid rgba(var(--ht-info-rgb), .4); }
@media (max-width: 575.98px) { .htc-ver2 { grid-template-columns: 1fr; } .htc-vh { flex-direction: row; } }

/* ChartOps layout.css : les boutons segmentés (filtres du journal) */
.ht-seg { background: var(--ht-gray-200); border-radius: .45rem; padding: 2px; display: inline-flex; }
.ht-seg .btn { background: transparent; border: 1px solid transparent; box-shadow: none; color: var(--ht-gray-700); font-weight: 500;
  border-radius: .35rem !important; padding: .15rem .6rem; font-size: .74rem; }
.ht-seg .btn:hover { color: var(--ht-gray-900); }
.ht-seg .btn:focus-visible { outline: 2px solid var(--ht-primary); outline-offset: -1px; }
.ht-seg .btn.active { background: var(--ht-card-bg); border-color: var(--ht-border-color); color: var(--ht-gray-900); font-weight: 600;
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .1); }

/* ChartOps layout.css : le bandeau « Nouvelle version en ligne » */
.ht-newver { position: fixed; left: 50%; bottom: 1.2rem; transform: translateX(-50%); z-index: 1980; display: flex; align-items: center; gap: .8rem;
  padding: .65rem .75rem .65rem 1.05rem; border-radius: .8rem; background: color-mix(in srgb, var(--ht-primary) 10%, var(--ht-body-bg));
  border: 2px solid var(--ht-primary); box-shadow: 0 .8rem 2.2rem rgba(0, 0, 0, .5), 0 0 0 4px rgba(var(--ht-primary-rgb), .18); font-size: .88rem;
  font-weight: 500; color: var(--ht-body-color); animation: ck-pal-in .2s ease-out; }
.ht-newver b { color: var(--ht-primary); }
.ht-newver #ht-reload { background: var(--ht-primary); border-color: var(--ht-primary); color: var(--ht-body-bg); font-weight: 700; padding: .3rem .9rem; }
.ht-newver #ht-reload:hover, .ht-newver #ht-reload:focus-visible { filter: brightness(1.12); }
.ht-newver .x { border: 0; background: transparent; color: var(--ht-gray-500); font-size: .9rem; }
.ht-um-val { margin-left: auto; font-size: .7rem; color: var(--ht-success); font-weight: 600; }
.ht-um-val.off { color: var(--ht-gray-500); }
#nav-version.ht-um-val { color: var(--ht-gray-500); font-weight: 500; }
@keyframes ck-pal-in { from { transform: translateY(-8px) scale(.98); opacity: 0; } }

/* ── invitations et clients ────────────────────────────────────────────────────────────────── */
.go-repochecks { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; font-size: .8rem; padding: .5rem .75rem; border: 1px solid var(--ht-border-color); border-radius: .5rem; background: var(--ht-gray-100); max-height: 12rem; overflow-y: auto; }
.go-access { display: inline-block; margin-left: .4rem; font-size: .74rem; vertical-align: middle; }
.go-access > summary { cursor: pointer; color: var(--ht-gray-700); display: inline; }
.go-access > summary:hover { color: var(--ht-primary); }
.go-access[open] form { margin-top: .4rem; min-width: 16rem; }
.go-newinvite { border-color: rgba(var(--ht-success-rgb), .5); background: rgba(var(--ht-success-rgb), .05); }
.go-or { display: flex; align-items: center; gap: .6rem; margin: 1rem 0; color: var(--ht-gray-500); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.go-or::before, .go-or::after { content: ""; flex: 1; border-top: 1px solid var(--ht-border-color); }

/* ═══ copié tel quel de ChartOps (static/css/layout.css) ═══ */
/* ── la fenêtre des thèmes de couleur (🎨, reprise de TrackMyFund) ─────────────────────────── */
.htt-h { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; margin-bottom: .45rem;
  font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ht-gray-600); }
.htt-calw { font-size: .72rem; font-weight: 400; letter-spacing: 0; text-transform: none; }
.htt-calw summary { cursor: pointer; color: var(--ht-primary); }
.htt-cal { display: grid; grid-template-columns: repeat(4, max-content); gap: .1rem 1rem; margin-top: .3rem; color: var(--ht-gray-700); }
.htt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: .4rem; }
.htt-grid.auto { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
/* une carte d'une ligne : liseré et reflet à la couleur du thème (--tp), l'emoji, le nom, ses deux couleurs */
.htt-card { display: flex; align-items: center; gap: .5rem; min-width: 0; padding: .4rem .55rem .4rem .6rem; border-radius: .55rem; text-align: left; cursor: pointer;
  border: 1px solid var(--ht-gray-200); border-left: 3px solid var(--tp); color: var(--ht-gray-900);
  background: linear-gradient(90deg, color-mix(in srgb, var(--tp) 10%, var(--ht-emphasis-bg, var(--ht-body-bg))), var(--ht-emphasis-bg, var(--ht-body-bg)) 70%);
  transition: border-color .12s, box-shadow .12s, transform .12s; }
.htt-card:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--tp) 55%, transparent); box-shadow: 0 .25rem .7rem -.3rem var(--tp); }
.htt-card:focus-visible { outline: 2px solid var(--tp); outline-offset: 2px; }
.htt-card.on { border-color: var(--tp); box-shadow: 0 0 0 2px var(--tp) inset; }
.htt-card.on .htt-name::after { content: ' ✓'; color: var(--tp); }
.htt-emoji { font-size: 1.05rem; line-height: 1; flex: none; }
.htt-txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.htt-name { font-weight: 600; font-size: .8rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.htt-sub { font-size: .68rem; color: var(--ht-gray-600); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.htt-sw { flex: none; width: .7rem; height: .7rem; border-radius: 50%; display: inline-block; border: 1px solid rgba(0, 0, 0, .08); }
.htt-sw + .htt-sw { margin-left: -.25rem; }
.htt-opts { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--ht-gray-200); }
@media (max-width: 575.98px) { .htt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .htt-cal { grid-template-columns: repeat(2, max-content); } }

/* ── les versions (releases), le lien public, le partage ───────────────────────────────────── */
.go-release.latest { border-color: rgba(var(--ht-success-rgb), .45); }
.go-rl-head { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin-bottom: .6rem; }
.go-rl-name { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--go-mono); font-weight: 700; font-size: 1.05rem; color: var(--ht-heading-color); }
.go-rl-meta { font-size: .76rem; color: var(--ht-gray-600); }
.go-rl-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; font-size: .84rem; }
.go-rl-items li { display: flex; gap: .5rem; align-items: baseline; color: var(--ht-gray-800); }
.go-rl-tag { flex: none; font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: .08rem .45rem; border-radius: 1rem; white-space: nowrap; }
.go-rl-tag.new { background: rgba(var(--ht-success-rgb), .15); color: var(--ht-success); }
.go-rl-tag.fix { background: rgba(var(--ht-warning-rgb), .18); color: var(--ht-warning); }
.go-rl-tag.imp { background: rgba(var(--ht-info-rgb), .14); color: var(--ht-info); }
.go-rl-msg { font-size: .86rem; color: var(--ht-gray-800); }
.go-repometa a { color: inherit; text-decoration: none; }
.go-repometa a:hover { color: var(--ht-primary); }
.go-owner { font-weight: 500; color: var(--ht-gray-600); font-size: .74rem; }
.go-pubshell { min-height: 100vh; }
.go-pubshell .ht-top { position: sticky; top: 0; }
.go-pubshell .ht-main { max-width: 80rem; margin: 0 auto; }

/* ── le Markdown au format GitHub : ancres des titres, alertes, tâches, code coloré (highlight.js) ─────────────── */
.go-md h1, .go-md h2, .go-md h3, .go-md h4, .go-md h5, .go-md h6 { position: relative; scroll-margin-top: calc(var(--ht-top-h) + 1rem); }
.go-anchor { position: absolute; left: -1.1rem; width: 1.1rem; opacity: 0; color: var(--ht-gray-500); text-decoration: none; font-weight: 400; }
.go-md h1:hover .go-anchor, .go-md h2:hover .go-anchor, .go-md h3:hover .go-anchor, .go-md h4:hover .go-anchor, .go-anchor:focus { opacity: 1; }
.go-md p[align="center"], .go-md div[align="center"], .go-md center { text-align: center; }
.go-md p[align="right"], .go-md div[align="right"] { text-align: right; }
.go-md img[align="right"] { float: right; margin: 0 0 .5rem 1rem; }
.go-md img[align="left"] { float: left; margin: 0 1rem .5rem 0; }
.go-md kbd { display: inline-block; padding: .05rem .35rem; font-size: .76em; font-family: var(--go-mono); line-height: 1.4; color: var(--ht-gray-900);
  background: var(--ht-gray-100); border: 1px solid var(--ht-border-color); border-bottom-width: 2px; border-radius: .3rem; }
.go-md details { margin: 0 0 1rem; padding: .5rem .8rem; border: 1px solid var(--ht-border-color); border-radius: .5rem; }
.go-md details > summary { cursor: pointer; font-weight: 600; }
.go-md details[open] > summary { margin-bottom: .5rem; }
.go-md ul.go-tasks { list-style: none; padding-left: .2rem; }
.go-md li.go-task > input { margin: 0 .4rem 0 0; vertical-align: -.1em; }
.go-alert { margin: 0 0 1rem; padding: .55rem 1rem .55rem .9rem; border-left: 4px solid var(--a); border-radius: .3rem; background: color-mix(in srgb, var(--a) 7%, transparent); }
.go-alert > :last-child { margin-bottom: 0; }
.go-alert-title { font-weight: 700; color: var(--a); margin-bottom: .3rem !important; }
.go-alert-note { --a: #0969da; } .go-alert-tip { --a: #1a7f37; } .go-alert-important { --a: #8250df; } .go-alert-warning { --a: #9a6700; } .go-alert-caution { --a: #cf222e; }
[data-bs-theme="dark"] .go-alert-note { --a: #4493f8; } [data-bs-theme="dark"] .go-alert-tip { --a: #3fb950; } [data-bs-theme="dark"] .go-alert-important { --a: #ab7df8; }
[data-bs-theme="dark"] .go-alert-warning { --a: #d29922; } [data-bs-theme="dark"] .go-alert-caution { --a: #f85149; }
.go-readme .go-cardhead { position: sticky; top: var(--ht-top-h); z-index: 4; background: var(--ht-card-bg); }

/* les couleurs du code (classes de highlight.js), en clair et en sombre — à la façon de GitHub */
.go-md pre code.hljs { background: transparent; padding: 0; }
.hljs-comment, .hljs-quote { color: #6e7781; font-style: italic; }
.hljs-keyword, .hljs-selector-tag, .hljs-doctag, .hljs-template-tag, .hljs-type { color: #cf222e; }
.hljs-string, .hljs-regexp, .hljs-meta .hljs-string, .hljs-addition { color: #0a3069; }
.hljs-number, .hljs-literal, .hljs-variable, .hljs-template-variable, .hljs-attr, .hljs-symbol, .hljs-bullet { color: #0550ae; }
.hljs-title, .hljs-title.function_, .hljs-section, .hljs-selector-id, .hljs-selector-class { color: #8250df; }
.hljs-built_in, .hljs-name, .hljs-tag { color: #116329; }
.hljs-meta { color: #953800; } .hljs-deletion { color: #82071e; } .hljs-emphasis { font-style: italic; } .hljs-strong { font-weight: 700; }
[data-bs-theme="dark"] .hljs-comment, [data-bs-theme="dark"] .hljs-quote { color: #8b949e; }
[data-bs-theme="dark"] .hljs-keyword, [data-bs-theme="dark"] .hljs-selector-tag, [data-bs-theme="dark"] .hljs-doctag, [data-bs-theme="dark"] .hljs-template-tag, [data-bs-theme="dark"] .hljs-type { color: #ff7b72; }
[data-bs-theme="dark"] .hljs-string, [data-bs-theme="dark"] .hljs-regexp, [data-bs-theme="dark"] .hljs-meta .hljs-string, [data-bs-theme="dark"] .hljs-addition { color: #a5d6ff; }
[data-bs-theme="dark"] .hljs-number, [data-bs-theme="dark"] .hljs-literal, [data-bs-theme="dark"] .hljs-variable, [data-bs-theme="dark"] .hljs-template-variable, [data-bs-theme="dark"] .hljs-attr, [data-bs-theme="dark"] .hljs-symbol, [data-bs-theme="dark"] .hljs-bullet { color: #79c0ff; }
[data-bs-theme="dark"] .hljs-title, [data-bs-theme="dark"] .hljs-title.function_, [data-bs-theme="dark"] .hljs-section, [data-bs-theme="dark"] .hljs-selector-id, [data-bs-theme="dark"] .hljs-selector-class { color: #d2a8ff; }
[data-bs-theme="dark"] .hljs-built_in, [data-bs-theme="dark"] .hljs-name, [data-bs-theme="dark"] .hljs-tag { color: #7ee787; }
[data-bs-theme="dark"] .hljs-meta { color: #ffa657; } [data-bs-theme="dark"] .hljs-deletion { color: #ffdcd7; }

/* l'éditeur de pages */
.go-editor .go-cardhead { flex-wrap: wrap; }
.go-edit-area { display: block; width: 100%; min-height: 26rem; resize: vertical; border: 0; outline: 0; padding: 1rem 1.25rem; font-family: var(--go-mono);
  font-size: .82rem; line-height: 1.6; tab-size: 2; background: var(--ht-card-bg); color: var(--ht-body-color); }
.go-editor [data-edit-preview] { min-height: 26rem; }
.go-edit-foot { display: flex; gap: .5rem; align-items: center; background: rgba(var(--ht-primary-rgb), .03); }
.go-edit-foot input { flex: 1; }
.go-edit-help code { font-size: .92em; }

/* la visibilité d'un dépôt (privé, public) : une pastille discrète à contour, comme GitHub — pas un badge plein */
/* la visibilité dans la liste et l'en-tête d'un dépôt : une petite pastille ronde dans le coin de son icône (🔒 privé, 🌐 public) */
.go-repoic { position: relative; }
.go-vismark { position: absolute; right: -.4rem; bottom: -.4rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; display: grid; place-items: center;
  background: var(--ht-card-bg); border: 1px solid var(--ht-border-color); color: var(--ht-gray-800); box-shadow: 0 1px 3px rgba(0, 0, 0, .18); }
.go-vismark .go-ic, .go-repoic.sm .go-vismark .go-ic { width: .7rem; height: .7rem; stroke-width: 2.4; }
.go-vismark.pub { background: color-mix(in srgb, var(--ht-success) 16%, var(--ht-card-bg)); border-color: rgba(var(--ht-success-rgb), .5); color: var(--ht-success); }
.go-vis { display: inline-flex; align-items: center; gap: .25rem; padding: 0 .5rem; border: 1px solid var(--ht-border-color, rgba(128,128,128,.35)); border-radius: 2rem;
  font-size: .68rem; font-weight: 500; line-height: 1.35rem; color: var(--ht-gray-600); background: transparent; vertical-align: .12em; white-space: nowrap; }
.go-vis .go-ic { width: .72rem; height: .72rem; stroke-width: 2; vertical-align: 0; }
h1 .go-vis { font-size: .72rem; margin-left: .35rem; vertical-align: .3em; }

/* la 2FA : le QR code (toujours noir sur blanc, même en mode sombre : les caméras le lisent mieux) et le champ du code */
.go-qr { background: #fff; padding: .6rem; border-radius: .5rem; line-height: 0; border: 1px solid var(--ht-border-color); }
.go-qr svg { width: 11rem; height: 11rem; display: block; }
.go-otp { font-family: var(--go-mono); letter-spacing: .25em; font-size: 1.1rem; }

/* Copies auto : figer une copie à une version (une petite liste avec l'icône de l'historique) */
.go-pinsel { display: inline-flex; align-items: center; gap: .25rem; border: 1px solid var(--ht-border-color); border-radius: .3rem; padding: 0 .3rem; vertical-align: middle; color: var(--ht-gray-600); }
.go-pinsel select { border: 0; background: transparent; font-size: .74rem; color: var(--ht-body-color); padding: .15rem 0; outline: 0; }

/* les tickets */
.go-istate { display: inline-flex; width: 1.6rem; height: 1.6rem; border-radius: 50%; align-items: center; justify-content: center; flex: none; }
.go-istate.open { color: var(--ht-success); background: rgba(var(--ht-success-rgb), .12); }
.go-istate.closed { color: var(--ht-gray-600); background: var(--ht-gray-200); }
.go-ihead h3 { font-size: 1.25rem; margin: 0 0 .5rem; color: var(--ht-heading-color); }
.go-ihead { margin-bottom: 1rem; }
.go-irename { margin-top: .35rem; }
.go-ievent { display: flex; align-items: center; gap: .4rem; font-size: .76rem; color: var(--ht-gray-600); margin: 0 0 1rem .75rem; }
.go-icomment .card-header { gap: .5rem; }
.go-issuebody { font-family: var(--go-mono); font-size: .8rem; }

/* Aide : les guides pas à pas */
.go-guides { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: .5rem; }
.go-guide { display: flex; align-items: center; gap: .65rem; padding: .6rem .75rem; border: 1px solid var(--ht-border-color); border-radius: .5rem;
  text-decoration: none; color: var(--ht-body-color); font-size: .82rem; font-weight: 500; }
.go-guide { transition: border-color .12s, background .12s, transform .12s; }
.go-guide:hover { border-color: rgba(var(--ht-primary-rgb), .5); background: rgba(var(--ht-primary-rgb), .04); color: var(--ht-heading-color); transform: translateY(-1px); }
.go-guide:hover .go-guidenum { background: var(--ht-primary); color: #fff; }
.go-guidenum { flex: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--ht-gray-200); color: var(--ht-gray-700); font-size: .75rem; font-weight: 700; }
.go-guidepage { max-width: 52rem; }

/* v1.35 — un ticket cité dans un commit (#12) : vert s'il est ouvert, gris s'il est fermé */
.go-issueref { font-weight: 600; text-decoration: none; padding: 0 .25rem; border-radius: .3rem; }
.go-issueref.open { color: var(--ht-success); background: rgba(var(--ht-success-rgb), .1); }
.go-issueref.closed { color: var(--ht-gray-600); background: var(--ht-gray-200); }
.go-issueref:hover { text-decoration: underline; }

/* Comparer : de → à */
.go-cmpbar { gap: .5rem; }
.go-cmparrow { color: var(--ht-gray-500); font-weight: 700; }

/* la dernière version d'un dépôt, dans la liste */
.go-reptag { display: inline-flex; align-items: center; gap: .2rem; }
.go-reptag .go-ic { width: .7rem; height: .7rem; }

/* l'activité de secours : les derniers commits */
.go-feednote { padding: .45rem 1rem .1rem; font-size: .68rem; color: var(--ht-gray-600); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }

/* Trouver un fichier */
.go-findq { display: flex; align-items: center; gap: .55rem; padding: .7rem 1rem; border-bottom: 1px solid var(--ht-border-color); color: var(--ht-gray-600); }
.go-findq input { flex: 1; border: 0; outline: 0; background: transparent; font-size: .95rem; color: var(--ht-body-color); }
.go-findlist { max-height: 70vh; overflow-y: auto; }
.go-findrow { display: flex; align-items: center; gap: .5rem; padding: .38rem 1rem; font-size: .82rem; font-family: var(--go-mono); text-decoration: none; color: var(--ht-body-color);
  border-bottom: 1px solid var(--ht-border-color); min-width: 0; }
.go-findrow:last-child { border-bottom: 0; }
.go-findrow:hover, .go-findrow:focus-visible { background: rgba(var(--ht-primary-rgb), .06); color: var(--ht-primary); outline: 0; }
.go-findrow .go-ic { color: var(--ht-gray-500); }
.go-finddir { color: var(--ht-gray-600); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 0; }
.go-findrow b { font-weight: 600; white-space: nowrap; }

/* un dépôt sans README : la carte « À propos » */
.go-aboutdesc { font-size: .95rem; margin-bottom: 1rem; }
.go-facts { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.1rem; }
.go-fact { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .7rem; border: 1px solid var(--ht-border-color); border-radius: 2rem; font-size: .78rem;
  color: var(--ht-gray-700); text-decoration: none; background: var(--ht-card-bg); }
.go-fact b { color: var(--ht-heading-color); }
a.go-fact:hover { border-color: rgba(var(--ht-primary-rgb), .45); color: var(--ht-primary); }
.go-langbar { display: flex; height: .5rem; border-radius: 1rem; overflow: hidden; gap: 2px; background: var(--ht-gray-200); }
.go-langbar span { min-width: 3px; }
.go-langs { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: .5rem 0 1.1rem; font-size: .74rem; color: var(--ht-gray-600); }
.go-langs i { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; margin-right: .3rem; }
.go-langs b { color: var(--ht-heading-color); font-weight: 600; margin-right: .2rem; }

/* ── v1.39 : notifications, chercher dans le code, blame, étiquettes des tickets, archivé ───────────────────────────── */
.go-bell { position: relative; line-height: 1; }
.go-bell .go-ic { width: 1rem; height: 1rem; vertical-align: -.15rem; }
.go-bell.on { color: var(--ht-primary); }
.go-bellnum { position: absolute; top: -.35rem; right: -.4rem; min-width: 1.05rem; height: 1.05rem; padding: 0 .25rem; border-radius: 1rem; background: var(--ht-danger);
  color: #fff; font-size: .6rem; font-weight: 800; line-height: 1.05rem; text-align: center; }
.go-notif.unread { background: rgba(var(--ht-primary-rgb), .05); }
.go-notif.unread .go-csubj { font-weight: 700; }
.go-watching { color: var(--ht-primary); border-color: rgba(var(--ht-primary-rgb), .5); }
.go-archived { display: flex; align-items: center; gap: .4rem; margin: -.3rem 0 1rem; }
.go-archived .go-ic { width: 1rem; height: 1rem; }

.go-hit .card-header { font-size: .8rem; }
.go-hit .go-code td.lc { white-space: pre-wrap; word-break: break-all; }
.go-code mark, .go-findrow mark { padding: 0 .1rem; border-radius: .2rem; background: rgba(var(--ht-warning-rgb), .35); color: inherit; }
.go-findq .form-check { display: flex; align-items: center; gap: .25rem; color: var(--ht-gray-700); }
.go-findq .form-check-input { margin: 0; float: none; }
.go-searchcode { border-style: dashed; }

.go-blame td.go-bmeta { width: 1%; min-width: 22rem; max-width: 22rem; padding: 0 .7rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  font-family: var(--bs-body-font-family, system-ui); font-size: .72rem; color: var(--ht-gray-700); border-left: 3px solid rgba(var(--ht-warning-rgb), var(--go-age, .2)); }
.go-blame tr.go-bfirst td { border-top: 1px solid var(--ht-border-color); }
.go-blame .go-bauth { font-weight: 600; color: var(--ht-heading-color); margin: 0 .3rem; }
.go-blame .go-bsubj { color: inherit; text-decoration: none; }
.go-blame .go-bsubj:hover { color: var(--ht-primary); }
.go-blame .go-btime { float: right; margin-left: .5rem; color: var(--ht-gray-500); }
.go-bage0 { --go-age: .08; } .go-bage1 { --go-age: .15; } .go-bage2 { --go-age: .25; } .go-bage3 { --go-age: .35; } .go-bage4 { --go-age: .45; }
.go-bage5 { --go-age: .55; } .go-bage6 { --go-age: .65; } .go-bage7 { --go-age: .75; } .go-bage8 { --go-age: .88; } .go-bage9 { --go-age: 1; }
@media (max-width: 767.98px) { .go-blame td.go-bmeta { min-width: 9rem; max-width: 9rem; } .go-blame .go-bsubj, .go-blame .go-btime { display: none; } }

.go-label { display: inline-block; padding: .05rem .5rem; border-radius: 1rem; font-size: .68rem; font-weight: 600; line-height: 1.4; text-decoration: none; vertical-align: .1rem;
  color: hsl(var(--h) 60% 35%); background: hsl(var(--h) 70% 50% / .14); border: 1px solid hsl(var(--h) 60% 45% / .35); }
.go-label:hover { background: hsl(var(--h) 70% 50% / .24); color: hsl(var(--h) 60% 30%); }
[data-bs-theme="dark"] .go-label { color: hsl(var(--h) 70% 72%); }
.go-filterchip { display: inline-flex; align-items: center; gap: .3rem; }
.go-filterchip > a:last-child { font-size: .7rem; color: var(--ht-gray-600); text-decoration: none; }
.go-iside .go-h6:first-child { margin-top: 0; }
.go-hookurl { font-size: .72rem; word-break: break-all; }

/* ── v1.40 : tickets (modifier, joindre, réagir, jalons) et fichiers des versions ─────────────────────────────────── */
.go-editform[hidden], .go-cview[hidden] { display: none !important; }
.go-mdhint { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .25rem; font-size: .7rem; color: var(--ht-gray-600); }
.go-mdhint .btn-link { font-size: .72rem; text-decoration: none; }
textarea.go-drop { border-color: var(--ht-primary); box-shadow: 0 0 0 .2rem rgba(var(--ht-primary-rgb), .15); }
.go-md img { max-width: 100%; height: auto; border-radius: .3rem; }

.go-reacts { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: 0; }
.go-reactbtn { padding: 0; border: 0; background: none; }
.go-react { display: inline-flex; align-items: center; gap: .25rem; padding: .05rem .5rem; border: 1px solid var(--ht-border-color); border-radius: 1rem; font-size: .8rem; line-height: 1.5;
  background: var(--ht-body-bg, transparent); cursor: default; }
.go-reactbtn .go-react { cursor: pointer; }
.go-reactbtn:hover .go-react { border-color: rgba(var(--ht-primary-rgb), .5); }
.go-react.on { border-color: rgba(var(--ht-primary-rgb), .6); background: rgba(var(--ht-primary-rgb), .1); }
.go-react b { font-size: .7rem; font-weight: 700; color: var(--ht-gray-700); }
.go-reactadd { position: relative; }
.go-reactadd summary { list-style: none; cursor: pointer; padding: .05rem .5rem; border: 1px dashed var(--ht-border-color); border-radius: 1rem; font-size: .75rem; color: var(--ht-gray-600); }
.go-reactadd summary::-webkit-details-marker { display: none; }
.go-reactpick { position: absolute; z-index: 5; bottom: 1.9rem; left: 0; display: flex; gap: .2rem; padding: .3rem; border: 1px solid var(--ht-border-color); border-radius: .5rem;
  background: var(--ht-card-bg, var(--bs-body-bg)); box-shadow: 0 .3rem 1rem rgba(0,0,0,.12); }
.go-reactpick .go-react { border-color: transparent; font-size: 1rem; }

.go-msbar { height: .45rem; border-radius: 1rem; overflow: hidden; background: var(--ht-gray-200); }
.go-msbar span { display: block; height: 100%; background: var(--ht-success); border-radius: 1rem; }
details.card > summary.card-header { cursor: pointer; list-style: none; }
details.card > summary.card-header::-webkit-details-marker { display: none; }

.go-assets { margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--ht-border-color); }
.go-asset { display: flex; align-items: center; gap: .5rem; padding: .3rem 0; font-size: .8rem; flex-wrap: wrap; }
.go-asset > .go-ic { width: .9rem; height: .9rem; color: var(--ht-gray-500); }
.go-assetadd { margin-top: .4rem; }
.go-assetadd summary { cursor: pointer; color: var(--ht-primary); }
.go-linklbl { min-width: 9.5rem; }

/* ── le logo d'un dépôt, à la place du livre (la pastille privé / public reste dans le coin) ───────────────────────── */
.go-repoic.has-logo { background: var(--ht-card-bg, #fff); border: 1px solid var(--ht-border-color); padding: .2rem; }
.go-repoic .go-repologo { width: 100%; height: 100%; object-fit: contain; border-radius: .45rem; display: block; }
.go-repoic.sm.has-logo { padding: .15rem; }
.go-logoprev { width: 3.2rem; height: 3.2rem; }
