Page Projets : copie URL dans le menu ⋯ + refonte thème barre Fusion/Spark (#44, #45)
CI / test (push) Failing after 4m8s

This commit is contained in:
2026-10-28 23:12:41 -04:00
parent 9dc62885b0
commit 4d1757e3d2
+68 -56
View File
@@ -17,8 +17,8 @@
--text: #eceee9;
--text-2: #a6aba2;
--text-3: #8b9089;
--accent: #c2437e;
--accent-2: #e078a8;
--accent: #0d9488;
--accent-2: #14b8a6;
--green: #10b981;
--yellow: #f59e0b;
--red: #ef4444;
@@ -26,7 +26,7 @@
--radius-sm: 10px;
--shadow: 0 8px 28px rgba(0, 0, 0, 0.38);
--shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.25);
--ring: 0 0 0 3px rgba(194, 67, 126, 0.35);
--ring: 0 0 0 3px rgba(13, 148, 136, 0.35);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
@@ -48,7 +48,7 @@ body {
line-height: 1.45;
}
::selection { background: rgba(194, 67, 126, 0.45); }
::selection { background: rgba(13, 148, 136, 0.45); }
a { color: var(--accent-2); text-decoration: none; }
a:hover { text-decoration: underline; }
@@ -79,7 +79,7 @@ button, input, select, textarea { font: inherit; }
padding: 8px 10px;
}
:where(input, textarea, select):focus-visible {
outline: 2px solid rgba(194, 67, 126, 0.55);
outline: 2px solid rgba(13, 148, 136, 0.55);
outline-offset: 0;
}
@@ -121,7 +121,7 @@ button, input, select, textarea { font: inherit; }
font-size: 1rem;
}
.gradient-text {
background: linear-gradient(120deg, #c2437e, #e078a8);
background: linear-gradient(120deg, #0d9488, #14b8a6);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
@@ -145,7 +145,7 @@ header h1 { font-size: 1.2rem; font-weight: 600; }
.nav-pill:hover { color: var(--text); background: var(--surface-2); text-decoration: none; }
.nav-pill.active {
color: #fff;
background: linear-gradient(135deg, rgba(194,67,126,.85), rgba(224,120,168,.85));
background: linear-gradient(135deg, rgba(13,148,136,.85), rgba(20,184,166,.85));
border-color: rgba(255,255,255,0.12);
}
@@ -155,7 +155,7 @@ header h1 { font-size: 1.2rem; font-weight: 600; }
font-size: 0.78rem;
font-weight: 600;
background: color-mix(in srgb, var(--accent) 18%, transparent);
color: #d99ab5;
color: #7dd3c8;
}
.badge.secondary { background: var(--surface-2); color: var(--text-2); }
@@ -281,13 +281,13 @@ a.kpi:hover { background: var(--surface-2); text-decoration: none; }
font-size: 0.68rem;
text-transform: uppercase;
letter-spacing: 0.6px;
color: #d99ab5;
color: #7dd3c8;
font-weight: 700;
}
.date { font-size: 0.75rem; color: var(--text-3); }
.project-card h3 { font-size: 1.08rem; margin-bottom: 6px; letter-spacing: -0.01em; }
.project-card h3 a { color: var(--text); }
.project-card h3 a:hover { color: #e078a8; text-decoration: none; }
.project-card h3 a:hover { color: #14b8a6; text-decoration: none; }
.desc {
font-size: 0.85rem;
color: var(--text-2);
@@ -363,7 +363,7 @@ a.kpi:hover { background: var(--surface-2); text-decoration: none; }
.milestone-chip:hover { color: var(--text); text-decoration: none; border-color: var(--border-strong); }
.milestone-chip.active {
color: #fff;
background: linear-gradient(135deg, rgba(194,67,126,.9), rgba(224,120,168,.9));
background: linear-gradient(135deg, rgba(13,148,136,.9), rgba(20,184,166,.9));
border-color: transparent;
}
.milestone-banner {
@@ -372,8 +372,8 @@ a.kpi:hover { background: var(--surface-2); text-decoration: none; }
gap: 16px;
margin: 14px 24px 0;
padding: 14px 18px;
background: linear-gradient(120deg, rgba(194,67,126,.14), rgba(224,120,168,.10));
border: 1px solid rgba(194,67,126,.35);
background: linear-gradient(120deg, rgba(13,148,136,.14), rgba(20,184,166,.10));
border: 1px solid rgba(13,148,136,.35);
border-radius: var(--radius);
flex-wrap: wrap;
}
@@ -490,7 +490,7 @@ a.kpi:hover { background: var(--surface-2); text-decoration: none; }
.kanban-card.dragging { opacity: 0.55; transform: rotate(2deg) scale(1.02); box-shadow: var(--shadow); }
.card-id {
font-size: 0.7rem;
color: #d99ab5;
color: #7dd3c8;
font-weight: 700;
margin-bottom: 4px;
display: flex;
@@ -641,7 +641,7 @@ footer {
.focus-group { margin-bottom: 30px; }
.focus-group h2 { font-size: 1.06rem; margin-bottom: 12px; display: flex; gap: 10px; align-items: center; }
.focus-group h2 a { color: var(--text); }
.focus-group h2 a:hover { color: #e078a8; text-decoration: none; }
.focus-group h2 a:hover { color: #14b8a6; text-decoration: none; }
.focus-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.focus-card { margin-bottom: 0; cursor: default; }
@@ -772,7 +772,7 @@ footer {
}
.issue-row:hover { border-color: var(--border-strong); }
.issue-main { color: var(--text); flex: 1; min-width: 220px; }
.issue-main:hover { color: #e078a8; text-decoration: none; }
.issue-main:hover { color: #14b8a6; text-decoration: none; }
.col-chip {
padding: 2px 10px;
border-radius: 999px;
@@ -818,7 +818,7 @@ footer {
cursor: col-resize;
z-index: 5;
}
.notes-resize:hover { background: rgba(194, 67, 126, 0.35); }
.notes-resize:hover { background: rgba(13, 148, 136, 0.35); }
.notes-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; }
.notes-foot .btn-save { margin-top: 0; }
.notes-status { font-size: 0.76rem; color: var(--text-3); }
@@ -1092,7 +1092,7 @@ footer {
border-radius: 16px; padding: 26px 28px; min-height: 220px;
}
.triage-card-top { display: flex; gap: 14px; align-items: baseline; color: var(--text-3); font-size: 0.88rem; }
.triage-card-num { font-weight: 700; color: var(--accent, #c2437e); }
.triage-card-num { font-weight: 700; color: var(--accent, #0d9488); }
.triage-card-link { margin-left: auto; color: var(--text-3); text-decoration: none; }
.triage-card-title { margin: 10px 0 8px; font-size: 1.5rem; line-height: 1.3; }
.triage-card-labels { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
@@ -1104,7 +1104,7 @@ footer {
border: 1px solid var(--border, #2e302c); border-radius: 10px;
padding: 9px 13px; font: inherit; font-size: 0.9rem; cursor: pointer;
}
.triage-keys button:hover { border-color: var(--accent, #c2437e); }
.triage-keys button:hover { border-color: var(--accent, #0d9488); }
.triage-keys kbd {
background: var(--surface-3, #20221f); border: 1px solid var(--border-strong, #3f4340);
border-radius: 5px; padding: 1px 6px; font-size: 0.78rem; margin-right: 4px;
@@ -1130,7 +1130,7 @@ footer {
background: var(--surface-1, #1a1c1a); border: 1px solid var(--border, #2e302c);
border-radius: 12px; padding: 16px 20px; color: var(--text-1); text-decoration: none;
}
.triage-project:hover { border-color: var(--accent, #c2437e); }
.triage-project:hover { border-color: var(--accent, #0d9488); }
.triage-project-count { color: var(--text-3); }
/* ── Wallboard : navigation manuelle (0.11.0) ── */
@@ -1144,14 +1144,14 @@ footer {
border: 1px solid rgba(143, 163, 191, 0.45);
font-size: 1.15rem; cursor: pointer; backdrop-filter: blur(4px);
}
.wall-nav-btn:hover { border-color: #c2437e; color: #fff; }
.wall-nav-btn:hover { border-color: #0d9488; color: #fff; }
.wall-dots { display: flex; gap: 8px; }
.wall-dot {
width: 13px; height: 13px; border-radius: 50%; padding: 0;
background: rgba(143, 163, 191, 0.35); border: 1px solid rgba(143, 163, 191, 0.5);
cursor: pointer;
}
.wall-dot.on { background: #c2437e; border-color: #c2437e; }
.wall-dot.on { background: #0d9488; border-color: #0d9488; }
.wall-paused {
position: fixed; top: 18px; left: 50%; transform: translateX(-50%);
background: rgba(19, 26, 41, 0.85); color: #f0b429;
@@ -1171,13 +1171,13 @@ footer {
.today-picks { display: grid; gap: 14px; margin-bottom: 20px; }
.today-card {
background: var(--surface-1, #1a1c1a); border: 1px solid var(--border-strong, #3f4340);
border-left: 5px solid var(--accent, #c2437e); border-radius: 14px; padding: 20px 24px;
border-left: 5px solid var(--accent, #0d9488); border-radius: 14px; padding: 20px 24px;
}
.today-card.done { border-left-color: var(--good, #3fb950); opacity: 0.85; }
.today-card-top { display: flex; justify-content: space-between; color: var(--text-3); font-size: 0.85rem; }
.today-card h2 { margin: 8px 0 12px; font-size: 1.3rem; line-height: 1.35; }
.today-card-actions { display: flex; gap: 16px; align-items: center; }
.today-card-actions a { color: var(--accent, #c2437e); text-decoration: none; font-size: 0.9rem; }
.today-card-actions a { color: var(--accent, #0d9488); text-decoration: none; font-size: 0.9rem; }
.today-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.today-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.today-list em { color: var(--text-3); font-style: normal; font-size: 0.85rem; }
@@ -1185,23 +1185,23 @@ footer {
/* ── Prévisions + Récit (0.12.0, #7 #4) ── */
.forecast-flex { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.sparkline { width: 168px; height: 48px; }
.sparkline rect { fill: var(--accent, #c2437e); opacity: 0.85; }
.sparkline rect { fill: var(--accent, #0d9488); opacity: 0.85; }
.forecast-nums p { margin: 4px 0; }
.forecast-milestones { margin: 12px 0 0; padding-left: 18px; line-height: 1.8; }
.forecast-line { color: var(--accent, #c2437e); }
.milestone-forecast { color: var(--accent, #c2437e); font-weight: 600; }
.forecast-line { color: var(--accent, #0d9488); }
.milestone-forecast { color: var(--accent, #0d9488); font-weight: 600; }
.milestone-sprint { color: var(--text-1); text-decoration: none; border: 1px solid var(--border, #2e302c); border-radius: 8px; padding: 2px 10px; }
.milestone-sprint:hover { border-color: var(--accent, #c2437e); }
.milestone-sprint:hover { border-color: var(--accent, #0d9488); }
.sprint-render { line-height: 1.65; }
.sprint-render h1 { font-size: 1.5rem; }
.sprint-render h2 { font-size: 1.15rem; margin-top: 22px; }
.sprint-render a { color: var(--accent, #c2437e); }
.sprint-render a { color: var(--accent, #0d9488); }
/* ── Code lié (0.13.0, #1) ── */
.card-code { font-size: 0.78rem; color: var(--accent, #c2437e); margin-top: 5px; }
.card-code { font-size: 0.78rem; color: var(--accent, #0d9488); margin-top: 5px; }
.detail-code { margin: 10px 0; }
.code-line { padding: 3px 0; font-size: 0.9rem; color: var(--text-2, #a6aba2); }
.code-line a { color: var(--accent, #c2437e); text-decoration: none; }
.code-line a { color: var(--accent, #0d9488); text-decoration: none; }
.code-line code { background: var(--surface-3, #20221f); border-radius: 4px; padding: 0 5px; }
/* ── Branche depuis la carte (0.14.0, #3) ── */
@@ -1246,7 +1246,7 @@ body.with-sidebar.sidebar-collapsed { padding-left: 68px; }
width: 238px; box-sizing: border-box;
display: flex; flex-direction: column; gap: 6px;
padding: 16px 12px 12px; overflow-y: auto; overflow-x: hidden;
background: rgba(13, 16, 24, 0.96);
background: rgba(26, 28, 26, 0.96);
border-right: 1px solid var(--border);
transition: width 0.26s cubic-bezier(0.4, 0, 0.2, 1), transform 0.26s cubic-bezier(0.4, 0, 0.2, 1);
}
@@ -1267,7 +1267,7 @@ body.sidebar-collapsed .sidebar { width: 68px; }
transition: border-color 0.15s, color 0.15s, transform 0.15s;
}
.side-search:hover {
color: var(--text); border-color: var(--accent, #c2437e);
color: var(--text); border-color: var(--accent, #0d9488);
transform: translateY(-1px);
}
body.sidebar-collapsed .side-head { flex-direction: column; padding-left: 0; padding-right: 0; }
@@ -1319,10 +1319,22 @@ body.nav-closed-admin [data-group="admin"] .side-chevron { transform: rotate(-90
}
.side-link:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.side-link.active {
color: #fff; border-left-color: #c2437e;
background: linear-gradient(90deg, rgba(194,67,126,.32), rgba(224,120,168,.14));
color: #fff; border-left-color: #0d9488;
background: linear-gradient(90deg, rgba(13,148,136,.32), rgba(20,184,166,.14));
}
.side-ico { font-size: 1.05rem; width: 22px; text-align: center; flex-shrink: 0; }
.side-ico { font-size: 1.05rem; width: 22px; text-align: center; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
.side-ico svg { width: 20px; height: 20px; display: block; }
.logo-mark svg { width: 20px; height: 20px; display: block; }
.side-search svg { width: 19px; height: 19px; display: block; }
/* Bouton thème dans la section Administration (#55) : même
gabarit qu'un lien de navigation, mais c'est un <button>. */
.theme-toggle-link { background: transparent; border: none; cursor: pointer; font: inherit; width: 100%; text-align: left; }
.theme-toggle-link:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
/* Repli non-admin (#55) : bouton thème dans le pied de la barre,
icône seule — la section Administration n'existe que pour les
administrateurs, les autres utilisateurs gardent un accès. */
.theme-toggle-foot { background: transparent; border: none; cursor: pointer; font-size: 1rem; padding: 2px; color: var(--text-3); }
.theme-toggle-foot:hover { color: var(--text); }
.side-foot {
margin-top: auto; padding-top: 12px;
display: flex; align-items: center; justify-content: space-between; gap: 8px;
@@ -1338,7 +1350,7 @@ body.nav-closed-admin [data-group="admin"] .side-chevron { transform: rotate(-90
transition: border-color 0.15s, color 0.15s, transform 0.15s;
}
.side-collapse:hover {
color: var(--text); border-color: var(--accent, #c2437e);
color: var(--text); border-color: var(--accent, #0d9488);
transform: translateY(-1px);
}
.side-fresh { color: var(--text-3); font-size: 0.76rem; white-space: nowrap; }
@@ -1404,10 +1416,10 @@ body.sidebar-collapsed .side-foot { justify-content: center; }
padding: 7px 14px; color: var(--text); background: var(--surface-1);
font-size: 0.88rem; font-weight: 600;
}
.health-chip:hover { text-decoration: none; border-color: var(--accent, #c2437e); }
.health-chip:hover { text-decoration: none; border-color: var(--accent, #0d9488); }
.proj-actions { display: flex; gap: 8px; flex-wrap: wrap; margin: 18px 0 22px; }
.proj-actions .nav-pill { border: 1px solid var(--border); }
.proj-primary { background: linear-gradient(135deg, rgba(194,67,126,.85), rgba(224,120,168,.85)); color: #fff !important; }
.proj-primary { background: linear-gradient(135deg, rgba(13,148,136,.85), rgba(20,184,166,.85)); color: #fff !important; }
.proj-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.proj-panel {
background: var(--surface-1); border: 1px solid var(--border);
@@ -1454,7 +1466,7 @@ body.sidebar-collapsed .side-foot { justify-content: center; }
background: rgba(255, 255, 255, 0.08); color: var(--text-2);
border-radius: 999px; padding: 1px 7px;
}
.seg-tabs button.active .seg-count { background: rgba(194, 67, 126, 0.22); color: var(--text); }
.seg-tabs button.active .seg-count { background: rgba(13, 148, 136, 0.22); color: var(--text); }
.dash-toolbar .toolbar-search { padding: 0; flex: 1 1 200px; }
.dash-toolbar .toolbar-search input { max-width: none; background: var(--surface-2); }
.dash-tool { display: inline-flex; align-items: center; gap: 8px; font-size: 0.88rem; color: var(--text-2); white-space: nowrap; }
@@ -1463,7 +1475,7 @@ body.sidebar-collapsed .side-foot { justify-content: center; }
border: 1px solid var(--border); border-radius: 8px; padding: 6px 8px;
min-height: 36px;
}
.dash-tool-check input { width: 17px; height: 17px; accent-color: #c2437e; }
.dash-tool-check input { width: 17px; height: 17px; accent-color: #0d9488; }
.dash-view-toggle { margin-left: auto; display: inline-flex; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; }
.dash-view-toggle button {
background: var(--surface-1); color: var(--text-2); border: none;
@@ -1478,7 +1490,7 @@ body.sidebar-collapsed .side-foot { justify-content: center; }
border: 1px solid var(--border); border-radius: 10px;
font-size: 0.95rem; font-weight: 700;
}
.owner-head:hover { border-color: var(--accent, #c2437e); }
.owner-head:hover { border-color: var(--accent, #0d9488); }
.owner-head .owner-chevron { transition: transform 0.2s ease; font-size: 0.7rem; }
.owner-head[aria-expanded="false"] .owner-chevron { transform: rotate(-90deg); }
.owner-grid { padding: 0 !important; }
@@ -1499,7 +1511,7 @@ body.sidebar-collapsed .side-foot { justify-content: center; }
donc aucun fond — le menu était transparent et illisible. */
.card-menu {
--menu-bg: #ffffff; --menu-bg-2: #e9eae6; --menu-ink: #1b1d1a;
--menu-ink-2: #5c615a; --menu-line: #dedfd9; --menu-agent: #c2437e;
--menu-ink-2: #5c615a; --menu-line: #dedfd9; --menu-agent: #0d9488;
position: absolute; right: 0; top: calc(100% + 6px); z-index: 60;
min-width: 248px; display: flex; flex-direction: column; gap: 2px;
background: var(--menu-bg); border: 1px solid var(--menu-line);
@@ -1629,8 +1641,8 @@ a.ms-title:hover { text-decoration: underline; }
min-height: 100dvh; margin: 0;
display: flex; align-items: center; justify-content: center;
background:
radial-gradient(640px 420px at 18% 12%, rgba(194, 67, 126, 0.20), transparent 62%),
radial-gradient(560px 380px at 84% 88%, rgba(224, 120, 168, 0.16), transparent 60%),
radial-gradient(640px 420px at 18% 12%, rgba(13, 148, 136, 0.20), transparent 62%),
radial-gradient(560px 380px at 84% 88%, rgba(20, 184, 166, 0.16), transparent 60%),
var(--bg, #101211);
padding: 24px 16px;
}
@@ -1646,12 +1658,12 @@ a.ms-title:hover { text-decoration: underline; }
.login-mark {
display: inline-flex; align-items: center; justify-content: center;
width: 56px; height: 56px; border-radius: 16px; font-size: 1.7rem;
background: linear-gradient(135deg, rgba(194,67,126,.35), rgba(224,120,168,.25));
background: linear-gradient(135deg, rgba(13,148,136,.35), rgba(20,184,166,.25));
border: 1px solid var(--border);
}
.login-brand h1 {
margin: 12px 0 4px; font-size: 1.55rem; font-weight: 700;
background: linear-gradient(120deg, #c2437e, #e078a8);
background: linear-gradient(120deg, #0d9488, #14b8a6);
-webkit-background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent;
}
@@ -1668,10 +1680,10 @@ a.ms-title:hover { text-decoration: underline; }
background: var(--bg-2, #101211); color: var(--text-1, #eceee9);
font: inherit; font-weight: 400;
}
.login-form input:focus { outline: 2px solid rgba(194, 67, 126, 0.55); outline-offset: 0; border-color: transparent; }
.login-form input:focus { outline: 2px solid rgba(13, 148, 136, 0.55); outline-offset: 0; border-color: transparent; }
.login-submit {
margin-top: 4px; padding: 12px 18px; cursor: pointer;
background: linear-gradient(135deg, var(--accent, #c2437e), var(--accent-2, #e078a8));
background: linear-gradient(135deg, var(--accent, #0d9488), var(--accent-2, #14b8a6));
color: #fff; border: none; border-radius: 10px;
font: inherit; font-weight: 600; font-size: 1rem;
transition: filter 0.15s, transform 0.1s;
@@ -1717,7 +1729,7 @@ body.sidebar-collapsed .ws-switch { display: none; }
.btn-mini { padding: 4px 10px; font-size: 0.85em; border-radius: 8px;
border: 1px solid var(--border, #2e302c); background: var(--surface-2, #242624);
color: inherit; cursor: pointer; }
.btn-mini:hover { border-color: var(--accent, #c2437e); }
.btn-mini:hover { border-color: var(--accent, #0d9488); }
.btn-mini:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-danger:hover { border-color: #e5534b; color: #e5534b; }
.chip-ok { display: inline-block; padding: 4px 10px; border-radius: 999px;
@@ -1747,7 +1759,7 @@ body.sidebar-collapsed .ws-switch { display: none; }
.composer-target { color: var(--muted, #a6aba2); font-size: 0.82rem; }
.composer-main { display: flex; gap: 8px; }
.composer-main input[type="text"] { flex: 1; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; padding: 9px 12px; color: inherit; font-size: 0.95rem; }
.composer-main input[type="text"]:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(194, 67, 126, 0.25); }
.composer-main input[type="text"]:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.25); }
.composer-desc { margin-top: 10px; }
.composer-desc summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; font-size: 0.88rem; color: var(--accent-2); padding: 4px 2px; user-select: none; }
.composer-desc summary::-webkit-details-marker { display: none; }
@@ -1755,7 +1767,7 @@ body.sidebar-collapsed .ws-switch { display: none; }
.composer-chevron { transition: transform 0.15s ease; font-size: 0.75rem; }
.composer-desc[open ] .composer-chevron { transform: rotate(180deg); }
.composer-desc textarea { width: 100%; margin-top: 8px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; color: inherit; font-family: inherit; resize: vertical; }
.composer-desc textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(194, 67, 126, 0.25); }
.composer-desc textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.25); }
.composer-hint { color: var(--muted, #a6aba2); font-size: 0.78rem; margin: 6px 0 0; }
/* ── Mes issues : barre de filtres (0.33.0) ── */
@@ -1765,13 +1777,13 @@ body.sidebar-collapsed .ws-switch { display: none; }
.my-search-wrap { position: relative; flex: 1 1 280px; }
.my-search-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); opacity: 0.65; pointer-events: none; }
.my-search-wrap input[type="search"] { width: 100%; background: var(--surface-2); border: 1px solid var(--border); border-radius: 999px; padding: 9px 14px 9px 38px; color: inherit; font-size: 0.92rem; }
.my-search-wrap input[type="search"]:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(194, 67, 126, 0.25); }
.my-search-wrap input[type="search"]:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.25); }
.my-filters select { background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; padding: 9px 10px; color: inherit; font-size: 0.9rem; }
.my-filters select:focus { outline: none; border-color: var(--accent); }
.my-col-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-right: auto; }
.filter-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--surface-2); border: 1px solid var(--border); color: inherit; border-radius: 999px; padding: 5px 12px; font-size: 0.85rem; cursor: pointer; transition: border-color 0.15s, background 0.15s; }
.filter-chip:hover { border-color: var(--border-strong); }
.filter-chip.on { background: rgba(194, 67, 126, 0.18); border-color: var(--accent); font-weight: 600; }
.filter-chip.on { background: rgba(13, 148, 136, 0.18); border-color: var(--accent); font-weight: 600; }
.filter-chip-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.filter-chip-count { opacity: 0.7; font-size: 0.78rem; }
.my-count { color: var(--muted, #a6aba2); font-size: 0.88rem; white-space: nowrap; }
@@ -1803,14 +1815,14 @@ html[data-theme="light"] {
--bg: #f2f2f0; --surface: #ffffff; --surface-2: #e9eae6; --surface-3: #f6f6f3;
--border: #dedfd9; --border-strong: #c9cbc2;
--text: #1b1d1a; --text-2: #5c615a; --text-3: #787d75;
--accent: #c2437e; --accent-2: #a92e63;
--accent: #0d9488; --accent-2: #0f766e;
--shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
--shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.08);
color-scheme: light;
}
html[data-theme="light"] .sidebar { background: rgba(255, 255, 255, 0.96); }
html[data-theme="light"] .app-header { background: rgba(255, 255, 255, 0.85); }
/* Lien actif de la barre latérale : fond rose translucide sur
/* Lien actif de la barre latérale : fond vert translucide sur
fond clair — le texte blanc du thème sombre y serait illisible. */
html[data-theme="light"] .side-link.active { color: #1b1d1a; }
/* Menu ⋯ des tuiles : jetons clairs explicites, pour primer sur