/* Personal display settings (core lot v0.10, D-B-028): theme, font, text
   size, density -- set on <html> by static/js/tools/prefs.js as
   data-theme / data-font / data-size / data-density. Without data-theme the
   system choice applies (app.css, prefers-color-scheme).
   Content protection (D-B-029): watermark, print block, copy block, blur. */

/* ---------- Light (forced, even when Windows is dark) ---------- */
html[data-theme="light"] {
  color-scheme: light;
  --bg: #f2f4f6; --surface: #ffffff; --surface-2: #e9eef2; --ink: #16222d; --brand-blue: #1f7fa3;
  --muted: #5a6a79; --line: #d6dde4; --panel: #10202f; --dynamite: #e0602f; --agile: #0e8a8a;
  --agile-strong: #0a6f6f; --exploration: #7446b0; --danger: #b83a2e; --warn: #9a6512; --ok: #2d7a52;
  --shadow: 0 1px 3px rgba(16, 32, 47, .08);
}

/* ---------- Dark (forced) ---------- */
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0d1721; --surface: #15222f; --surface-2: #1c2c3c; --ink: #e2e9f0; --brand-blue: #9dcfe0;
  --muted: #93a3b2; --line: #283a4c; --panel: #09131c; --dynamite: #ef7a4c; --agile: #2bbdbd;
  --agile-strong: #4fd0d0; --exploration: #a98ae0; --danger: #e0695d; --warn: #d9a441; --ok: #57b784;
  --shadow: 0 1px 3px rgba(0, 0, 0, .35);
}

/* ---------- Atlassian: colors of the Atlassian Design System (light)
   used by Jira / Confluence: white top navigation, blue #0C66E4 for
   actions and links, neutrals #172B4D / #44546F / #DCDFE4. Colors only --
   no Atlassian logo, icon or font file (D-A-006 still holds). ---------- */
html[data-theme="atlassian"], html[data-theme="atlassian"] .content.ag-main, html[data-theme="atlassian"] .ag-layout {
  color-scheme: light;
  --bg: #ffffff; --surface: #ffffff; --surface-2: #f1f2f4; --ink: #172b4d; --brand-blue: #0c66e4;
  --muted: #44546f; --line: #dcdfe4; --panel: #ffffff; --panel-ink: #44546f; --dynamite: #e56910;
  --agile: #0c66e4; --agile-strong: #0055cc; --exploration: #6e5dc6; --danger: #c9372c; --warn: #a54800;
  --ok: #216e4e; --radius-sm: 3px; --radius-lg: 8px;
  --shadow: 0 1px 1px rgba(9, 30, 66, .25), 0 0 1px rgba(9, 30, 66, .31);
}
html[data-theme="atlassian"] .topbar { border-bottom: 1px solid #dcdfe4; border-image: none; height: 56px;
  box-shadow: 0 1px 1px rgba(9, 30, 66, .08); }
html[data-theme="atlassian"] .tab { color: #44546f; opacity: 1; font-weight: 500; border-radius: 3px; }
html[data-theme="atlassian"] .tab:hover { background: rgba(9, 30, 66, .06); color: #172b4d; }
html[data-theme="atlassian"] .tab.active { background: #e9f2ff; color: #0c66e4; box-shadow: inset 0 -2px 0 #0c66e4; }
html[data-theme="atlassian"] .tab-sep { background: #dcdfe4; }
html[data-theme="atlassian"] .user-button:hover, html[data-theme="atlassian"] .tb-audit-list:hover,
html[data-theme="atlassian"] .tb-audit-list.active { background: rgba(9, 30, 66, .06); }
html[data-theme="atlassian"] .ts-box { background: #ffffff; border: 1.5px solid #44546f; border-radius: 999px; }
html[data-theme="atlassian"] .ts-box:focus-within { border-color: #267cb5; box-shadow: 0 0 0 1px #267cb5; }
html[data-theme="atlassian"] .topbar .ts-input { color: #172b4d; }
html[data-theme="atlassian"] .topbar .ts-input::placeholder { color: #626f86; }
html[data-theme="atlassian"] .tb-audit { border-color: #dcdfe4; color: #44546f; }
html[data-theme="atlassian"] .tb-audit:hover { background: rgba(9, 30, 66, .06); border-color: #0c66e4; }
html[data-theme="atlassian"] .avatar { background: #0c66e4; }
html[data-theme="atlassian"] .btn { border-color: transparent; background: rgba(9, 30, 66, .06); color: #44546f; font-weight: 500; }
html[data-theme="atlassian"] .btn:hover:not(:disabled) { background: rgba(9, 30, 66, .14); border-color: transparent; }
html[data-theme="atlassian"] .btn-primary { background: #0c66e4; color: #ffffff; }
html[data-theme="atlassian"] .btn-primary:hover:not(:disabled) { background: #0055cc; }
html[data-theme="atlassian"] .btn-danger { color: #ae2e24; }
html[data-theme="atlassian"] .toast { background: #172b4d; border-left-color: #388bff; }
html[data-theme="atlassian"] input:focus, html[data-theme="atlassian"] select:focus,
html[data-theme="atlassian"] textarea:focus { border-color: #388bff; box-shadow: inset 0 0 0 1px #388bff; }
html[data-theme="atlassian"] input[type="text"], html[data-theme="atlassian"] input[type="password"],
html[data-theme="atlassian"] select, html[data-theme="atlassian"] textarea { border: 2px solid #dcdfe4; background: #f7f8f9; }
html[data-theme="atlassian"] table.data th { background: #ffffff; color: #626f86; border-bottom: 2px solid #dcdfe4; }
html[data-theme="atlassian"] .badge-editor { background: #e9f2ff; color: #0055cc; }
html[data-theme="atlassian"] .badge-ok { background: #dcfff1; color: #216e4e; }
html[data-theme="atlassian"] .badge-warn { background: #fff7d6; color: #a54800; }
html[data-theme="atlassian"] .badge-off { background: #ffeceb; color: #ae2e24; }
html[data-theme="atlassian"] :focus-visible { outline-color: #388bff; }

/* ---------- High contrast ---------- */
html[data-theme="contrast"], html[data-theme="contrast"] .content.ag-main, html[data-theme="contrast"] .ag-layout {
  color-scheme: light;
  --bg: #ffffff; --surface: #ffffff; --surface-2: #eeeeee; --ink: #000000; --brand-blue: #00308f;
  --muted: #262626; --line: #000000; --panel: #000000; --panel-ink: #ffffff; --dynamite: #a33a00;
  --agile: #00308f; --agile-strong: #001a57; --exploration: #4b1d8f; --danger: #9b0000; --warn: #6b4000; --ok: #0b5a2b;
}
html[data-theme="contrast"] .tab, html[data-theme="contrast"] .tab.soon { opacity: 1; }
html[data-theme="contrast"] a { text-decoration: underline; }
html[data-theme="contrast"] :focus-visible { outline: 3px solid #ffb000; outline-offset: 2px; }

/* ---------- Fonts, size, density ---------- */
html[data-font="atlassian"] { --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, "Droid Sans", "Helvetica Neue", sans-serif; }
html[data-font="readable"] { --font: Verdana, "DejaVu Sans", Tahoma, sans-serif; }
html[data-size="90"] body { zoom: .9; }
html[data-size="112"] body { zoom: 1.12; }
html[data-size="125"] body { zoom: 1.25; }
html[data-density="compact"] body { line-height: 1.35; }
html[data-density="compact"] .content { padding-top: 1rem; }
html[data-density="compact"] table.data td { padding: .3rem .6rem; }
html[data-density="compact"] table.data th { padding: .4rem .6rem; }
html[data-density="compact"] .panel { padding: .7rem .9rem; margin-bottom: .8rem; }
html[data-density="compact"] .btn { padding: .3rem .7rem; }
html[data-density="compact"] .field { margin-bottom: .55rem; }

/* ---------- « Mes éléments » switch in the top bar (D-B-033) ---------- */
.tb-mine { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .65rem; border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 999px; background: transparent; color: var(--panel-ink); font: inherit; font-size: .9rem; cursor: pointer; white-space: nowrap; }
.tb-mine:hover { background: rgba(255, 255, 255, .1); }
.tb-mine-dot { width: 26px; height: 14px; border-radius: 999px; background: rgba(255, 255, 255, .3); position: relative; flex: none; }
.tb-mine-dot::after { content: ""; position: absolute; top: 2px; left: 2px; width: 10px; height: 10px; border-radius: 50%; background: #fff; }
.tb-mine[aria-pressed="true"] { border-color: var(--dynamite); background: rgba(224, 96, 47, .18); font-weight: 600; }
.tb-mine[aria-pressed="true"] .tb-mine-dot { background: var(--dynamite); }
.tb-mine[aria-pressed="true"] .tb-mine-dot::after { left: 14px; }
html[data-theme="atlassian"] .tb-mine { border-color: #dcdfe4; color: #44546f; }
html[data-theme="atlassian"] .tb-mine-dot { background: #8590a2; }
html[data-theme="atlassian"] .tb-mine[aria-pressed="true"] { border-color: #0c66e4; background: #e9f2ff; color: #0c66e4; }
html[data-theme="atlassian"] .tb-mine[aria-pressed="true"] .tb-mine-dot { background: #0c66e4; }
.mine-banner { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: 0 0 .8rem; padding: .45rem .8rem;
  border-left: 4px solid var(--dynamite); border-radius: var(--radius-sm); background: var(--surface-2); font-size: .88rem; }
@media (max-width: 1500px) { .tb-mine-label { display: none; } .tb-mine { padding: .35rem .45rem; } }

/* ---------- Dashboard ---------- */
.db-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.db-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: .7rem; margin-bottom: 1.3rem; }
.db-kpi { display: flex; flex-direction: column; gap: .15rem; padding: .75rem .9rem; border: 1px solid var(--line);
  border-top: 3px solid var(--agile); border-radius: var(--radius-lg); background: var(--surface); color: var(--ink); text-decoration: none; }
.db-kpi:hover { border-color: var(--agile); }
.db-kpi-warn { border-top-color: var(--warn); }
.db-kpi-danger { border-top-color: var(--danger); }
.db-kpi-value { font-size: 1.7rem; font-weight: 700; line-height: 1.1; }
.db-kpi-label { font-size: .85rem; color: var(--muted); }
.db-kpi-note { font-size: .78rem; color: var(--muted); }
.db-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 1rem; }
.db-section { padding: .8rem 1rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.db-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; margin-bottom: .4rem; }
.db-section-head h2 { margin: 0; font-size: 1rem; }
.db-items { list-style: none; margin: 0; padding: 0; }
.db-item { display: flex; align-items: center; gap: .5rem; padding: .4rem 0; border-top: 1px solid var(--line); font-size: .9rem; }
.db-item:first-child { border-top: 0; }
.db-item a { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); text-decoration: none; }
.db-item a:hover { color: var(--agile); text-decoration: underline; }
.db-item-meta { font-size: .78rem; color: var(--muted); white-space: nowrap; }
.db-late { color: var(--danger); font-weight: 600; }
.db-projects { display: flex; gap: .4rem; flex-wrap: wrap; }
@media (max-width: 520px) { .db-grid { grid-template-columns: 1fr; } }

/* ---------- Settings ---------- */
.set-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 1rem; }
.set-grid .panel h2 { margin-bottom: .6rem; }
.set-grid select, .set-grid input[type="number"], .set-grid input[type="date"] { width: 100%; padding: .45rem .6rem;
  border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); font: inherit; }
.set-status { min-height: 1.3em; font-size: .85rem; color: var(--ok); }
.set-bank { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.set-balance { margin: .4rem 0 0; padding: .5rem .7rem; border-radius: var(--radius-sm); background: var(--surface-2); font-size: .9rem; }

/* ---------- Administration: rights, backups, privacy ---------- */
.rights-bar { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin: .6rem 0; }
.rights-filter { width: 320px; max-width: 100%; padding: .45rem .6rem; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); font: inherit; }
.rights-wrap { overflow: auto; max-height: 70vh; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.rights-table th.rights-proj { text-align: center; font-family: var(--mono); position: sticky; top: 0; z-index: 1; }
.rights-table th.rights-user { position: sticky; left: 0; background: var(--surface); z-index: 1; min-width: 200px; }
.rights-table thead th.rights-user { z-index: 2; background: var(--surface-2); }
.rights-login { display: block; font-weight: 400; font-size: .78rem; }
.rights-cell { text-align: center; }
.rights-admin { color: var(--dynamite); font-weight: 700; font-size: .82rem; }
.rights-sel.rights-none { color: var(--muted); }
.rights-sel.rights-editor { color: var(--agile); font-weight: 600; }
.rights-sel.rights-manager { color: var(--dynamite); font-weight: 700; }
.danger-box { margin: .2rem 0 1rem; padding: .7rem 1rem; border-left: 4px solid var(--danger); border-radius: var(--radius-sm);
  background: rgba(184, 58, 46, .07); }
.danger-box.info-box { border-left-color: var(--warn); background: rgba(154, 101, 18, .08); }
.privacy-list { display: grid; gap: .6rem; max-width: 820px; }
.privacy-item { display: flex; gap: .8rem; align-items: flex-start; padding: .7rem .9rem; border: 1px solid var(--line);
  border-radius: var(--radius-lg); background: var(--surface); cursor: pointer; }
.privacy-item input { margin-top: .3rem; }
.privacy-item strong { display: block; }
.privacy-item .muted { font-size: .88rem; }

/* ---------- Content protection (D-B-029) ---------- */
.pv-watermark { position: fixed; inset: 0; z-index: 150; pointer-events: none; background-repeat: repeat; }
html.pv-nocopy #app { -webkit-user-select: none; user-select: none; }
html.pv-nocopy #app input, html.pv-nocopy #app textarea, html.pv-nocopy #app [contenteditable="true"] { -webkit-user-select: text; user-select: text; }
html.pv-blurred #app { filter: blur(16px); }
.pv-print-note { display: none; }
@media print {
  html.pv-noprint #app, html.pv-noprint .toasts, html.pv-noprint .modal-backdrop, html.pv-noprint .pv-watermark { display: none !important; }
  html.pv-noprint .pv-print-note { display: block; padding: 3rem; font: 20px/1.5 sans-serif; color: #000; }
  .pv-watermark { position: fixed; }
}
html.pv-blurred #app { filter: blur(22px); }  /* D-B-043: immediate, no transition */
.pv-shield { position: fixed; inset: 0; z-index: 180; display: grid; place-content: center; gap: .8rem; justify-items: center;
  padding: 2rem; background: rgba(9, 30, 66, .55); color: #fff; text-align: center; font-size: 1.05rem; }
.pv-shield p { max-width: 40ch; margin: 0; }
.badge-manager { background: rgba(224, 96, 47, .14); color: var(--dynamite); }
.set-bank .field { min-width: 0; }
.db-projects-title { margin-top: 1.4rem; }
/* 0.17.0: room for « Dashboard » and « Mes éléments » in the top bar */
@media (max-width: 1600px) {
  .topbar .ts-input { width: 96px; }
  .topbar .tab { padding: .35rem .42rem; font-size: .93rem; }
  .topbar { gap: .6rem; }
}
@media (max-width: 1360px) {
  .topbar .tab { padding: .3rem .3rem; font-size: .86rem; }
  .tb-audit-list, .tb-audit { padding: .3rem .4rem; font-size: .88rem; }
  .topbar .ts-input { width: 70px; }
}
a.btn { display: inline-block; text-decoration: none; }
.ag-filters .mine-banner { flex-basis: 100%; margin-bottom: 0; }
@media (max-width: 1360px) {
  .topbar .tab-sep { margin: 0 .2rem; }
  .topbar .ts-input { width: 56px; }
  .topbar { gap: .45rem; }
}
/* 0.17.2 (D-B-035): Atlassian is the default theme -- light logo on light surfaces even when Windows is dark */
/* Dashboard actions (D-B-038) */
.db-item { flex-wrap: wrap; }
.db-status { font-size: .8rem; color: var(--muted); white-space: nowrap; }
.db-status-sel { width: auto; max-width: 13rem; padding: .12rem .35rem; font-size: .8rem; border: 1px solid var(--line);
  border-radius: var(--radius-sm); background: var(--surface-2); color: var(--ink); cursor: pointer; }
.db-status-sel:hover { border-color: var(--agile); }
.db-open { display: inline-flex; flex-wrap: wrap; gap: .5rem; justify-content: flex-end; }
.db-open-link { font-size: .85rem; font-weight: 600; white-space: nowrap; }
.db-section { scroll-margin-top: 80px; transition: box-shadow .3s; }
.db-flash { box-shadow: 0 0 0 3px var(--agile); }
.db-hint { font-size: .85rem; }
.db-item a { flex: 1 1 14rem; }
.db-item-meta { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; }
/* Dashboard « voir comme » (D-B-046) */
.db-viewas-wrap { display: inline-flex; align-items: center; gap: .45rem; font-size: .88rem; color: var(--muted); }
.db-viewas { width: auto; min-width: 14rem; padding: .3rem .5rem; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--surface); color: var(--ink); font: inherit; }
.db-audit-banner { margin: 0 0 1rem; padding: .55rem .9rem; border-left: 4px solid #6e5dc6; border-radius: var(--radius-sm);
  background: #f3f0ff; color: #352c63; }
/* Objectifs annuels (D-B-048) */
.ob-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; }
.ob-selectors { display: flex; gap: .5rem; }
.ob-selectors select { width: auto; }
.ob-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(300px, 2fr); gap: 1.2rem; align-items: start; }
@media (max-width: 1000px) { .ob-layout { grid-template-columns: 1fr; } }
.ob-section-head { display: flex; justify-content: space-between; align-items: center; margin: .6rem 0 .4rem; }
.ob-section-head h2 { margin: 0; }
.ob-card { display: grid; gap: .45rem; padding: .7rem .9rem; margin-bottom: .6rem; border: 1px solid var(--line);
  border-left: 4px solid var(--agile); border-radius: var(--radius-lg); background: var(--surface); }
.ob-card.ob-development { border-left-color: #e56910; }
.ob-card.ob-st-done { border-left-color: var(--ok); }
.ob-card.ob-st-dropped { opacity: .65; }
.ob-card input[type="text"], .ob-card textarea { width: 100%; }
.ob-card input[type="text"] { font-weight: 600; }
.ob-card-head { display: flex; align-items: center; gap: .5rem; }
.ob-card-head select { width: auto; padding: .15rem .4rem; font-size: .85rem; }
.ob-carried { font-size: .8rem; }
.ob-saved { font-size: .78rem; color: var(--ok); min-width: 5em; }
.ob-row { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; font-size: .88rem; }
.ob-inline { display: inline-flex; align-items: center; gap: .45rem; }
.ob-inline select { width: auto; }
.ob-pct { min-width: 3em; font-weight: 700; }
.ob-expect { padding: .45rem .6rem; border-radius: var(--radius-sm); background: var(--surface-2); font-size: .9rem; }
.ob-text { margin: .15rem 0 0; white-space: pre-wrap; }
.ob-comments { list-style: none; margin: 0 0 .8rem; padding: 0; display: grid; gap: .5rem; max-height: 60vh; overflow: auto; }
.ob-comment { padding: .45rem .6rem; border-radius: var(--radius-sm); background: var(--surface-2); }
.ob-ctx-mi-annee { border-left: 3px solid var(--warn); }
.ob-ctx-fin-annee { border-left: 3px solid var(--ok); }
.ob-thread textarea { width: 100%; }
.ob-carry { display: grid; gap: .2rem; margin: .5rem 0; }
.ob-close { margin-top: 1rem; }
/* 0.22.0 (D-B-054): search pill with a simple Atlassian-blue magnifier */
.ts-box .ts-icon { width: 18px; height: 18px; flex: none; color: #267cb5; margin-left: .35rem; }
.topbar .ts-box { background: #ffffff; border: 1.5px solid #44546f; border-radius: 999px; }
.topbar .ts-box:focus-within { border-color: #267cb5; box-shadow: 0 0 0 1px #267cb5; }
.topbar .ts-input { color: #172b4d; }
.topbar .ts-input::placeholder { color: #626f86; }
.ts-page-mark { width: 44px; height: 44px; color: #267cb5; }
@media (max-width: 640px) { .ts-box .ts-icon { display: block; } }
.tabs-end { display: flex; align-items: center; gap: .15rem; flex: none; }
.topbar .ts-input { width: 150px; }
@media (max-width: 1600px) { .topbar .ts-input { width: 96px; } }
@media (max-width: 1360px) { .topbar .ts-input { width: 70px; } }
.dy-actions select.dy-export { width: auto; flex: none; }
/* 0.22.0: every tab fits beside the tools (Help and the gear are no longer in the scrolling list) */
@media (min-width: 1601px) { .topbar .tab { padding: .38rem .55rem; } .topbar { gap: .8rem; } }
@media (max-width: 1600px) { .topbar .tab { padding: .3rem .34rem; } }
@media (max-width: 1380px) { .topbar .tab { padding: .28rem .24rem; font-size: .84rem; } .tb-audit-list { max-width: 7.5rem; } }
@media (max-width: 1680px) { .topbar .user-name { display: none; } }
@media (max-width: 1600px) { .topbar .tab { padding: .3rem .3rem; } .topbar { gap: .5rem; } }
@media (max-width: 1300px) { .topbar .tab { font-size: .8rem; padding: .26rem .2rem; } .topbar .da-logo .brand { font-size: 1rem; } }
@media (max-width: 1600px) { .topbar .ts-input { width: 112px; } }
@media (max-width: 1380px) { .topbar .ts-input { width: 84px; } }
/* 0.23.0 (D-B-058): traceability key required */
.initials-banner { position: sticky; top: 0; z-index: 40; padding: .55rem 1rem; background: #fff7d6; color: #533f04;
  border-bottom: 1px solid #f5cd47; font-size: .92rem; text-align: center; }
.initials-banner a { color: #0c66e4; font-weight: 600; }
.set-initials-warn { margin: 0 0 1rem; padding: .7rem 1rem; border-left: 4px solid #e2b203; background: #fff7d6; color: #533f04;
  border-radius: 3px; }
.field.set-required input { border-color: #e2b203; box-shadow: 0 0 0 2px rgba(226, 178, 3, .35); }

/* D-B-078: « User » section -- sub-navigation under the top bar (Paramètres, Mes objectifs, Membres, Admin) */
.user-sections { display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; padding: .35rem clamp(1rem, 2.5vw, 2.5rem) 0;
  border-bottom: 1px solid var(--line); background: var(--surface); }
.user-section { padding: .5rem .9rem; font-weight: 600; color: var(--muted); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.user-section:hover { color: var(--ink); }
.user-section.active { color: #0c66e4; border-bottom-color: #0c66e4; }
.user-section:focus-visible { outline: 2px solid #0c66e4; outline-offset: 2px; }
.user-sections .tab-sep { height: 1.3rem; }

/* ---------- Annual review and profile (core lot v0.30, D-B-111) ---------- */
.rv-banner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin: .6rem 0; }
.rv-banner-main { display: grid; gap: .2rem; min-width: 0; }
.rv-name { font-size: 1.15rem; }
.rv-title { font-weight: 600; color: var(--agile); }
.rv-bits { display: flex; flex-wrap: wrap; gap: .4rem .9rem; align-items: center; font-size: .88rem; color: var(--muted); }
.rv-banner-side { display: grid; gap: .3rem; justify-items: end; max-width: 26rem; text-align: right; }
.rv-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; list-style: none; padding: 0; margin: .8rem 0 1rem; }
.rv-step a { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .6rem; align-items: center;
  padding: .55rem .8rem; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); color: var(--ink);
  text-decoration: none; }
.rv-step a:hover { border-color: var(--agile); }
.rv-num { grid-row: 1 / span 2; display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%;
  border: 2px solid var(--line); font-weight: 700; }
.rv-step-name { font-weight: 650; }
.rv-step-state { font-size: .8rem; color: var(--muted); }
.rv-done .rv-num { background: var(--ok); border-color: var(--ok); color: #fff; }
.rv-now .rv-num { border-color: var(--agile); color: var(--agile); }
.rv-now .rv-step-state { color: var(--agile); font-weight: 600; }
.rv-shown a { border-color: var(--agile); box-shadow: inset 0 -3px 0 var(--agile); }
.rv-hint { margin: .2rem 0 .7rem; }
.rv-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
@media (max-width: 760px) { .rv-sides { grid-template-columns: 1fr; } .rv-steps { grid-template-columns: 1fr; } }
.rv-side { display: grid; gap: .35rem; align-content: start; padding: .45rem .55rem; border-radius: var(--radius-sm); background: var(--surface-2); }
.rv-side textarea, .rv-side select { width: 100%; }
.rv-mine { box-shadow: inset 3px 0 0 var(--agile); }
.rv-item-title { min-width: 0; }
.rv-fresh { border-left-color: var(--warn); }
.rv-sign { margin-top: .8rem; }
.rv-sigs { list-style: none; padding: 0; margin: 0 0 .6rem; display: grid; gap: .2rem; }
.rv-sigs li::before { content: "○ "; color: var(--muted); }
.rv-sigs li.rv-ok::before { content: "✓ "; color: var(--ok); font-weight: 700; }
.rv-blockers ul { margin: .3rem 0 0 1.1rem; padding: 0; }
.rv-training { margin-top: .4rem; }
.rv-train-list { margin: 0 0 .6rem 1.1rem; padding: 0; display: grid; gap: .2rem; }
.rv-grid table.data select { width: auto; }
.rv-grid table.data input { width: 100%; }
.rv-overall { margin-top: .8rem; }
.pf-layout { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(0, 1.6fr); gap: 1.2rem; align-items: start; }
@media (max-width: 1000px) { .pf-layout { grid-template-columns: 1fr; } }
.pf-grid { display: grid; gap: .5rem; }
.pf-grid input, .pf-grid select { width: 100%; }
.pf-parcours h3 { margin: 0; font-size: 1rem; }
.pf-entry { margin-bottom: .45rem; }

/* ---------- « Mon équipe » (core lot v0.31, D-B-112) ---------- */
.tm-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 34rem), 1fr)); gap: .8rem; margin-top: .6rem; }
.tm-card { display: grid; gap: .5rem; align-content: start; }
.tm-mine { box-shadow: inset 4px 0 0 var(--warn); }
.tm-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; list-style: none; padding: 0; margin: 0; }
.tm-step { display: grid; grid-template-columns: auto 1fr; column-gap: .45rem; align-items: center; padding: .35rem .5rem;
  border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.tm-step .rv-num { width: 1.5rem; height: 1.5rem; font-size: .8rem; }
.tm-step-name { font-weight: 600; font-size: .85rem; line-height: 1.2; }
.tm-sig { font-size: .75rem; color: var(--muted); white-space: nowrap; }
.tm-todo { margin: 0; color: var(--muted); }
.tm-todo-mine { color: var(--ink); font-weight: 600; }
.tm-actions { flex-wrap: wrap; justify-content: flex-start; }
@media (max-width: 560px) { .tm-steps { grid-template-columns: 1fr; } }
