/* ==========================================================================
   RISE RISE GOLF — Cockpit de l'association
   S'appuie sur admin.css (polices, boutons, formulaires, tables) et ajoute
   la coquille webapp : barre latérale, barre d'onglets mobile, messagerie…
   ========================================================================== */

:root {
    --mint:#42FEA7; --mint-soft:#D9FFEE; --navy:#090A90; --navy-d:#06076B; --navy-soft:#E8E8FA;
    --ink:#2A2828; --muted:#6B6864; --bg:#F4F3EF; --card:#fff; --line:#E2DFD8; --line-2:#CFCBC2;
    --ok:#198352; --warn:#B8860B; --err:#B23A3A;
    --side:252px; --top:60px; --tabbar:64px;
    --safe-b:env(safe-area-inset-bottom, 0px); --safe-t:env(safe-area-inset-top, 0px);
}

.cp { background:var(--bg); }
.cp [hidden] { display:none !important; }
.cp .ic { flex:0 0 auto; }
.muted { color:var(--muted); }
.sm { font-size:.82rem; }
.center { text-align:center; }
.mt { margin-top:12px; }
.pad { padding:16px 20px; }
.stack { display:flex; flex-direction:column; gap:10px; }
.stack input:not([type=checkbox]):not([type=radio]), .stack select { width:100%; font:inherit; padding:9px 12px; border:1px solid var(--line-2); border-radius:6px; background:#fff; }
.btn-block { width:100%; }
.spacer { margin-left:auto; }
.link { background:none; border:0; padding:0; color:var(--navy); cursor:pointer; font:inherit; }
.link.danger { color:var(--err); }
.pre { white-space:pre-wrap; font-size:.9rem; background:#FAF9F6; border:1px solid var(--line); border-radius:6px; padding:12px; }
.prose p { margin:0 0 .8em; }
code { background:var(--navy-soft); padding:1px 5px; border-radius:4px; font-size:.85em; }
.pill-warn { background:rgba(184,134,11,.14); color:var(--warn); }
.list-dots { padding-left:18px; list-style:disc; }
.list-dots li { margin-bottom:6px; }

/* ----------------------------------------------------------------- Coquille */
.cp-app { display:flex; min-height:100vh; min-height:100dvh; }

.cp-side {
    width:var(--side); flex:0 0 var(--side); background:var(--navy); color:#fff;
    position:sticky; top:0; height:100vh; height:100dvh; display:flex; flex-direction:column; z-index:70;
}
.cp-brand { padding:22px 20px 16px; border-bottom:1px solid rgba(255,255,255,.12); }
.cp-brand img { height:26px; width:auto; }
.cp-brand small { display:block; margin-top:9px; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--mint); opacity:.9; }
.cp-nav { padding:10px 12px 16px; overflow-y:auto; flex:1; overscroll-behavior:contain; }
.cp-nav h4 { font-family:var(--font); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); font-weight:700; padding:16px 10px 6px; margin:0; }
.cp-nav a { display:flex; align-items:center; gap:11px; padding:8px 10px; border-radius:8px; color:#fff; font-size:.88rem; text-decoration:none; position:relative; }
.cp-nav a:hover { background:rgba(255,255,255,.09); text-decoration:none; }
.cp-nav a.is-active { background:var(--mint); color:var(--navy); font-weight:700; }
.cp-nav a .dot-n { position:static; margin-left:auto; }
.cp-side-foot { padding:12px 14px calc(14px + var(--safe-b)); border-top:1px solid rgba(255,255,255,.12); display:flex; flex-direction:column; gap:4px; }
.cp-side-foot a { color:rgba(255,255,255,.75); font-size:.8rem; display:flex; gap:8px; align-items:center; padding:5px 6px; border-radius:6px; text-decoration:none; }
.cp-side-foot a:hover { color:#fff; background:rgba(255,255,255,.08); }
.cp-me { margin-bottom:6px; }
.cp-me strong { display:block; color:#fff; font-size:.86rem; }
.cp-me small { display:block; color:rgba(255,255,255,.6); font-size:.72rem; }

.avatar { width:36px; height:36px; border-radius:50%; background:var(--mint); color:var(--navy); display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem; flex:0 0 auto; font-family:var(--display); }
.avatar.sm { width:30px; height:30px; font-size:.72rem; }
.avatar.xs { width:24px; height:24px; font-size:.6rem; }

.cp-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.cp-top {
    height:var(--top); background:rgba(255,255,255,.92); backdrop-filter:saturate(1.4) blur(10px); -webkit-backdrop-filter:saturate(1.4) blur(10px);
    border-bottom:1px solid var(--line); display:flex; align-items:center; gap:10px; padding:0 24px; position:sticky; top:0; z-index:40;
}
.cp-top h1 { font-size:1.15rem; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--navy); }
.cp-iconbtn { position:relative; display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:10px; color:var(--ink); background:none; border:0; cursor:pointer; text-decoration:none !important; }
.cp-iconbtn:hover { background:var(--bg); }
.cp-burger, .cp-back { display:none; }
.dot-n { position:absolute; top:3px; right:2px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:#E5484D; color:#fff; font-size:.66rem; font-weight:800; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
.dot-n[hidden] { display:none; }

.cp-content { padding:26px 28px 40px; max-width:1260px; width:100%; }
.cp-content.wide { max-width:none; }
.cp-content.flush { padding:0; max-width:none; }
.cp-content.flush > .alert { margin:12px 16px 0; }

.cp-banner { display:flex; align-items:center; gap:12px; padding:10px 24px; background:var(--navy); color:#fff; font-size:.86rem; }
.cp-banner[hidden] { display:none; }
.cp-banner span { flex:1; }
.cp-x { background:none; border:0; color:inherit; font-size:1.4rem; line-height:1; cursor:pointer; padding:2px 6px; opacity:.7; }
.cp-x:hover { opacity:1; }
.cp-scrim { position:fixed; inset:0; background:rgba(6,7,60,.45); z-index:65; }
.cp-tabbar { display:none; }

/* ------------------------------------------------------------- Composants */
.hello { font-size:1.02rem; margin:0 0 18px; }
.crumb { margin:0 0 12px; font-size:.82rem; }
.crumb a { color:var(--muted); }
.card { border-radius:12px; }
.card.flush { padding:0; overflow:hidden; }
.card.narrow { max-width:620px; }
.card h2 { font-size:1.02rem; margin:0 0 14px; color:var(--navy); }
.card h3 { font-size:.86rem; margin:0 0 10px; text-transform:uppercase; letter-spacing:.04em; color:var(--navy); }
.card-head h2 { margin:0; }
.card-head .sm { font-weight:600; }
.card.info { background:var(--navy-soft); border-color:transparent; }
.card-head.pad { margin:0; }

.kpis { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:14px; margin-bottom:20px; }
.kpi { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px; text-decoration:none !important; color:var(--ink); transition:transform .15s, box-shadow .15s; position:relative; overflow:hidden; }
.kpi::after { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mint); }
.kpi:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(9,10,144,.08); }
.kpi .n { display:block; font-family:var(--display); font-weight:800; font-size:1.7rem; color:var(--navy); line-height:1.05; }
.kpi .l { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); margin-top:6px; }

.grid-dash { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
.grid-dash .card { margin:0; }
.todo li a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); color:var(--ink); }
.todo li:last-child a { border-bottom:0; }
.todo li a span { color:var(--navy); }

.agenda-mini li a { display:flex; align-items:center; gap:14px; padding:10px 0; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; }
.agenda-mini li:last-child a { border-bottom:0; }
.agenda-mini strong { display:block; font-size:.9rem; }
.agenda-mini small { display:block; color:var(--muted); font-size:.76rem; }
.agenda-mini .pill { margin-left:auto; }
.date { flex:0 0 52px; height:56px; border-radius:10px; background:var(--navy); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; text-decoration:none !important; }
.date b { font-family:var(--display); font-size:1.3rem; line-height:1; color:var(--mint); }
.date small { font-size:.62rem; opacity:.8; }

.log li { display:flex; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:.84rem; }
.log li:last-child { border-bottom:0; }
.log small { display:block; color:var(--muted); font-size:.72rem; }

.mini-list li { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:.86rem; }
.mini-list li:last-child { border-bottom:0; }
.mini-list small { color:var(--muted); font-size:.74rem; }
.mini-list form { margin:0; }
.dl { display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0 0 14px; font-size:.9rem; }
.dl dt { color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; padding-top:2px; }
.dl dd { margin:0; }
.tag-list { display:flex; flex-wrap:wrap; gap:6px; }
.tag-list li { background:var(--navy-soft); color:var(--navy); font-size:.74rem; font-weight:600; padding:4px 9px; border-radius:20px; }

.bar { display:block; height:7px; border-radius:7px; background:#ECEAE4; overflow:hidden; }
.bar span { display:block; height:100%; background:var(--navy); border-radius:7px; transition:width .5s; }
.bar.light { background:rgba(255,255,255,.2); margin:8px 0 10px; }
.bar.light span { background:var(--mint); }

/* ------------------------------------------------------------- Barre d'outils */
.toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:16px; }
.toolbar .muted { margin:0; }
.search { display:flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line-2); border-radius:8px; padding:0 10px; min-width:220px; }
.search input { border:0; outline:0; padding:8px 0; font:inherit; font-size:.88rem; width:100%; background:none; }
.filter select { font:inherit; font-size:.84rem; padding:8px 10px; border:1px solid var(--line-2); border-radius:8px; background:#fff; }
.seg { display:inline-flex; background:#ECEAE4; border-radius:8px; padding:3px; }
.seg a, .seg button { padding:6px 12px; border-radius:6px; font-size:.8rem; font-weight:600; color:var(--muted); text-decoration:none !important; border:0; background:none; cursor:pointer; font-family:inherit; }
.seg .on { background:#fff; color:var(--navy); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.chips-nav { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.chips-nav.inline { margin:0; }
.chips-nav a { font-size:.8rem; font-weight:600; padding:7px 12px; border-radius:20px; border:1px solid var(--line-2); background:#fff; color:var(--ink); text-decoration:none !important; white-space:nowrap; }
.chips-nav a b { color:var(--muted); font-weight:700; margin-left:3px; }
.chips-nav a.on { background:var(--navy); border-color:var(--navy); color:#fff; }
.chips-nav a.on b { color:var(--mint); }

.table tr[data-href] { cursor:pointer; }
.table tr.unread td { font-weight:600; background:#FBFFFD; }
.table tr.off td { opacity:.55; }
.table tfoot td { background:#FAF9F6; }

/* Kanban */
.board { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(230px, 1fr); gap:14px; overflow-x:auto; padding-bottom:12px; scroll-snap-type:x proximity; }
.board-col { background:#ECEAE4; border-radius:12px; padding:12px; min-height:120px; scroll-snap-align:start; }
.board-col h3 { display:flex; align-items:center; gap:8px; margin:0 0 10px; font-size:.8rem; }
.board-col h3 small { color:var(--muted); }
.board-card { display:block; background:#fff; border-radius:9px; padding:11px 12px; margin-bottom:8px; color:var(--ink); text-decoration:none !important; box-shadow:0 1px 2px rgba(0,0,0,.06); border:1px solid transparent; }
.board-card:hover { border-color:var(--navy); }
.board-card strong { display:block; font-size:.88rem; margin-bottom:3px; }
.board-card small { display:block; font-size:.74rem; color:var(--muted); }
.board-card small.due { color:var(--err); font-weight:700; }

/* Fiche */
.edit-grid { display:grid; grid-template-columns:minmax(0, 1fr) 320px; gap:18px; align-items:start; }
.edit-side .card { margin-bottom:14px; }
.steps { display:flex; gap:4px; margin-bottom:16px; overflow-x:auto; }
.step { flex:1; min-width:110px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:9px 10px; background:#ECEAE4; color:var(--muted); border-radius:6px; white-space:nowrap; }
.step.done { background:var(--mint-soft); color:var(--ok); }
.step.cur { background:var(--navy); color:var(--mint); }
.flow { padding-left:18px; margin:0 0 14px; font-size:.86rem; }
.flow li { padding:3px 0; color:var(--muted); }
.flow li.cur { color:var(--navy); font-weight:700; }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chip-check { display:inline-flex; align-items:center; gap:6px; font-size:.82rem; padding:6px 11px; border:1px solid var(--line-2); border-radius:20px; background:#fff; cursor:pointer; }
.chip-check:has(input:checked) { background:var(--navy-soft); border-color:var(--navy); color:var(--navy); font-weight:600; }
.chip-check input { accent-color:var(--navy); }
.file-current { display:flex; align-items:center; gap:8px; margin-bottom:8px; font-size:.86rem; }
.f-check.sm { font-size:.78rem; }
fieldset[disabled] { opacity:.85; }
fieldset { border:0; padding:0; margin:0 0 12px; }
.reg-row { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:7px 0; border-bottom:1px solid var(--line); font-size:.85rem; margin:0; }
.reg-row small { color:var(--muted); font-size:.72rem; }
.reg-row select { font:inherit; font-size:.8rem; padding:4px 6px; border:1px solid var(--line-2); border-radius:6px; }
.reg-row.add { border:0; padding-top:12px; }
.reg-row.add select { flex:1; }

/* -------------------------------------------------------------- Athlètes */
.ath-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px; }
.ath-card { display:flex; gap:14px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; color:var(--ink); text-decoration:none !important; transition:border-color .15s, transform .15s; }
.ath-card:hover { border-color:var(--navy); transform:translateY(-1px); }
.ph { width:64px; height:80px; border-radius:9px; overflow:hidden; background:var(--navy); flex:0 0 auto; display:flex; align-items:center; justify-content:center; }
.ph img { width:100%; height:100%; object-fit:cover; }
.ph b { color:var(--mint); font-family:var(--display); font-size:1.2rem; }
.ph.lg { width:96px; height:120px; }
.ath-card .body { display:flex; flex-direction:column; gap:4px; min-width:0; flex:1; }
.ath-card strong { font-size:.98rem; }
.ath-card small { color:var(--muted); font-size:.78rem; }
.tags { display:flex; gap:4px; flex-wrap:wrap; }
.score { margin-top:auto; }
.score small { font-size:.7rem; }
.ath-head { display:flex; gap:18px; align-items:center; }
.ath-head h2 { font-size:1.4rem; margin:0 0 4px; }
.ath-head p { margin:0 0 10px; }
.ath-mini { display:grid; gap:10px; }
.ath-mini a { display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; }
.ath-mini .ph { width:44px; height:54px; }
.ath-mini small { display:block; color:var(--muted); }

/* Engagements */
.eng { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.eng-item { border:1px solid var(--line); border-radius:10px; padding:12px 14px; background:#fff; position:relative; }
.eng-item::before { content:''; position:absolute; left:0; top:12px; bottom:12px; width:3px; border-radius:3px; }
.eng-ok::before { background:var(--ok); } .eng-warn::before { background:#E2A20C; } .eng-late::before { background:var(--err); }
.eng-ok .bar span { background:var(--ok); } .eng-warn .bar span { background:#E2A20C; } .eng-late .bar span { background:var(--err); }
.eng-head { display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:8px; }
.eng-head strong { font-size:.82rem; }
.eng-n { font-family:var(--display); font-weight:800; font-size:1.25rem; color:var(--navy); white-space:nowrap; }
.eng-n small { font-size:.75rem; color:var(--muted); font-weight:600; }
.eng-note { font-size:.74rem; color:var(--muted); margin-top:7px; }
.eng-note .st { font-weight:700; }
.eng-ok .st { color:var(--ok); } .eng-warn .st { color:var(--warn); } .eng-late .st { color:var(--err); }
.eng-compact { grid-template-columns:repeat(2, 1fr); }
.mini-kpis { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.mini-kpis .eng-item strong { display:block; font-size:.8rem; }
.mini-kpis .eng-n { display:block; margin:4px 0 6px; }
.mini-kpis small { display:block; font-size:.72rem; color:var(--muted); margin-top:6px; }
.legend { display:flex; gap:8px; align-items:center; font-size:.78rem; color:var(--muted); margin:0 0 12px; }
.lg { width:10px; height:10px; border-radius:50%; display:inline-block; margin-left:8px; }
.lg.ok { background:var(--ok); } .lg.warn { background:#E2A20C; } .lg.late { background:var(--err); }
[class^="cell-"] { display:inline-block; min-width:44px; text-align:center; font-weight:700; font-size:.8rem; padding:3px 8px; border-radius:6px; }
.cell-ok { background:rgba(25,131,82,.12); color:var(--ok); }
.cell-warn { background:rgba(226,162,12,.15); color:#8A6200; }
.cell-late { background:rgba(178,58,58,.12); color:var(--err); }

/* Hero (espaces personnels) */
.hero-card { background:var(--navy); color:#fff; border-radius:16px; padding:24px; margin-bottom:18px; display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; position:relative; overflow:hidden; }
.hero-card::after { content:''; position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(66,254,167,.35), transparent 70%); pointer-events:none; }
.hero-card.slim { padding:20px 24px; }
.hero-card .kicker { color:var(--mint); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin:0 0 6px; }
.hero-card .display { font-family:var(--display); font-weight:900; font-size:2.3rem; line-height:1; margin:0 0 8px; color:#fff; }
.hero-card .display small { font-size:.9rem; font-weight:600; color:rgba(255,255,255,.75); margin-left:6px; font-family:var(--font); }
.hero-card .sm { color:rgba(255,255,255,.8); margin:0; }
.quick { display:flex; gap:10px; flex-wrap:wrap; position:relative; z-index:1; }
.quick a { display:flex; flex-direction:column; align-items:center; gap:6px; width:96px; padding:12px 6px; border-radius:12px; background:rgba(255,255,255,.1); color:#fff; font-size:.74rem; font-weight:600; text-align:center; text-decoration:none !important; }
.quick a:hover { background:var(--mint); color:var(--navy); }

/* Contenus */
.contrib-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:14px; }
.contrib-grid.sm { grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); }
.contrib { padding:0; overflow:hidden; display:flex; flex-direction:column; margin:0; border:1px solid var(--line); border-radius:12px; background:#fff; }
.contrib-media { display:block; aspect-ratio:4/3; background:#ECEAE4; }
.contrib-media img, .contrib-media video { width:100%; height:100%; object-fit:cover; display:block; }
.contrib-body { padding:12px; display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.contrib-body p { margin:0; font-size:.86rem; }
.contrib-body form { width:100%; }
.contrib.st-refuse { opacity:.7; }
.thumbs { display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:8px; margin:10px 0; }
.thumb { margin:0; position:relative; aspect-ratio:1; border-radius:8px; overflow:hidden; background:#ECEAE4; }
.thumb img { width:100%; height:100%; object-fit:cover; }
.thumb figcaption { position:absolute; left:0; right:0; bottom:0; font-size:.62rem; background:rgba(9,10,144,.8); color:#fff; padding:2px 5px; }
.thumb.st-en_attente { outline:2px dashed #E2A20C; outline-offset:-2px; }
.noimg { display:flex; align-items:center; justify-content:center; height:100%; font-size:.7rem; color:var(--muted); text-align:center; padding:6px; }
.kind-pick { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.kind-pick label { cursor:pointer; }
.kind-pick input { position:absolute; opacity:0; width:0; height:0; }
.kind-pick span { display:inline-block; padding:8px 13px; border-radius:20px; border:1px solid var(--line-2); font-size:.82rem; font-weight:600; background:#fff; }
.kind-pick input:checked + span { background:var(--navy); color:#fff; border-color:var(--navy); }
.kind-pick input:focus-visible + span { outline:2px solid var(--navy); outline-offset:2px; }
.drop { display:flex; flex-direction:column; align-items:center; gap:6px; padding:26px 16px; border:2px dashed var(--line-2); border-radius:12px; background:#FAF9F6; cursor:pointer; text-align:center; color:var(--navy); margin-bottom:6px; }
.drop:hover, .drop.over { border-color:var(--navy); background:var(--navy-soft); }
.drop small { color:var(--muted); }
.drop input { position:absolute; opacity:0; width:1px; height:1px; }

.contact-list li { display:flex; align-items:center; gap:10px; padding:12px 18px; border-bottom:1px solid var(--line); }
.contact-list li > span:first-child { flex:1; min-width:0; }
.contact-list strong { display:block; font-size:.9rem; }
.contact-list small { color:var(--muted); font-size:.76rem; }
.contact-list form { margin:0; }

.session-list { display:grid; gap:12px; }
.session { display:flex; align-items:center; gap:16px; margin:0; }
.session .body { flex:1; min-width:0; }
.session h3 { margin:6px 0 2px; text-transform:none; letter-spacing:0; font-size:1rem; }
.session h3 a { color:var(--ink); }
.session form { display:flex; flex-direction:column; align-items:flex-end; gap:6px; margin:0; }
.doc-list li { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); color:var(--navy); }
.doc-list li:last-child { border-bottom:0; }
.doc-list a { flex:1; font-weight:600; }
.doc-list small { color:var(--muted); }

.notif-list li a { display:flex; flex-direction:column; gap:2px; padding:13px 20px; border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; }
.notif-list li.unread a { background:#F3FFF9; border-left:3px solid var(--mint); }
.notif-list span { font-size:.86rem; color:var(--muted); }
.notif-list small { font-size:.72rem; color:var(--muted); }

/* ------------------------------------------------------------- Messagerie */
.chat { display:grid; grid-template-columns:340px minmax(0, 1fr); height:calc(100vh - var(--top)); height:calc(100dvh - var(--top)); background:#fff; }
.chat > * { min-width:0; }
.chat-list { border-right:1px solid var(--line); display:flex; flex-direction:column; min-height:0; }
.chat-list-head { display:flex; justify-content:space-between; align-items:center; padding:14px 16px; border-bottom:1px solid var(--line); }
.chat-list ul { overflow-y:auto; flex:1; }
.chat-list li a { display:flex; gap:11px; align-items:center; padding:12px 16px; border-bottom:1px solid #F0EEE9; color:var(--ink); text-decoration:none; }
.chat-list li.on a { background:var(--navy-soft); }
.chat-list li.unread strong { color:var(--navy); }
.chat-list .t { flex:1; min-width:0; }
.chat-list .t strong, .chat-list .t small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-list .t strong { font-size:.88rem; }
.chat-list .t small { color:var(--muted); font-size:.78rem; }
.chat-list .meta { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.chat-list .meta small { font-size:.66rem; color:var(--muted); white-space:nowrap; }
.chat-list .meta .dot-n { position:static; }
.chat-thread { display:flex; flex-direction:column; min-height:0; background:#F7F6F2; }
.chat-thread .empty-state { margin:auto; color:var(--muted); }
.chat-head { display:flex; align-items:center; gap:10px; padding:12px 18px; background:#fff; border-bottom:1px solid var(--line); }
.chat-head strong { display:block; }
.chat-head small { color:var(--muted); font-size:.74rem; }
.chat-back { display:none; }
.chat-msgs { flex:1; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:6px; }
.chat-day { align-self:center; font-size:.7rem; color:var(--muted); background:#ECEAE4; padding:3px 10px; border-radius:20px; margin:8px 0; }
.msg { display:flex; flex-direction:column; align-items:flex-start; max-width:78%; }
.msg.mine { align-self:flex-end; align-items:flex-end; }
.msg .who { font-size:.7rem; color:var(--muted); margin:0 0 2px 10px; font-weight:600; }
.bubble { background:#fff; border:1px solid var(--line); padding:9px 13px; border-radius:16px 16px 16px 4px; font-size:.92rem; line-height:1.45; word-wrap:break-word; overflow-wrap:anywhere; }
.msg.mine .bubble { background:var(--navy); color:#fff; border-color:var(--navy); border-radius:16px 16px 4px 16px; }
.msg time { font-size:.64rem; color:var(--muted); margin:2px 8px 0; }
.msg.pending { opacity:.6; }
.chat-form { display:flex; gap:8px; padding:10px 14px calc(10px + var(--safe-b)); background:#fff; border-top:1px solid var(--line); align-items:flex-end; }
.chat-form textarea { flex:1; resize:none; font:inherit; font-size:.95rem; padding:10px 14px; border:1px solid var(--line-2); border-radius:20px; max-height:140px; line-height:1.4; }
.chat-form textarea:focus { outline:none; border-color:var(--navy); }
.chat-form .btn { border-radius:50%; width:42px; height:42px; padding:0; }
.rcpts { max-height:300px; overflow-y:auto; border:1px solid var(--line); border-radius:8px; padding:6px; margin-top:6px; }
.rcpt { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:6px; cursor:pointer; font-size:.88rem; }
.rcpt:hover { background:var(--bg); }
.rcpt small { color:var(--muted); margin-left:auto; font-size:.74rem; }
.rcpt-group { font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:8px 8px 2px; }
.filter-input { width:100%; font:inherit; padding:8px 12px; border:1px solid var(--line-2); border-radius:8px; }

/* -------------------------------------------------------------- Site web */
.page-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:12px; }
.page-card { display:flex; flex-direction:column; gap:4px; padding:16px; border:1px solid var(--line); border-radius:10px; color:var(--ink); text-decoration:none !important; background:#fff; transition:border-color .15s; }
.page-card:hover { border-color:var(--navy); }
.page-card .ic { color:var(--navy); margin-bottom:4px; }
.page-card small { color:var(--muted); font-size:.76rem; }
.site-edit { display:grid; grid-template-columns:minmax(0, 1fr); gap:18px; align-items:start; }
.site-edit.with-preview { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
.site-preview { position:sticky; top:calc(var(--top) + 16px); height:calc(100vh - var(--top) - 40px); border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
.site-preview iframe { width:100%; height:100%; border:0; }
.blk { padding:14px 0; border-bottom:1px solid var(--line); }
.blk:first-of-type { padding-top:0; }
.blk-label { display:block; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#57534E; margin-bottom:6px; }
.blk input[type=text], .blk textarea { width:100%; font:inherit; font-size:.92rem; padding:9px 12px; border:1px solid var(--line-2); border-radius:6px; background:#fff; }
.blk textarea { line-height:1.55; resize:vertical; }
.blk input:focus, .blk textarea:focus { outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(9,10,144,.1); }
.blk input.changed, .blk textarea.changed { border-color:var(--mint); background:#F3FFF9; }
.media-slot { display:grid; grid-template-columns:220px minmax(0, 1fr); gap:14px; align-items:start; }
.media-prev { aspect-ratio:16/10; border-radius:8px; overflow:hidden; background:repeating-linear-gradient(135deg,#EEEBE5 0 10px,#E5E1DA 10px 20px); border:1px solid var(--line); }
.media-prev img, .media-prev video { width:100%; height:100%; object-fit:cover; display:block; }
.media-prev .empty { display:flex; align-items:center; justify-content:center; height:100%; font-size:.74rem; color:var(--muted); padding:8px; text-align:center; word-break:break-all; }
.media-slot.changed .media-prev { outline:3px solid var(--mint); }
.media-ctl { display:flex; flex-direction:column; gap:8px; }
.media-ctl input[type=text] { width:100%; }

.media-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:14px; }
.media-card { margin:0; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; display:flex; flex-direction:column; }
.mc-prev { position:relative; display:block; aspect-ratio:4/3; background:#ECEAE4; }
.mc-prev img, .mc-prev video { width:100%; height:100%; object-fit:cover; display:block; }
.tag { position:absolute; left:6px; bottom:6px; background:var(--navy); color:#fff; font-size:.62rem; font-weight:700; padding:2px 7px; border-radius:4px; }
.tag.ath { left:auto; right:6px; top:6px; bottom:auto; background:var(--mint); color:var(--navy); }
.media-card figcaption { padding:8px 10px; display:flex; flex-direction:column; gap:6px; }
.alt-form input { width:100%; border:1px solid transparent; border-radius:5px; padding:4px 6px; font:inherit; font-size:.8rem; background:#FAF9F6; }
.alt-form input:focus { border-color:var(--navy); background:#fff; outline:0; }
.mc-foot { display:flex; gap:8px; align-items:center; }
.mc-foot form { margin:0; }
.mc-foot small:first-child { flex:1; }

.picker { width:min(980px, 96vw); max-height:88vh; border:0; border-radius:14px; padding:0; box-shadow:0 30px 80px rgba(0,0,0,.35); }
.picker::backdrop { background:rgba(6,7,60,.55); }
.picker-head { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:14px 16px; border-bottom:1px solid var(--line); position:sticky; top:0; background:#fff; z-index:2; }
.picker-q { flex:1; min-width:140px; font:inherit; padding:7px 11px; border:1px solid var(--line-2); border-radius:8px; }
.picker-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:10px; padding:16px; overflow-y:auto; max-height:calc(88vh - 70px); }
.pick-item { position:relative; aspect-ratio:1; border-radius:8px; overflow:hidden; border:3px solid transparent; cursor:pointer; background:#ECEAE4; padding:0; }
.pick-item:hover, .pick-item:focus-visible { border-color:var(--navy); outline:0; }
.pick-item img, .pick-item video { width:100%; height:100%; object-fit:cover; display:block; }
.pick-item .tag.ath { font-size:.58rem; }
.picker .btn input[type=file] { display:none; }

/* Aperçu signature */
.sig-preview { background:#fff; border:1px dashed var(--line-2); border-radius:10px; padding:4px 16px 16px; margin:4px 0 14px; overflow-x:auto; }

/* Matrice des rôles */
.matrix-wrap { overflow-x:auto; margin-top:12px; }
.matrix th { font-size:.6rem; white-space:nowrap; }
.matrix td.c { text-align:center; color:var(--navy); }
details.card > summary { font-weight:700; color:var(--navy); cursor:pointer; }

/* --------------------------------------------------------------- Connexion */
.cp-login { background:var(--navy); }
.cp-login-wrap { min-height:100vh; min-height:100dvh; display:grid; grid-template-columns:1fr minmax(320px, 460px); }
.cp-login-hero { display:flex; flex-direction:column; justify-content:flex-end; padding:48px; color:#fff; position:relative; overflow:hidden; }
.cp-login-hero .mascot { position:absolute; right:8%; top:12%; width:min(320px, 40%); opacity:.95; }
.cp-login-hero .kicker { color:var(--mint); letter-spacing:.18em; text-transform:uppercase; font-size:.74rem; font-weight:700; }
.cp-login-hero .display { font-family:var(--display); font-weight:900; text-transform:uppercase; font-size:clamp(2.4rem, 5vw, 4.4rem); line-height:.95; margin:0; color:var(--mint); }
.cp-login-box { background:#fff; padding:48px 40px; display:flex; flex-direction:column; justify-content:center; }
.cp-login-box .logo { height:34px; width:auto; max-width:200px; object-fit:contain; align-self:flex-start; margin-bottom:28px; }
.cp-login-box h1 { color:var(--navy); font-size:1.4rem; margin:0 0 8px; }
.cp-login-box .f input { padding:12px 14px; font-size:1rem; }
.cp-login-box .btn { padding:13px; font-size:.95rem; }

/* ================================================================ MOBILE */
@media (max-width:1100px) {
    .edit-grid { grid-template-columns:1fr; }
    .eng { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .site-edit.with-preview { grid-template-columns:1fr; }
    .site-edit.with-preview .site-preview { position:static; height:70vh; }
}

@media (max-width:860px) {
    :root { --top:56px; }
    .cp-side { position:fixed; left:0; top:0; bottom:0; transform:translateX(-100%); transition:transform .28s cubic-bezier(.2,.8,.2,1), box-shadow .28s; box-shadow:none; width:min(300px, 86vw); }
    .cp-side.is-open { transform:none; box-shadow:8px 0 40px rgba(0,0,0,.25); }
    .cp-burger { display:inline-flex; margin-left:-8px; }
    .cp-top { padding:0 12px; padding-top:var(--safe-t); height:calc(var(--top) + var(--safe-t)); background:var(--navy); border-bottom:0; backdrop-filter:none; }
    .cp-top h1 { color:#fff; font-size:1.02rem; }
    .cp-top .cp-iconbtn { color:#fff; }
    .cp-top .cp-iconbtn:hover { background:rgba(255,255,255,.1); }
    .cp-avatar-top { display:none; }
    .cp-content { padding:16px 14px calc(var(--tabbar) + 24px + var(--safe-b)); }
    .cp-content.flush { padding:0; }
    .cp-banner { padding:10px 14px; }

    .cp-tabbar {
        display:flex; position:fixed; left:0; right:0; bottom:0; z-index:50;
        height:calc(var(--tabbar) + var(--safe-b)); padding-bottom:var(--safe-b);
        background:rgba(255,255,255,.96); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-top:1px solid var(--line);
    }
    .cp-tabbar a, .cp-tabbar button { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--muted); font-size:.64rem; font-weight:600; text-decoration:none !important; position:relative; background:none; border:0; font-family:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
    .cp-tabbar a.is-active { color:var(--navy); }
    .cp-tabbar a.is-active::before { content:''; position:absolute; top:0; width:28px; height:3px; border-radius:0 0 3px 3px; background:var(--mint); }
    .cp-tabbar .dot-n { top:6px; right:calc(50% - 22px); }

    .kpis { grid-template-columns:repeat(2, 1fr); gap:10px; }
    .kpi { padding:14px; }
    .kpi .n { font-size:1.35rem; }
    .grid-dash, .grid2 { grid-template-columns:1fr; }
    .eng { grid-template-columns:1fr; }
    .eng-compact { grid-template-columns:1fr 1fr; }
    .card { padding:16px; border-radius:12px; }
    .card-head { margin:-16px -16px 14px; padding:12px 16px; }
    .toolbar .search { flex:1 1 100%; }
    .toolbar .filter { flex:1; }
    .toolbar .filter select { width:100%; }
    .sticky-actions { margin:16px -16px -16px; padding:12px 16px; bottom:calc(var(--tabbar) + var(--safe-b)); }

    /* Tables en cartes */
    .rtable thead { display:none; }
    .rtable, .rtable tbody, .rtable tr, .rtable td { display:block; width:100%; }
    .rtable tr { padding:12px 16px; border-bottom:1px solid var(--line); }
    .rtable td { border:0; padding:2px 0; display:flex !important; justify-content:space-between; gap:12px; font-size:.84rem; }
    .rtable td::before { content:attr(data-label); color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; flex:0 0 auto; }
    .rtable td:first-child { font-size:.95rem; }
    .rtable td:first-child::before { display:none; }
    .rtable tfoot tr { padding:12px 16px; }
    .table th:nth-child(n+4), .table td:nth-child(n+4) { display:flex !important; }

    .board { grid-auto-columns:82vw; }
    .hero-card { padding:20px; border-radius:14px; }
    .hero-card .display { font-size:2rem; }
    .quick { width:100%; }
    .quick a { flex:1; width:auto; }
    .session { flex-wrap:wrap; }
    .session form { flex-direction:row; width:100%; justify-content:flex-end; align-items:center; }
    .media-slot { grid-template-columns:1fr; }
    .ath-head { align-items:flex-start; }
    .ath-head .ph.lg { width:72px; height:90px; }

    /* Messagerie plein écran : liste OU fil */
    .chat { grid-template-columns:1fr; height:calc(100dvh - var(--top) - var(--safe-t) - var(--tabbar) - var(--safe-b)); }
    .chat.has-thread .chat-list { display:none; }
    .chat:not(.has-thread) .chat-thread { display:none; }
    .chat-back { display:inline-flex; margin-left:-8px; }
    .chat.has-thread { position:fixed; inset:0; z-index:80; height:100dvh; padding-top:var(--safe-t); }
    .chat.has-thread .chat-head { padding:10px 12px; }

    .cp-login-wrap { grid-template-columns:1fr; }
    .cp-login-hero { min-height:200px; padding:28px 24px 20px; padding-top:calc(28px + var(--safe-t)); }
    .cp-login-hero { padding-right:130px; }
    .cp-login-hero .mascot { width:96px; top:calc(16px + var(--safe-t)); right:18px; }
    .cp-login-hero .display { font-size:2.1rem; }
    .cp-login-box { border-radius:22px 22px 0 0; padding:30px 22px calc(30px + var(--safe-b)); }
}

@media (display-mode:standalone) {
    .cp-side-foot a[target=_blank] { display:none; }
}

@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { transition:none !important; animation:none !important; }
}

/* -------------------------------------------------------------- Import CSV */
.map-table { display:grid; gap:8px; margin:12px 0; }
.map-row { display:grid; grid-template-columns:minmax(0, 1fr) 24px minmax(0, 1fr); gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#FAF9F6; }
.map-src strong { display:block; font-size:.88rem; }
.map-src small { display:block; color:var(--muted); font-size:.74rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.map-arrow { color:var(--navy); text-align:center; font-weight:700; }
.map-row select { width:100%; font:inherit; font-size:.86rem; padding:8px 10px; border:1px solid var(--line-2); border-radius:8px; background:#fff; }
.map-row select.mapped { border-color:var(--navy); background:var(--navy-soft); color:var(--navy); font-weight:600; }
@media (max-width:640px) { .map-row { grid-template-columns:1fr; } .map-arrow { display:none; } }

/* ===================================================================== CRM */
.crm-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.crm-tabs { display:flex; gap:2px; border-bottom:1px solid var(--line); margin-bottom:18px; overflow-x:auto; scrollbar-width:none; }
.crm-tabs::-webkit-scrollbar { display:none; }
.crm-tabs a { display:inline-flex; align-items:center; gap:7px; padding:11px 14px; font-size:.86rem; font-weight:600; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; text-decoration:none !important; }
.crm-tabs a:hover { color:var(--ink); }
.crm-tabs a.on { color:var(--navy); border-bottom-color:var(--navy); }
.crm-tabs .badge { background:var(--mint); color:var(--navy); border-radius:20px; font-size:.66rem; padding:1px 7px; }
.kpis.compact .kpi { padding:12px 14px; }
.kpis.compact .kpi .n { font-size:1.25rem; }
.weekly { background:linear-gradient(180deg, #fff, #FAF9F6); }
.weekly h2 { display:flex; align-items:center; gap:8px; }
.funnel { display:grid; gap:7px; }
.funnel-row { display:grid; grid-template-columns:130px minmax(0, 1fr) 36px; gap:10px; align-items:center; color:var(--ink); text-decoration:none !important; font-size:.84rem; }
.funnel-row:hover .fl { color:var(--navy); }
.fb { height:12px; background:#ECEAE4; border-radius:6px; overflow:hidden; }
.fill { display:block; height:100%; border-radius:6px; background:#B9B4AA; }
.fill-navy { background:var(--navy); } .fill-mint { background:#2BD48A; } .fill-ok { background:var(--ok); } .fill-warn { background:#E2A20C; } .fill-off { background:var(--err); }
.fn { text-align:right; font-weight:700; color:var(--navy); }
.goal { margin:0 0 8px; font-size:.9rem; }
.inline-form { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0; }
.inline-form input[type=text], .inline-form input[type=date], .inline-form select { font:inherit; font-size:.86rem; padding:7px 10px; border:1px solid var(--line-2); border-radius:8px; background:#fff; }
.sort { color:inherit; text-decoration:none !important; }
.sort.on { color:var(--navy); }
.crm-table td.ck, .crm-table th.ck { width:34px; }
.crm-table input[type=checkbox] { width:17px; height:17px; accent-color:var(--navy); }
.score-chip { display:inline-flex; align-items:center; justify-content:center; min-width:34px; padding:3px 8px; border-radius:20px; font-weight:800; font-size:.76rem; }
.s-hot { background:rgba(25,131,82,.15); color:var(--ok); } .s-warm { background:rgba(226,162,12,.18); color:#8A6200; }
.s-mid { background:#ECEAE4; color:#57534E; } .s-cold { background:rgba(178,58,58,.12); color:var(--err); }
.mail-stats { font-size:.76rem; white-space:nowrap; color:var(--muted); }
.due { color:var(--err); font-weight:700; }
.bulk-bar { position:sticky; top:calc(var(--top) + 6px); z-index:30; display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:var(--navy); color:#fff; padding:10px 14px; border-radius:12px; margin-bottom:12px; box-shadow:0 10px 30px rgba(9,10,144,.25); }
.bulk-bar select { font:inherit; font-size:.84rem; padding:6px 8px; border-radius:8px; border:0; }
.bulk-bar .btn-ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
/* Kanban */
.kanban .board-col { min-height:220px; display:flex; flex-direction:column; }
.kanban .col-drop { flex:1; min-height:60px; border-radius:8px; transition:background .15s; }
.kanban .board-col.over .col-drop { background:rgba(66,254,167,.25); outline:2px dashed var(--mint); }
.kanban .board-card { cursor:grab; }
.kanban .board-card.dragging { opacity:.4; }
.bc-link { color:inherit; text-decoration:none !important; }
.bc-meta { display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin:6px 0 2px; }
.bc-move { display:none; width:100%; margin-top:6px; font:inherit; font-size:.76rem; padding:4px; border:1px solid var(--line-2); border-radius:6px; }
.col-sum { color:var(--navy); font-weight:700; }
@media (hover:none), (max-width:860px) { .bc-move { display:block; } }
/* À faire */
.todo-list li { display:flex; gap:12px; align-items:flex-start; padding:14px 18px; border-bottom:1px solid var(--line); }
.todo-list li.late { background:#FFF8F7; }
.todo-list li.today { background:#F6FFFB; }
.ti-ic { margin-top:2px; }
.ti-body { flex:1; min-width:0; font-size:.88rem; }
.ti-body > div { margin:3px 0; }
.ti-act { display:flex; gap:6px; flex-wrap:wrap; margin:0; }
/* Fiche */
.crm-hero { display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; align-items:flex-start; }
.ch-main { display:flex; gap:16px; align-items:center; min-width:0; }
.ch-main h2 { margin:0 0 2px; font-size:1.3rem; }
.ch-main p { margin:0 0 8px; }
.ch-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.mail-line { flex-basis:100%; margin:0; }
.crm-hero .alert { flex-basis:100%; margin:0; }
.score-ring { width:64px; height:64px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; flex:0 0 auto; border:4px solid currentColor; }
.score-ring b { font-family:var(--display); font-size:1.35rem; line-height:1; }
.score-ring small { font-size:.56rem; text-transform:uppercase; letter-spacing:.1em; }
.timeline { list-style:none; margin:0; padding:0; }
.timeline li { display:flex; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); font-size:.85rem; }
.timeline li:last-child { border-bottom:0; }
.timeline .tl-dot { flex:0 0 24px; height:24px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; }
.timeline .tl-mail .tl-dot { background:var(--ok); }
.timeline .tl-err .tl-dot { background:var(--err); }
.timeline .tl-open { background:#FFFDF4; }
.timeline .pre { margin-top:6px; font-size:.82rem; }
.inline-del { display:inline; margin:0; }
.kind-pick.sm span { padding:6px 10px; font-size:.76rem; }
.compose .hint code { font-size:.78em; }
.card-head-row { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:12px; }
.card-head-row h2 { margin:0; color:var(--navy); font-size:1.05rem; }
.tpl { margin-bottom:12px; }
.tpl-head { display:flex; justify-content:space-between; gap:10px; align-items:baseline; margin-bottom:6px; }
.tpl-body { margin-bottom:10px; }
.seq-steps { margin:6px 0 10px; padding-left:18px; font-size:.84rem; }
.seq-editor { display:grid; gap:6px; margin:10px 0 14px; }
.seq-row { display:grid; grid-template-columns:70px 1.2fr 1.4fr 2fr; gap:6px; }
.seq-row input, .seq-row select { width:100%; font:inherit; font-size:.82rem; padding:7px 8px; border:1px solid var(--line-2); border-radius:6px; }
.pill-warn { background:rgba(226,162,12,.18); color:#8A6200; }
@media (max-width:860px) {
    .funnel-row { grid-template-columns:96px minmax(0, 1fr) 30px; font-size:.78rem; }
    .seq-row { grid-template-columns:60px 1fr; }
    .crm-table td.ck { display:inline-flex !important; justify-content:flex-start; }
    .crm-table td.ck::before { display:none; }
    .bulk-bar { top:calc(var(--top) + var(--safe-t) + 4px); }
}

/* ------------------------------------------------------------- Sécurité */
#securite h3 { display:flex; align-items:center; gap:8px; flex-wrap:wrap; text-transform:none; letter-spacing:0; font-size:.95rem; }
.codes-box { background:var(--mint-soft); border:1px solid var(--mint); border-radius:10px; padding:14px; margin:10px 0; }
.codes { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:6px; margin:10px 0; }
.codes code { display:block; text-align:center; font-size:1rem; letter-spacing:.08em; background:#fff; padding:6px; border-radius:6px; }
.qr-wrap { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin:10px 0 14px; }
#mfa-qr { width:170px; height:170px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:6px; }
#mfa-qr svg { width:100%; height:100%; }
.secret { font-size:.9rem; letter-spacing:.06em; word-break:break-all; }
.code-input { font-size:1.3rem !important; letter-spacing:.2em; text-align:center; max-width:200px; }
.steps-list { padding-left:18px; margin:8px 0; }
.pk-add { margin:10px 0; }
.or { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.8rem; margin:16px 0 10px; }
.or::before, .or::after { content:''; flex:1; height:1px; background:var(--line); }
.pw-field input { flex:1; min-width:180px; font-family:ui-monospace, Menlo, monospace; }
@media print { .cp-side, .cp-top, .cp-tabbar, .card:not(#securite) { display:none !important; } }

/* ------------------------------------------------- Contenus publics du site */
.site-subnav { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0 0 14px; padding:8px 10px; background:var(--navy-soft); border-radius:10px; }
.ss-label { display:inline-flex; align-items:center; gap:6px; font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--navy); margin-right:4px; }
.site-subnav a { font-size:.8rem; font-weight:600; padding:6px 11px; border-radius:20px; background:#fff; color:var(--navy); text-decoration:none !important; border:1px solid transparent; }
.site-subnav a:hover { border-color:var(--navy); }
.site-subnav a.on { background:var(--navy); color:#fff; }
.cms-list { display:grid; gap:8px; }
.cms-row { display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 14px; }
.cms-row.off { background:#FAF9F6; }
.cms-row.off .cms-thumb { opacity:.5; }
.cms-order { display:flex; flex-direction:column; gap:2px; }
.cms-order form { margin:0; }
.cp-iconbtn.sm { width:28px; height:24px; border-radius:6px; font-size:.9rem; color:var(--muted); }
.cp-iconbtn.sm:hover:not([disabled]) { background:var(--navy-soft); color:var(--navy); }
.cp-iconbtn[disabled] { opacity:.25; cursor:default; }
.cms-thumb { flex:0 0 56px; height:56px; border-radius:8px; overflow:hidden; background:var(--navy); display:flex; align-items:center; justify-content:center; text-decoration:none !important; }
.cms-thumb img { width:100%; height:100%; object-fit:cover; }
.cms-thumb span { color:var(--mint); font-family:var(--display); font-weight:800; }
.cms-main { flex:1; min-width:0; }
.cms-main .strong { font-size:.95rem; }
.cms-meta { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:.8rem; color:var(--ink); margin-top:3px; }
.cms-meta small { color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; margin-right:3px; }
.cms-act { display:flex; gap:8px; align-items:center; }
.cms-act form { margin:0; }
.pill-btn { font:inherit; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:5px 10px; border-radius:20px; border:1px solid var(--line-2); background:#fff; color:var(--muted); cursor:pointer; }
.pill-btn.on { background:rgba(25,131,82,.12); border-color:rgba(25,131,82,.35); color:var(--ok); }
.pill-btn:hover:not([disabled]) { border-color:var(--navy); }
.media-slot.simple { grid-template-columns:200px minmax(0, 1fr); }
.media-prev.og { aspect-ratio:1200/630; }
.media-ctl input[type=text].ms-src { width:100%; font:inherit; font-size:.86rem; padding:8px 10px; border:1px solid var(--line-2); border-radius:6px; }
.cms-form textarea { min-height:auto; }
.children { border:1px solid var(--line); border-radius:10px; padding:14px; margin-top:14px; }
.child-rows { display:grid; gap:6px; margin-bottom:10px; }
.child-row { display:grid; grid-template-columns:90px minmax(0, 2fr) minmax(0, 1fr) 90px 28px; gap:6px; align-items:center; }
.child-row input { width:100%; font:inherit; font-size:.86rem; padding:7px 9px; border:1px solid var(--line-2); border-radius:6px; }
.page-card.disabled { opacity:.45; pointer-events:none; }
@media (max-width:860px) {
    .cms-row { flex-wrap:wrap; }
    .cms-act { width:100%; justify-content:flex-end; }
    .media-slot.simple { grid-template-columns:1fr; }
    .child-row { grid-template-columns:1fr 1fr; }
}
