/* Thème « maison » aux couleurs du groupe Greenoffice
   menthe #6dedb3 · bleu #4199fd · bleu nuit #1d2939 · vert feuille TRIGO #78a744 */
:root {
  --mint: #6dedb3; --mint-strong: #3fdc96; --mint-soft: #e3fbf0;
  --blue: #4199fd; --ink: #1d2939; --leaf: #78a744;
  --bg: #f4f8f6; --surface-1: #ffffff; --surface-2: #eef4f1; --border: #dfe8e4;
  --text-primary: #1d2939; --text-secondary: #475467; --text-muted: #667085; --grid: #e6ece9;
  --accent: #0b8a5c; --accent-ink: #1d2939;
  --mark: #c9f7e2;
  --radius: 16px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 6px 20px rgba(16, 24, 40, .05);
  --font: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hand: "Nanum Pen Script", "Segoe Print", cursive;
  --font-title: var(--font);
  /* univers : chaque site redéfinit ces variables dans worlds.css */
  --header-bg: var(--ink); --header-fg: #fff; --header-muted: #b9c6d3; --header-tab: #c7d1db; --header-hover: rgba(255, 255, 255, .08);
  --header-field: rgba(255, 255, 255, .08); --header-field-border: rgba(255, 255, 255, .16); --header-placeholder: #9fb0c0; --header-shadow: 0 6px 24px rgba(29, 41, 57, .25);
  --primary: var(--mint); --primary-strong: var(--mint-strong); --primary-ink: var(--ink); --primary-glow: rgba(109, 237, 179, .35);
  --c1: var(--mint); --c2: var(--blue); --c3: var(--leaf); --c4: var(--leaf);
  --blob-1: rgba(109, 237, 179, .18); --blob-2: rgba(65, 153, 253, .10); --blob-3: rgba(120, 167, 68, .10);
  --hero-bg: var(--ink); --hero-fg: var(--mint); --hero-muted: #b9c6d3; --hero-dot: rgba(109, 237, 179, .14);
  --logo-bg: #2a3a4f; --logo-1: var(--leaf); --logo-2: var(--mint); --logo-3: var(--blue);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0e151c; --surface-1: #16202a; --surface-2: #1d2a35; --border: #2a3845;
    --text-primary: #eef2f6; --text-secondary: #c3ccd5; --text-muted: #93a0ad; --grid: #24313c;
    --accent: #6dedb3; --mint-soft: #16352a; --mark: #1f5a43;
    --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);
  }
}
:root[data-theme="dark"] {
  --bg: #0e151c; --surface-1: #16202a; --surface-2: #1d2a35; --border: #2a3845;
  --text-primary: #eef2f6; --text-secondary: #c3ccd5; --text-muted: #93a0ad; --grid: #24313c;
  --accent: #6dedb3; --mint-soft: #16352a; --mark: #1f5a43;
  --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);
}

body { font-family: var(--font); letter-spacing: .005em; }
/* petites bulles de couleur en fond */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(600px 400px at 92% 8%, var(--blob-1), transparent 70%),
    radial-gradient(500px 380px at 4% 60%, var(--blob-2), transparent 70%),
    radial-gradient(420px 320px at 70% 100%, var(--blob-3), transparent 70%);
}
h2, h3 { letter-spacing: -.01em; }
h2 { font-size: 1.3rem; font-weight: 700; font-family: var(--font-title); }
h2::after { content: ""; display: block; width: 42px; height: 5px; border-radius: 4px; margin-top: .35rem;
  background: linear-gradient(90deg, var(--c1) 0 25%, var(--c2) 25% 50%, var(--c3) 50% 75%, var(--c4) 75%); }
h3 { font-weight: 650; }

/* ---------- en-tête bleu nuit ---------- */
.top { background: var(--header-bg); color: var(--header-fg); border-bottom: 0; padding: .8rem 1.2rem .6rem; box-shadow: var(--header-shadow); transition: background .4s; }
.logo rect:first-child { fill: var(--logo-bg); }
.logo .bin:nth-child(1) { fill: var(--logo-1); } .logo .bin:nth-child(2) { fill: var(--logo-2); } .logo .bin:nth-child(3) { fill: var(--logo-3); }
.brand strong { font-family: var(--font-title); font-size: 1.15rem; font-weight: 750; letter-spacing: -.01em; }
.brand small { color: var(--header-muted); }
.brand .hand { display: block; font-family: var(--hand); color: var(--primary); font-size: 1.15rem; line-height: 1; margin-top: .1rem; }
.logo { width: 40px; height: 40px; flex: none; transition: transform .4s cubic-bezier(.3, 1.6, .5, 1); }
.brand:hover .logo { transform: rotate(-8deg) scale(1.06); }
.logo .bin { transform-origin: bottom; animation: bin-pop .7s cubic-bezier(.3, 1.6, .5, 1) both; }
.logo .bin:nth-child(2) { animation-delay: .08s; } .logo .bin:nth-child(3) { animation-delay: .16s; }
@keyframes bin-pop { from { transform: scaleY(.2); opacity: 0; } to { transform: scaleY(1); opacity: 1; } }

.tabs { gap: .25rem; padding-bottom: .15rem; scrollbar-color: #3a4a5c transparent; }
.tabs button { color: var(--header-tab); border-radius: 999px; font-weight: 500; }
.tabs button:hover { background: var(--header-hover); color: var(--header-fg); filter: none; }
.tabs button[aria-selected="true"] { background: var(--primary); color: var(--primary-ink); font-weight: 650; box-shadow: 0 2px 10px var(--primary-glow); }

.sitebar select, .sitebar input { background: var(--header-field); border-color: var(--header-field-border); color: var(--header-fg); border-radius: 999px; padding-left: .9rem; }
.sitebar select option { color: #1d2939; background: #fff; }
.sitebar input::placeholder { color: var(--header-placeholder); }
.sitebar input:focus, .sitebar select:focus { outline: 2px solid var(--primary); outline-offset: 1px; }
.sitebar .primary { border-radius: 999px; }

/* ---------- boutons ---------- */
button, .btn { border-radius: 12px; font-weight: 500; transition: transform .12s, box-shadow .2s, background .2s; }
button.primary { background: var(--primary); color: var(--primary-ink); font-weight: 650; box-shadow: 0 2px 0 rgba(29, 41, 57, .15); }
button.primary:hover { background: var(--primary-strong); filter: none; transform: translateY(-1px); box-shadow: 0 6px 16px var(--primary-glow); }
button.primary:active { transform: translateY(0); }
.btn:hover, button:not(.primary):hover { filter: none; border-color: var(--primary-strong); }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--primary); outline-offset: 1px; border-color: transparent; }
input, select, textarea { border-radius: 10px; }

/* ---------- cartes ---------- */
.card { border-radius: var(--radius); box-shadow: var(--shadow); border-color: var(--border); padding: 1.15rem 1.25rem; }
.kpi { border-radius: var(--radius); box-shadow: var(--shadow); position: relative; overflow: hidden; }
.kpi .value { font-weight: 750; letter-spacing: -.02em; }
.kpi::after { content: ""; position: absolute; right: -18px; bottom: -18px; width: 70px; height: 70px; border-radius: 50%; background: var(--mint-soft); }
.kpis .kpi:first-child { background: var(--hero-bg); border-color: var(--hero-bg); }
.kpis .kpi:first-child .label, .kpis .kpi:first-child .sub { color: var(--hero-muted); }
.kpis .kpi:first-child .value { color: var(--hero-fg); }
.kpis .kpi:first-child::after { background: var(--hero-dot); }

.alert { border-radius: 14px; box-shadow: var(--shadow); background: var(--surface-1); }
.pill { border-radius: 999px; }
.pill.own { background: var(--mint-soft); border-color: var(--mint-strong); color: var(--text-primary); font-weight: 600; }
.progress { height: 10px; border-radius: 999px; }
.progress-bar { background: linear-gradient(90deg, var(--c3), var(--c1), var(--c2)); border-radius: 999px; }
tr.clickable:hover td { background: var(--mint-soft); }
.reco { border-radius: 0 10px 10px 0; background: var(--surface-2); }
.resp { border-radius: 12px; }
.empty p:first-child { font-family: var(--hand); font-size: 1.6rem; line-height: 1.2; }
.finding .ic { font-size: 1.05rem; }
.md h2::after { display: none; }

/* ---------- touches manuscrites ---------- */
.hand-note { font-family: var(--hand); font-size: 1.3rem; line-height: 1.1; color: var(--accent); }
.run-card { background: linear-gradient(120deg, var(--surface-1) 55%, var(--mint-soft)); }
.save-bar { background: transparent; backdrop-filter: blur(6px); }

.site-footer { max-width: 1200px; margin: .5rem auto 2rem; padding: 0 1rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; color: var(--text-muted); font-size: .85rem; }
.site-footer .hand { font-family: var(--hand); font-size: 1.25rem; color: var(--accent); }
.site-footer .dots i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 4px; vertical-align: middle; }

@media (prefers-reduced-motion: reduce) { .logo .bin { animation: none; } * { transition: none !important; } }
@media print { body::before, .site-footer { display: none; } .kpis .kpi:first-child { background: #fff; } .kpis .kpi:first-child .value { color: #000; } h2::after { display: none; } }
.kpi > * { position: relative; z-index: 1; }
.kpi::after { width: 56px; height: 56px; right: -24px; bottom: -24px; z-index: 0; }

/* ---------- curseur : boulette de papier ---------- */
html, body { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cdefs%3E%3CradialGradient%20id%3D%22g%22%20cx%3D%2236%25%22%20cy%3D%2230%25%22%20r%3D%2272%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ffffff%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%23eef2ef%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c3ccc7%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22rotate(0%2017%2017)%22%3E%3Cpath%20d%3D%22M16.5%204.2%20L19.8%205.6%20L23.4%205.1%20L26.2%208.4%20L27.9%2012%20L28.6%2015.8%20L27.2%2019.3%20L27.8%2022.4%20L24.6%2025.6%20L20.8%2027.6%20L16.9%2028.2%20L13.2%2027.3%20L9.4%2027.4%20L6.9%2024.2%20L5%2020.6%20L4.6%2016.6%20L5.4%2012.7%20L4.9%209.6%20L8.1%207%20L11.9%205.7%20Z%22%20fill%3D%22url(%23g)%22%20stroke%3D%22%234b5b56%22%20stroke-width%3D%221.1%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cg%20fill%3D%22%231d2939%22%20opacity%3D%22.09%22%3E%3Cpath%20d%3D%22M16%2015%20L23%209.5%20L27.9%2012%20L26%2017%20Z%22%2F%3E%3Cpath%20d%3D%22M16%2015%20L13.2%2027.3%20L9.4%2027.4%20L8%2021%20Z%22%2F%3E%3Cpath%20d%3D%22M16%2015%20L26%2017%20L24.6%2025.6%20L19%2022%20Z%22%2F%3E%3Cpath%20d%3D%22M8.1%207%20L11.9%205.7%20L10.5%2014%20Z%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%2397a5a0%22%20stroke-width%3D%22.85%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M8.1%207%20Q11%2011%2010.5%2014%20Q9%2017%205%2020.6%22%2F%3E%3Cpath%20d%3D%22M19.8%205.6%20Q18%2010%2016%2015%20Q14%2019%2013.2%2027.3%22%2F%3E%3Cpath%20d%3D%22M16%2015%20Q21%2014.5%2027.2%2019.3%22%2F%3E%3Cpath%20d%3D%22M23.4%205.1%20Q22%208%2023%209.5%22%2F%3E%3Cpath%20d%3D%22M10.5%2014%20Q13%2014.2%2016%2015%22%2F%3E%3Cpath%20d%3D%22M19%2022%20Q22%2023.5%2024.6%2025.6%22%2F%3E%3Cpath%20d%3D%22M8%2021%20Q10%2023%209.4%2027.4%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M11.5%209.2%20Q13%208%2014.6%208.4%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 16 16, auto; }
a, button, select, summary, label, [role="tab"], tr.clickable, .bar-row, .hit, input[type="checkbox"], input[type="file"], .btn {
  cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cdefs%3E%3CradialGradient%20id%3D%22g%22%20cx%3D%2236%25%22%20cy%3D%2230%25%22%20r%3D%2272%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ffffff%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%23eef2ef%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c3ccc7%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Cg%20stroke%3D%22%233fdc96%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M1.5%209%20L5.5%2010.5%22%2F%3E%3Cpath%20d%3D%22M1%2014.5%20L4.2%2015%22%2F%3E%3Cpath%20d%3D%22M2.2%2020%20L5%2019.2%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22rotate(-25%2017%2017)%22%3E%3Cpath%20d%3D%22M16.5%204.2%20L19.8%205.6%20L23.4%205.1%20L26.2%208.4%20L27.9%2012%20L28.6%2015.8%20L27.2%2019.3%20L27.8%2022.4%20L24.6%2025.6%20L20.8%2027.6%20L16.9%2028.2%20L13.2%2027.3%20L9.4%2027.4%20L6.9%2024.2%20L5%2020.6%20L4.6%2016.6%20L5.4%2012.7%20L4.9%209.6%20L8.1%207%20L11.9%205.7%20Z%22%20fill%3D%22url(%23g)%22%20stroke%3D%22%234b5b56%22%20stroke-width%3D%221.1%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cg%20fill%3D%22%231d2939%22%20opacity%3D%22.09%22%3E%3Cpath%20d%3D%22M16%2015%20L23%209.5%20L27.9%2012%20L26%2017%20Z%22%2F%3E%3Cpath%20d%3D%22M16%2015%20L13.2%2027.3%20L9.4%2027.4%20L8%2021%20Z%22%2F%3E%3Cpath%20d%3D%22M16%2015%20L26%2017%20L24.6%2025.6%20L19%2022%20Z%22%2F%3E%3Cpath%20d%3D%22M8.1%207%20L11.9%205.7%20L10.5%2014%20Z%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%2397a5a0%22%20stroke-width%3D%22.85%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M8.1%207%20Q11%2011%2010.5%2014%20Q9%2017%205%2020.6%22%2F%3E%3Cpath%20d%3D%22M19.8%205.6%20Q18%2010%2016%2015%20Q14%2019%2013.2%2027.3%22%2F%3E%3Cpath%20d%3D%22M16%2015%20Q21%2014.5%2027.2%2019.3%22%2F%3E%3Cpath%20d%3D%22M23.4%205.1%20Q22%208%2023%209.5%22%2F%3E%3Cpath%20d%3D%22M10.5%2014%20Q13%2014.2%2016%2015%22%2F%3E%3Cpath%20d%3D%22M19%2022%20Q22%2023.5%2024.6%2025.6%22%2F%3E%3Cpath%20d%3D%22M8%2021%20Q10%2023%209.4%2027.4%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M11.5%209.2%20Q13%208%2014.6%208.4%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 17 17, pointer;
}
input:not([type="checkbox"]):not([type="file"]), textarea, [contenteditable] { cursor: text; }
button:disabled { cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cdefs%3E%3CradialGradient%20id%3D%22g%22%20cx%3D%2236%25%22%20cy%3D%2230%25%22%20r%3D%2272%25%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23ffffff%22%2F%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%23eef2ef%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23c3ccc7%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Cg%20transform%3D%22rotate(0%2017%2017)%22%3E%3Cpath%20d%3D%22M16.5%204.2%20L19.8%205.6%20L23.4%205.1%20L26.2%208.4%20L27.9%2012%20L28.6%2015.8%20L27.2%2019.3%20L27.8%2022.4%20L24.6%2025.6%20L20.8%2027.6%20L16.9%2028.2%20L13.2%2027.3%20L9.4%2027.4%20L6.9%2024.2%20L5%2020.6%20L4.6%2016.6%20L5.4%2012.7%20L4.9%209.6%20L8.1%207%20L11.9%205.7%20Z%22%20fill%3D%22url(%23g)%22%20stroke%3D%22%234b5b56%22%20stroke-width%3D%221.1%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cg%20fill%3D%22%231d2939%22%20opacity%3D%22.09%22%3E%3Cpath%20d%3D%22M16%2015%20L23%209.5%20L27.9%2012%20L26%2017%20Z%22%2F%3E%3Cpath%20d%3D%22M16%2015%20L13.2%2027.3%20L9.4%2027.4%20L8%2021%20Z%22%2F%3E%3Cpath%20d%3D%22M16%2015%20L26%2017%20L24.6%2025.6%20L19%2022%20Z%22%2F%3E%3Cpath%20d%3D%22M8.1%207%20L11.9%205.7%20L10.5%2014%20Z%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%2397a5a0%22%20stroke-width%3D%22.85%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M8.1%207%20Q11%2011%2010.5%2014%20Q9%2017%205%2020.6%22%2F%3E%3Cpath%20d%3D%22M19.8%205.6%20Q18%2010%2016%2015%20Q14%2019%2013.2%2027.3%22%2F%3E%3Cpath%20d%3D%22M16%2015%20Q21%2014.5%2027.2%2019.3%22%2F%3E%3Cpath%20d%3D%22M23.4%205.1%20Q22%208%2023%209.5%22%2F%3E%3Cpath%20d%3D%22M10.5%2014%20Q13%2014.2%2016%2015%22%2F%3E%3Cpath%20d%3D%22M19%2022%20Q22%2023.5%2024.6%2025.6%22%2F%3E%3Cpath%20d%3D%22M8%2021%20Q10%2023%209.4%2027.4%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M11.5%209.2%20Q13%208%2014.6%208.4%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 16 16, wait; }
