/* ============================================================
   BACK OFFICE EXPÉRIA PARK — Charte officielle (inspirée signage)
   Sidebar + design tokens + composants sobres.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Londrina+Solid:wght@400;900&family=Raleway:wght@400;500;600;700;800;900&display=swap');

:root {
  --brun-fonce: #553421; --brun-tres-fonce: #402611;
  --sable-clair: #ffedc4; --sable-dore: #f2d49c;
  --corail: #e96646; --corail-fonce: #cf5039;
  --danger: #e14249; --warning: #eea327; --success: #6c974c; --info: #6a79a6;
  --danger-soft: rgba(225,66,73,.10); --warning-soft: rgba(238,163,39,.14);
  --success-soft: rgba(108,151,76,.12); --info-soft: rgba(106,121,166,.12);
  --bg: #fefcf7; --bg-soft: #faf6ec; --bg-elev: #fff; --bg-sidebar: #fdf3da; --border: #ece6d8;
  --text: var(--brun-tres-fonce); --text-soft: var(--brun-fonce); --text-mute: #a08b6f;
  --radius: 8px; --radius-lg: 12px;
  --shadow-sm: 0 1px 2px rgba(85,52,33,.06); --shadow: 0 2px 12px rgba(85,52,33,.08); --shadow-lg: 0 10px 40px rgba(85,52,33,.15);
  --font-display: 'Londrina Solid', Georgia, serif; --font-body: 'Raleway', -apple-system, sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  font-family: var(--font-body); margin: 0; background: var(--bg); color: var(--text);
  font-size: 14px; line-height: 1.5; -webkit-font-smoothing: antialiased;
  background-image: repeating-linear-gradient(45deg, transparent, transparent 35px, rgba(212,165,116,.04) 35px, rgba(212,165,116,.04) 36px);
}
a { color: var(--corail); text-decoration: none; transition: color .15s; }
a:hover { color: var(--corail-fonce); }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: 1.05; margin: 0; color: var(--brun-tres-fonce); letter-spacing: .01em; }
h1 { font-size: 1.9rem; } h2 { font-size: 1.25rem; } h3 { font-size: 1rem; }
.muted { color: var(--text-mute); }
code { font-family: 'SF Mono', Menlo, monospace; font-size: .82em; background: var(--bg-soft); padding: 1px 5px; border-radius: 3px; color: var(--brun-fonce); }
.ic { vertical-align: -.18em; flex-shrink: 0; }

/* Drapeaux */
.flag { border-radius: 3px; box-shadow: 0 0 0 1px rgba(85,52,33,.15); vertical-align: -.2em; display: inline-block; }
.flag--txt { display: inline-flex; align-items: center; justify-content: center; background: var(--sable-dore); color: var(--brun-fonce); font-size: .6rem; font-weight: 800; }

/* ── LAYOUT ── */
.app { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.sidebar { background: var(--bg-sidebar); border-right: 1px solid #ecddb8; padding: 1.4rem 0; display: flex; flex-direction: column; position: relative; }
.sidebar__logo { padding: 0 1.25rem 1rem; text-align: center; }
.sidebar__logo img { width: 100%; max-width: 150px; }
.sidebar__tag { font-family: var(--font-display); font-size: .7rem; color: var(--brun-fonce); letter-spacing: .22em; margin-top: .4rem; opacity: .6; }
.sidebar__sep { border-top: 2px dashed var(--corail); opacity: .22; margin: 0 1.25rem 1rem; }
.sidebar__nav { flex: 1; overflow-y: auto; }
.sidebar__group { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--text-mute); padding: 1rem 1.5rem .35rem; }
.sidebar__nav a { display: flex; align-items: center; gap: .65rem; padding: .55rem 1.5rem; color: var(--brun-fonce); font-size: .9rem; font-weight: 600; border-left: 3px solid transparent; cursor: pointer; transition: all .15s; }
.sidebar__nav a:hover { color: var(--brun-tres-fonce); background: rgba(255,237,196,.5); }
.sidebar__nav a.is-active { color: var(--corail-fonce); background: rgba(233,102,70,.12); border-left-color: var(--corail); }
.sidebar__nav a .ic { opacity: .85; }
.sidebar__nav a .soon { margin-left: auto; font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; background: var(--sable-dore); color: var(--brun-fonce); padding: 1px 6px; border-radius: 999px; }
.sidebar__user { padding: .9rem 1.25rem; border-top: 1px solid #ecddb8; display: flex; align-items: center; gap: .6rem; background: rgba(255,237,196,.4); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--corail); color: var(--sable-clair); display: flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; box-shadow: 0 2px 0 var(--corail-fonce); }
.sidebar__user-info { flex: 1; min-width: 0; }
.sidebar__user-name { font-weight: 700; color: var(--brun-tres-fonce); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar__user-role { color: var(--text-mute); font-size: .72rem; }
.sidebar__user a { color: var(--text-mute); display: flex; }
.sidebar__user a:hover { color: var(--corail-fonce); }

.main { padding: 1.6rem 2.1rem; overflow-x: auto; min-width: 0; }

/* ── EN-TÊTE DE PAGE ── */
.page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.4rem; padding-bottom: 1rem; border-bottom: 2px dashed var(--sable-dore); gap: 1.25rem; flex-wrap: wrap; }
.page-header__content { min-width: 240px; flex: 1; }
.page-header__subtitle { color: var(--text-mute); font-size: .9rem; margin-top: .3rem; font-weight: 500; }
.page-header__actions { display: flex; gap: .5rem; flex-wrap: wrap; }

/* ── BOUTONS ── */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; padding: .52rem .95rem; background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius); color: var(--brun-fonce); font-size: .87rem; font-weight: 700; cursor: pointer; transition: all .15s; font-family: inherit; text-decoration: none; white-space: nowrap; }
.btn:hover { background: var(--bg-soft); border-color: var(--sable-dore); color: var(--brun-tres-fonce); }
.btn:focus-visible { outline: none; border-color: var(--corail); box-shadow: 0 0 0 3px rgba(233,102,70,.15); }
.btn .ic { width: 16px; height: 16px; }
.btn--primary { background: rgba(233,102,70,.10); color: var(--corail-fonce); border-color: rgba(233,102,70,.38); }
.btn--primary:hover { background: rgba(233,102,70,.16); border-color: var(--corail); color: var(--corail-fonce); }
.btn--danger { background: var(--danger-soft); color: var(--danger); border-color: rgba(225,66,73,.40); }
.btn--danger:hover { background: rgba(225,66,73,.16); border-color: var(--danger); color: var(--danger); }
.btn--success { background: var(--success-soft); color: var(--success); border-color: rgba(108,151,76,.42); }
.btn--success:hover { background: rgba(108,151,76,.18); border-color: var(--success); color: var(--success); }
.btn--ghost { background: transparent; border-color: transparent; }
.btn--ghost:hover { background: rgba(85,52,33,.06); border-color: transparent; }
.btn--cta { background: var(--corail); color: #fff; border-color: var(--corail); font-weight: 800; }
.btn--cta:hover { background: var(--corail-fonce); border-color: var(--corail-fonce); color: #fff; }
.btn--warn { background: var(--warning); color: #4a2f0c; border-color: var(--warning); font-weight: 700; }
.btn--warn:hover { background: #e2960f; border-color: #e2960f; color: #3a2408; }
.btn--sm { padding: .34rem .6rem; font-size: .8rem; }
.btn--block { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── CHAMPS ── */
.field { margin-bottom: 1rem; }
.field > label { display: block; font-size: .74rem; font-weight: 800; color: var(--brun-fonce); margin-bottom: .35rem; text-transform: uppercase; letter-spacing: .07em; }
.field small, .hint { display: block; color: var(--text-mute); font-size: .78rem; margin-top: .3rem; font-weight: 500; }
input[type=text], input[type=email], input[type=password], input[type=number], input[type=url], input[type=search], input[type=date], textarea, select {
  width: 100%; padding: .55rem .75rem; border: 1px solid var(--border); border-radius: var(--radius); font-size: .9rem; font-family: inherit; background: var(--bg-elev); color: var(--text); transition: border-color .15s, box-shadow .15s;
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--corail); box-shadow: 0 0 0 3px rgba(233,102,70,.15); }
textarea { resize: vertical; min-height: 70px; }
.field-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .field-grid-2 { grid-template-columns: 1fr; } }

/* ── CARTES / STATS ── */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.card { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.card__body { padding: 1.1rem 1.25rem; }
.stat { border-left: 4px solid var(--corail); }
.stat.amber { border-left-color: var(--warning); }
.stat.green { border-left-color: var(--success); }
.stat .num { font-family: var(--font-display); font-size: 2rem; line-height: 1; color: var(--brun-tres-fonce); }
.stat .num small { font-size: .9rem; color: var(--text-mute); }
.stat .lbl { color: var(--text-mute); font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; margin-top: .3rem; }

/* ── TOOLBAR / FILTRES ── */
.toolbar { display: flex; gap: .5rem; margin-bottom: 1.1rem; flex-wrap: wrap; align-items: center; }
.toolbar input, .toolbar select { width: auto; }
.toolbar .search { flex: 1; min-width: 200px; max-width: 340px; }
.toolbar__spacer { flex: 1; }

/* ── TABLES ── */
.table-wrap { background: #fff; border: 1px solid rgba(85,52,33,.10); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 24px rgba(64,38,17,.035); margin-bottom: 1.25rem; }
.table { width: 100%; border-collapse: separate; border-spacing: 0; }
.table th { background: rgba(255,237,196,.42); color: var(--brun-fonce); font-size: .7rem; font-weight: 900; text-transform: uppercase; letter-spacing: .045em; text-align: left; padding: .78rem .9rem; border-bottom: 1px solid rgba(85,52,33,.10); white-space: nowrap; }
.table td { color: var(--brun-tres-fonce); font-size: .86rem; font-weight: 600; padding: .8rem .9rem; border-bottom: 1px solid rgba(85,52,33,.075); vertical-align: middle; }
.table tr:last-child td { border-bottom: 0; }
.table tbody tr { transition: background-color .12s; }
.table tbody tr.clic { cursor: pointer; }
.table tbody tr:hover { background: rgba(255,237,196,.20); }
.table .actions { display: flex; gap: .35rem; justify-content: flex-end; flex-wrap: wrap; }
.table .cell-mute { color: var(--text-mute); font-weight: 500; }
.td-comment { max-width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-mute); font-weight: 500; }
.table-empty { text-align: center; color: var(--text-mute); padding: 2.5rem; font-weight: 500; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: .9rem; color: var(--text-mute); font-size: .85rem; }

/* Note badge (score /10) */
.note { display: inline-grid; place-items: center; min-width: 34px; height: 28px; border-radius: 8px; font-weight: 800; color: #fff; padding: 0 6px; }
.note-haute { background: var(--success); }
.note-moyenne { background: var(--warning); color: var(--brun-tres-fonce); }
.note-basse { background: var(--danger); }

/* Badges */
.badge { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.badge--green { background: var(--success-soft); color: var(--success); }
.badge--sand { background: rgba(233,102,70,.12); color: var(--corail-fonce); }
.badge--mute { background: #efe7d6; color: #8a6f5c; }
.badge--info { background: var(--info-soft); color: var(--info); }
.badge--role { background: var(--brun-fonce); color: var(--sable-clair); }
.badge--star { background: var(--warning-soft); color: #8a6812; }

/* ── ALERTES ── */
.alert { padding: .85rem 1.1rem; border-radius: var(--radius); margin-bottom: 1rem; font-size: .88rem; border-left: 4px solid; background: var(--bg-elev); }
.alert--info { background: rgba(255,237,196,.6); color: var(--brun-fonce); border-color: var(--corail); }
.alert--success { background: var(--success-soft); border-color: var(--success); color: #3f5e2e; }

/* ── MODULE À VENIR ── */
.soon-panel { text-align: center; padding: 3.5rem 2rem; color: var(--text-mute); }
.soon-panel .ic { width: 46px; height: 46px; color: var(--sable-dore); margin-bottom: 1rem; }
.soon-panel h2 { color: var(--brun-fonce); margin-bottom: .6rem; }
.soon-panel p { max-width: 460px; margin: 0 auto .4rem; font-weight: 500; }

/* ── LOGIN ── */
.auth-bg { min-height: 100vh; margin: 0; display: flex; align-items: center; justify-content: center; padding: 2rem; background: var(--brun-fonce);
  background-image: radial-gradient(ellipse at top, rgba(212,165,116,.2), transparent 60%), radial-gradient(ellipse at bottom, rgba(233,102,70,.1), transparent 60%), repeating-linear-gradient(45deg, transparent, transparent 30px, rgba(255,237,196,.03) 30px, rgba(255,237,196,.03) 31px); }
.auth-card { background: var(--bg-elev); border-radius: var(--radius-lg); padding: 2.5rem 2.25rem; box-shadow: 0 20px 60px rgba(0,0,0,.3); width: min(420px, 92vw); position: relative; overflow: hidden; }
.auth-card::before { content: ""; position: absolute; top: -30px; right: -30px; width: 100px; height: 100px; background: var(--corail); transform: rotate(45deg); opacity: .1; }
.auth-card .logo { text-align: center; margin-bottom: 1.5rem; }
.auth-card .logo img { max-width: 180px; }
.auth-card h1 { text-align: center; font-size: 1.6rem; margin-bottom: .2rem; }
.auth-card .sub { text-align: center; color: var(--text-mute); margin-bottom: 1.6rem; font-weight: 500; }
.auth-card .field label { text-transform: none; letter-spacing: 0; font-size: .8rem; }
.auth-error { color: var(--danger); font-weight: 700; margin-top: .8rem; text-align: center; }

/* ── DRAWER (volet latéral) ── */
.drawer-overlay { position: fixed; inset: 0; background: rgba(64,38,17,.45); z-index: 40; backdrop-filter: blur(1px); }
.drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(640px, 100vw); background: var(--bg); z-index: 50; box-shadow: -12px 0 40px rgba(0,0,0,.25); display: flex; flex-direction: column; }
.drawer.large { width: min(920px, 100vw); }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.4rem; background: var(--brun-fonce); color: var(--sable-clair); }
.drawer-head h2 { color: var(--sable-clair); font-size: 1.2rem; }
.drawer-close { background: none; border: none; color: var(--sable-clair); cursor: pointer; display: flex; padding: .3rem; border-radius: 6px; }
.drawer-close:hover { background: rgba(255,255,255,.12); }
.drawer-body { flex: 1; overflow-y: auto; padding: 1.4rem; }
.drawer-foot { padding: .9rem 1.4rem; border-top: 1px solid var(--border); background: var(--bg-elev); display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }
.drawer-foot .note-txt { color: var(--text-mute); font-size: .82rem; font-weight: 500; }

/* Détail réponse */
.detail-section { margin-bottom: 1.2rem; }
.detail-section h3 { color: var(--corail-fonce); border-bottom: 2px dashed var(--sable-dore); padding-bottom: .3rem; margin-bottom: .5rem; }
.detail-row { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid #faf1dd; }
.detail-row dt { color: var(--text-mute); margin: 0; font-weight: 500; }
.detail-row dd { margin: 0; font-weight: 700; text-align: right; }
.detail-stars { color: var(--warning); letter-spacing: 1px; }
.detail-stars .off { color: rgba(85,52,33,.2); }
.detail-comment { background: var(--bg-soft); border-radius: 8px; padding: .6rem .85rem; margin: .4rem 0; font-style: italic; font-weight: 500; }

/* Formulaires drawer */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
.checks { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; padding: .3rem 0; }
.checks label { display: flex; gap: .45rem; align-items: center; font-weight: 600; font-size: .88rem; }
.checks input { width: auto; accent-color: var(--corail); }
.sep { border: none; border-top: 2px dashed var(--sable-dore); opacity: .5; margin: 1.3rem 0; }

/* ── ÉDITEUR D'ENQUÊTE ── */
.ed-etape { background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--radius-lg); margin-bottom: .9rem; overflow: hidden; }
.ed-etape-head { display: flex; align-items: center; gap: .7rem; padding: .8rem 1rem; cursor: pointer; background: var(--bg-soft); }
.ed-etape-head h3 { flex: 1; }
.ed-etape-body { padding: 1rem; display: none; }
.ed-etape.open .ed-etape-body { display: block; }
.ed-q { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: .55rem .8rem; margin: .5rem 0; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.ed-q .qtype { font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; background: var(--brun-fonce); color: var(--sable-clair); border-radius: 5px; padding: .1rem .45rem; }
.ed-q .qlabel { flex: 1; min-width: 140px; font-weight: 600; }
.ed-q .qname { color: var(--text-mute); font-size: .76rem; }
.ed-actions { display: flex; gap: .25rem; }
.langtabs { display: flex; gap: .4rem; margin: .5rem 0 .9rem; flex-wrap: wrap; }
.langtab { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .75rem; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-elev); cursor: pointer; font-weight: 700; font-size: .82rem; }
.langtab.on { background: var(--corail); border-color: var(--corail); color: var(--sable-clair); }
.mini { padding: .28rem .55rem; font-size: .76rem; }

/* ── ANALYSE ── */
.analyse-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 900px) { .analyse-grid { grid-template-columns: 1fr; } }

.delta { display: inline-block; font-size: .78rem; font-weight: 800; padding: .1rem .5rem; border-radius: 999px; margin-top: .35rem; }
.delta--up { background: var(--success-soft); color: var(--success); }
.delta--down { background: var(--danger-soft); color: var(--danger); }
.delta--flat { background: #efe7d6; color: var(--text-mute); }

/* Barres horizontales */
.hbar { display: grid; grid-template-columns: 190px 1fr auto; gap: .7rem; align-items: center; margin-bottom: .5rem; }
.hbar__lbl { font-size: .84rem; font-weight: 600; color: var(--brun-fonce); }
.hbar__track { background: var(--bg-soft); border-radius: 999px; height: 14px; overflow: hidden; }
.hbar__fill { height: 100%; border-radius: 999px; transition: width .4s; }
.hbar__val { font-size: .84rem; white-space: nowrap; color: var(--text-soft); }

/* Barre empilée NPS */
.stacked { display: flex; height: 26px; border-radius: 8px; overflow: hidden; background: var(--bg-soft); }
.stacked > div { height: 100%; }
.stacked-legend { display: flex; gap: 1.2rem; flex-wrap: wrap; margin-top: .7rem; font-size: .8rem; color: var(--text-soft); font-weight: 600; }
.stacked-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: .35rem; vertical-align: -1px; }

/* Distribution mini (1-5) */
.dist { display: inline-flex; align-items: flex-end; gap: 2px; height: 26px; width: 60px; }
.dist__b { flex: 1; background: var(--sable-dore); border-radius: 2px 2px 0 0; min-height: 3px; }

/* Comparaison des parcs */
.parc-row { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid #f3e6c8; }
.parc-row:last-child { border-bottom: 0; }
.parc-row__nom { font-weight: 800; color: var(--brun-tres-fonce); }
.parc-row__nps { font-weight: 700; color: var(--text-soft); font-size: .85rem; }
.parc-row__meta { color: var(--text-mute); font-size: .82rem; text-align: right; }

/* Question par question */
.qrow { display: grid; grid-template-columns: 1fr 160px auto 90px; gap: .8rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid #faf1dd; }
.qrow:last-child { border-bottom: 0; }
.qrow__lbl { font-size: .85rem; font-weight: 600; }
.qrow__val { font-size: .84rem; white-space: nowrap; }
.qrow__dist { display: flex; align-items: center; gap: .4rem; }
@media (max-width: 760px) { .qrow { grid-template-columns: 1fr auto; } .qrow__bar, .qrow__dist { display: none; } .hbar { grid-template-columns: 120px 1fr auto; } }

/* ── ANALYSE : typologie, sections, rapport ── */
.lbl-mini { color: var(--text-mute); font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 800; }
.report-header { display: none; align-items: center; gap: 1rem; padding-bottom: .8rem; border-bottom: 3px solid var(--corail); margin-bottom: 1rem; }
.report-logo { height: 46px; }
.report-title { font-family: var(--font-display); font-size: 1.5rem; color: var(--brun-tres-fonce); }
.report-meta { color: var(--text-mute); font-weight: 600; font-size: .9rem; }
.report-section { margin-bottom: 1.5rem; }
.report-h2 { font-family: var(--font-display); font-size: 1.3rem; color: var(--brun-fonce); border-bottom: 2px dashed var(--sable-dore); padding-bottom: .4rem; margin-bottom: .9rem; }

.pies-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1rem; }
.pie-titre { font-size: .95rem; text-align: center; margin-bottom: .5rem; }
.pie-wrap { display: flex; gap: .6rem; align-items: center; }
.pie-wrap svg { flex-shrink: 0; }
.pie-legende { display: flex; flex-direction: column; gap: .18rem; min-width: 0; font-size: .74rem; }
.pie-leg { display: flex; align-items: center; gap: .35rem; }
.pie-leg i { width: 9px; height: 9px; border-radius: 2px; flex-shrink: 0; }
.pie-leg__t { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-soft); }
.pie-leg__n { font-weight: 800; color: var(--brun-fonce); }

/* Tableau détail par section (Période / N-1 / Groupe) */
.qtable-wrap { border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 1rem; }
.qtable-head { display: flex; justify-content: space-between; align-items: center; background: var(--bg-soft); padding: .6rem .9rem; border-bottom: 1px solid var(--border); flex-wrap: wrap; gap: .5rem; }
.qtable-title { font-family: var(--font-display); font-size: 1.05rem; color: var(--brun-fonce); }
.qtable-cols { display: flex; gap: 0; }
.qtable-cols span { width: 70px; text-align: center; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); }
.qline { display: flex; justify-content: space-between; align-items: center; padding: .5rem .9rem; border-bottom: 1px solid #faf1dd; gap: .5rem; }
.qline:last-child { border-bottom: 0; }
.qline__lbl { font-size: .85rem; font-weight: 600; flex: 1; min-width: 0; }
.qline__vals { display: flex; gap: 0; flex-shrink: 0; }
.qline__vals span { width: 70px; text-align: center; font-size: .9rem; }

/* ═══ IMPRESSION / PDF ═══ */
@media print {
  @page { size: A4; margin: 12mm 10mm; }
  body { background: #fff !important; font-size: 11px; }
  body::before { display: none; }
  .sidebar, .no-print, .drawer, .drawer-overlay, .toolbar { display: none !important; }
  .app { display: block; }
  .main { padding: 0; overflow: visible; }
  .report-header { display: flex !important; }
  .card { box-shadow: none !important; border: 1px solid #e4dcc9 !important; break-inside: avoid; }
  .cards { gap: .5rem; }
  .report-section { break-inside: avoid; }
  .report-break { break-before: page; }
  .pies-grid { grid-template-columns: repeat(4, 1fr); }
  .analyse-grid { grid-template-columns: 1fr 1fr; }
  svg { max-width: 100%; }
  a[href]::after { content: ""; }
}

/* ── AVIS EN LIGNE ── */
.stars-ro { color: var(--sable-dore); letter-spacing: 1px; font-size: .95rem; }
.stars-ro .star { color: #e4dcc9; }
.stars-ro .star.on { color: var(--warning); }
.avis-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1rem 1.1rem; margin-bottom: .8rem; box-shadow: var(--shadow-sm); }
.avis-head { display: flex; align-items: center; gap: .7rem; }
.avis-photo { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.avis-meta { flex: 1; min-width: 0; }
.avis-auteur { font-weight: 800; color: var(--brun-tres-fonce); }
.avis-sub { font-size: .8rem; color: var(--text-soft); display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin-top: .1rem; }
.avis-texte { margin: .7rem 0 .3rem; font-size: .92rem; line-height: 1.5; color: var(--text); }
.avis-reponse { background: var(--sable-clair); border-radius: var(--radius); padding: .6rem .8rem; font-size: .87rem; margin-top: .5rem; color: var(--brun-fonce); }
.avis-actions { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .8rem; }

/* ── AVIS : vue liste, segmented, badges ── */
.avis-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .8rem; flex-wrap: wrap; }
.segmented { display: inline-flex; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 999px; padding: 2px; }
.segmented button { border: 0; background: transparent; padding: .35rem .9rem; border-radius: 999px; font-weight: 700; font-size: .82rem; color: var(--text-soft); cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; }
.segmented button.on { background: var(--surface); color: var(--brun-fonce); box-shadow: var(--shadow-sm); }

.avis-table td { vertical-align: middle; }
.avis-table .avis-photo, .avis-table .avatar { width: 30px; height: 30px; }
.avis-extrait { max-width: 320px; font-size: .84rem; }
.avis-neuf { background: rgba(233,102,70,.05); }
tr.avis-neuf td:first-child { box-shadow: inset 3px 0 0 var(--corail); }
.badge--new { background: var(--corail); color: #fff; }
.badge--info { background: #e6ebf5; color: var(--info); }

/* ── AVIS : vue liste, cartes en grille, pagination ── */
.avis-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .8rem; flex-wrap: wrap; }
.segmented { display: inline-flex; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 999px; padding: 2px; }
.segmented button { border: 0; background: transparent; padding: .35rem .9rem; border-radius: 999px; font-weight: 700; font-size: .82rem; color: var(--text-soft); cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; }
.segmented button.on { background: var(--surface); color: var(--brun-fonce); box-shadow: var(--shadow-sm); }
.avis-table td { vertical-align: middle; }
.avis-table .avis-photo, .avis-table .avatar { width: 30px; height: 30px; }
.avis-extrait { max-width: 320px; font-size: .84rem; }
.avis-neuf { background: rgba(233,102,70,.05); }
tr.avis-neuf td:first-child { box-shadow: inset 3px 0 0 var(--corail); }
.badge--new { background: var(--corail); color: #fff; }
.badge--info { background: #e6ebf5; color: var(--info); }
.avis-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; align-items: start; }
.avis-cards .avis-card { margin: 0; display: flex; flex-direction: column; }
.avis-badges { display: flex; gap: .3rem; flex-wrap: wrap; margin: .5rem 0; }
.avis-clic { cursor: pointer; transition: box-shadow .15s, background .15s; }
.avis-clic:hover { box-shadow: var(--shadow-md); }
tr.avis-clic:hover { background: var(--bg-soft); }
.avis-pagination { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin-top: 1rem; flex-wrap: wrap; }
.avis-pagination .pagin { display: inline-flex; align-items: center; gap: .6rem; }
.avis-pagination .avis-pp { width: auto; min-width: 0; flex: 0 0 auto; }
.avis-pagination .avis-pagin-page { font-weight: 700; white-space: nowrap; }
.avis-pagination .avis-pagin-total { font-size: .82rem; white-space: nowrap; margin-left: .2rem; }
.avis-flag { font-size: 1rem; vertical-align: middle; }
.avis-flag-txt { font-size: .78rem; color: var(--text-mute); }
.btn--info { background: #e6ebf5; color: var(--info); border-color: transparent; }

/* ── Sélecteur d'établissement (sidebar) ── */
.sidebar__parc { margin: 0 1.25rem 1rem; }
.sidebar__parc label { display: block; font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--corail); margin-bottom: .3rem; }
.sidebar__parc .parc-field { position: relative; }
.sidebar__parc .parc-field::after { content: ''; position: absolute; right: .7rem; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--brun-fonce); border-bottom: 2px solid var(--brun-fonce); transform: translateY(-70%) rotate(45deg); pointer-events: none; opacity: .6; }
.sidebar__parc select { width: 100%; padding: .55rem 2rem .55rem .7rem; border: 1.5px solid #e6d3a8; border-radius: 10px; background: var(--bg-elev); font-weight: 700; color: var(--brun-fonce); font-size: .9rem; cursor: pointer; appearance: none; -webkit-appearance: none; box-shadow: 0 1px 2px rgba(80,50,20,.05); }
.sidebar__parc select:hover { border-color: var(--corail); }
.sidebar__parc select:focus { outline: none; border-color: var(--corail); box-shadow: 0 0 0 3px rgba(233,102,70,.15); }

/* ── Modale (pop-up) ── */
.modal-overlay { position: fixed; inset: 0; background: rgba(64,38,17,.45); z-index: 60; backdrop-filter: blur(2px); display: flex; align-items: center; justify-content: center; padding: 1.2rem; }
.modal { width: min(680px, 100%); max-height: 90vh; background: var(--bg); border-radius: var(--radius-lg); box-shadow: 0 24px 70px rgba(0,0,0,.35); display: flex; flex-direction: column; overflow: hidden; animation: modalIn .18s ease; }
.modal.large { width: min(920px, 100%); }
@keyframes modalIn { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.3rem; background: var(--brun-fonce); color: var(--sable-clair); }
.modal-head h2 { color: var(--sable-clair); font-size: 1.15rem; }
.modal-body { flex: 1; overflow-y: auto; padding: 1.3rem; }
.modal-foot { padding: .85rem 1.3rem; border-top: 1px solid var(--border); background: var(--bg-elev); display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }

/* ── Traduction repliable ── */
.avis-trad { margin-top: .4rem; }
.avis-trad summary { cursor: pointer; font-size: .8rem; color: var(--info); font-weight: 700; display: inline-flex; align-items: center; gap: .3rem; list-style: none; }
.avis-trad summary::-webkit-details-marker { display: none; }
.avis-trad[open] summary { margin-bottom: .2rem; }

/* ── Vérification (mini-formulaire dans la popup) ── */
.verif-box { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius); padding: .8rem; margin: .2rem 0 .8rem; }

/* ── Version (bas de sidebar) ── */
.sidebar__version { display: block; width: calc(100% - 2.5rem); margin: .6rem 1.25rem 0; padding: .4rem .6rem; border: 0; background: transparent; color: var(--text-mute); font-size: .72rem; font-weight: 700; letter-spacing: .02em; cursor: pointer; border-radius: 8px; text-align: center; transition: background .15s, color .15s; }
.sidebar__version:hover { background: rgba(85,52,33,.06); color: var(--brun-fonce); }

/* ── Bandeau de mise à jour ── */
.update-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; gap: 1rem; padding: .6rem 1rem; background: var(--corail); color: #fff; font-weight: 600; font-size: .9rem; box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.update-banner button { border: 0; background: #fff; color: var(--corail); font-weight: 800; padding: .4rem .9rem; border-radius: 999px; cursor: pointer; font-size: .85rem; }
.update-banner button:hover { filter: brightness(.97); }

/* Éditeur : héritage du socle, masquage et insertion précise */
.ed-etape.is-locked, .ed-q.is-locked { border-left: 3px solid var(--sable-fonce, #d9b96e); }
.ed-etape.is-masked, .ed-q.is-masked { opacity: .62; background: repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(90,70,50,.035) 8px, rgba(90,70,50,.035) 16px); }
.ed-insert-bar { display: flex; gap: .35rem; justify-content: center; margin: .25rem 0; opacity: .72; }
.ed-insert-bar:hover { opacity: 1; }
.ed-insert-step { display: block; margin: .45rem auto; }
.ed-actions button:disabled { opacity: .35; cursor: not-allowed; }

/* Badge « Modifié » (avis édité par l'auteur) */
.badge--warn { background: var(--warning-soft); color: #8a5a06; }

/* Petit toast de synchronisation auto */
.ep-toast { position: fixed; bottom: 20px; right: 20px; z-index: 2000; background: var(--brun-fonce); color: #fff; padding: .7rem 1.1rem; border-radius: 999px; font-size: .88rem; font-weight: 600; box-shadow: 0 8px 24px rgba(0,0,0,.25); opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity .25s, transform .25s; }
.ep-toast.show { opacity: 1; transform: none; }

/* Colonne Langue dans la liste des avis */
.avis-col-langue { white-space: nowrap; font-size: .82rem; }
.avis-col-langue .avis-flag-txt { color: var(--brun-fonce); }

/* ── Statut des avis : lisible et différencié ── */
.statut-pill { display: inline-flex; align-items: center; gap: .3rem; font-size: .74rem; font-weight: 800; padding: .24rem .6rem; border-radius: 999px; white-space: nowrap; }
.st-repondu { background: var(--success-soft); color: #4a7a2e; }
.st-traiter { background: rgba(233,102,70,.13); color: var(--corail-fonce); }
.st-brouillon { background: var(--warning-soft); color: #8a5a06; }
.st-verif { background: var(--info-soft); color: var(--info); }
.st-ignore { background: #efe7d6; color: #8a6f5c; }
.statut-sub { font-size: .7rem; color: var(--text-mute); margin-top: .22rem; }
.statut-chips { display: flex; flex-wrap: wrap; gap: .28rem; margin-top: .3rem; }
.chip { display: inline-flex; align-items: center; gap: .25rem; font-size: .68rem; font-weight: 700; padding: .16rem .46rem; border-radius: 6px; white-space: nowrap; }
.chip--new { background: var(--corail); color: #fff; }
.chip--site { background: var(--info-soft); color: var(--info); }
.chip--modif { background: var(--warning-soft); color: #8a5a06; }
/* Boutons d'action différenciés */
.btn--edit { background: var(--info-soft); color: var(--info); border-color: rgba(106,121,166,.4); }
.btn--edit:hover { background: rgba(106,121,166,.18); border-color: var(--info); color: var(--info); }
.btn--site-on { background: var(--info); color: #fff; border-color: var(--info); }
.btn--site-on:hover { filter: brightness(1.06); color: #fff; }

/* ── Assistant IA ── */
.rep-label { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; }
.btn--ia { background: linear-gradient(95deg, #7c5cff, #b06ab3); color: #fff !important; border: 0; font-weight: 700; box-shadow: 0 1px 3px rgba(124,92,255,.3); }
.btn--ia:hover { background: linear-gradient(95deg, #6a49f0, #9a51ad); color: #fff !important; box-shadow: 0 3px 12px rgba(124,92,255,.45); }
.btn--ia:disabled { opacity: .7; }

.ia-panel { margin: .2rem 0 .8rem; border: 1.5px solid #d9cffb; border-radius: 12px; background: linear-gradient(180deg, rgba(124,92,255,.06), rgba(176,106,179,.05)); padding: .8rem .9rem; }
.ia-panel__head { display: flex; align-items: center; gap: .4rem; font-size: .9rem; color: #5b3bb0; }
.ia-panel__head .ia-x { margin-left: auto; background: none; border: 0; cursor: pointer; color: var(--text-mute); padding: .1rem; border-radius: 6px; }
.ia-panel__head .ia-x:hover { background: rgba(0,0,0,.06); }
.ia-panel__status { font-size: .82rem; color: var(--text-mute); margin: .5rem 0 0; }
.ia-bar { position: relative; height: 6px; border-radius: 999px; background: rgba(124,92,255,.15); overflow: hidden; margin-top: .6rem; }
.ia-bar span { position: absolute; left: -40%; width: 40%; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #7c5cff, #b06ab3); animation: iaBar 1.1s ease-in-out infinite; }
@keyframes iaBar { 0% { left: -40%; } 100% { left: 100%; } }
.ia-proposition { background: var(--bg); border: 1px solid var(--border); border-radius: 9px; padding: .7rem .8rem; margin: .55rem 0; font-size: .92rem; line-height: 1.5; color: var(--brun-fonce); }
.ia-panel__actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.ia-precise { margin-top: .55rem; display: flex; flex-direction: column; gap: .4rem; }
.ia-precise textarea { width: 100%; }

/* ── Sous-menu des Paramètres ── */
.param-tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.2rem; border-bottom: 1.5px solid var(--border); padding-bottom: .6rem; }
.param-tab { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .8rem; border-radius: 9px; font-size: .86rem; font-weight: 700; color: var(--text-mute); cursor: pointer; text-decoration: none; }
.param-tab:hover { background: var(--bg-soft); color: var(--brun-fonce); }
.param-tab.on { background: var(--corail); color: #fff; }
.ia-import { margin-top: .9rem; padding-top: .8rem; border-top: 1px dashed var(--border); }
.ia-import-row { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .35rem; }
.ia-import-row input { flex: 1; min-width: 220px; }
/* Fenêtre de réponse plus haute */
.modal--rep .modal-body { min-height: 54vh; }

/* Import Qweekle (sélection) */
.qw-toolbar { display: flex; align-items: center; gap: .9rem; margin-bottom: .5rem; }
.qw-users { display: flex; flex-direction: column; gap: .3rem; max-height: 50vh; overflow: auto; padding-right: .2rem; }
.qw-user { display: flex; align-items: center; gap: .6rem; padding: .4rem .5rem; border: 1px solid var(--border); border-radius: 8px; cursor: pointer; }
.qw-user:hover { background: var(--bg-soft); }
.qw-user__info { display: flex; flex-direction: column; line-height: 1.2; }
.qw-user.is-imp { opacity: .7; }

/* ── Réclamations ── */
.rec-grid { display: grid; grid-template-columns: 1fr 320px; gap: 1.1rem; align-items: start; }
@media (max-width: 900px) { .rec-grid { grid-template-columns: 1fr; } }
.rec-main { display: flex; flex-direction: column; gap: .9rem; }
.rec-side { display: flex; flex-direction: column; gap: .9rem; }
.rec-thread { display: flex; flex-direction: column; gap: .7rem; }
.rec-msg { max-width: 82%; padding: .6rem .8rem; border-radius: 12px; border: 1px solid var(--border); background: var(--bg); }
.rec-msg--in { align-self: flex-start; background: var(--bg-soft); border-bottom-left-radius: 4px; }
.rec-msg--out { align-self: flex-end; background: var(--corail-soft, #fbe6df); border-bottom-right-radius: 4px; }
.rec-msg--note { align-self: center; max-width: 92%; background: var(--warning-soft, #fdf3dc); border-style: dashed; }
.rec-msg__head { font-size: .72rem; color: var(--text-mute); font-weight: 700; display: flex; justify-content: space-between; gap: .8rem; margin-bottom: .25rem; }
.rec-msg__head span { font-weight: 500; white-space: nowrap; }
.rec-msg__body { font-size: .92rem; line-height: 1.5; color: var(--brun-fonce); }
.rec-reply .rec-tabs { display: flex; gap: .3rem; margin-bottom: .5rem; }
.rec-reply .rec-tabs button { border: 0; background: var(--bg-soft); color: var(--text-mute); padding: .35rem .8rem; border-radius: 8px; font-weight: 700; font-size: .82rem; cursor: pointer; }
.rec-reply .rec-tabs button.on { background: var(--corail); color: #fff; }
.rec-reply-foot { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .5rem; font-size: .84rem; }
.rec-kv { display: flex; justify-content: space-between; gap: 1rem; padding: .25rem 0; font-size: .85rem; border-bottom: 1px solid var(--border); }
.rec-kv:last-child { border-bottom: 0; }
.rec-kv span { color: var(--text-mute); }
.rec-qw { padding: .45rem .55rem; border: 1px solid var(--border); border-radius: 8px; margin-bottom: .4rem; font-size: .85rem; }
.rec-qw .muted { font-size: .78rem; }
.rec-pj { display: inline-flex; align-items: center; gap: .35rem; margin: .3rem .3rem 0 0; padding: .3rem .55rem; border: 1px solid var(--border); border-radius: 8px; font-size: .8rem; text-decoration: none; color: var(--info); background: var(--bg); }
.rec-pj:hover { background: var(--bg-soft); }

/* Éditeur modèles / exemples IA réclamations */
.rk-item { display: grid; grid-template-columns: 1fr auto; gap: .4rem .5rem; align-items: start; margin-bottom: .6rem; padding: .5rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft); }
.rk-item input[type=text] { grid-column: 1 / 2; }
.rk-item textarea { grid-column: 1 / 2; }
.rk-item .btn--danger { grid-column: 2 / 3; grid-row: 1 / 3; align-self: center; }
.rec-tpl { max-width: 200px; font-size: .82rem; padding: .3rem .5rem; }

/* Éditeur riche + composer réclamation */
.rec-compose { position: sticky; top: 8px; z-index: 5; }
.rte-toolbar { display: flex; align-items: center; gap: .2rem; flex-wrap: wrap; border: 1px solid var(--border); border-bottom: 0; border-radius: 8px 8px 0 0; padding: .3rem .4rem; background: var(--bg-soft); }
.rte-toolbar button { border: 0; background: transparent; cursor: pointer; padding: .25rem .5rem; border-radius: 6px; font-size: .85rem; color: var(--brun-fonce); min-width: 28px; }
.rte-toolbar button:hover { background: var(--border); }
.rte-sep { width: 1px; height: 18px; background: var(--border); margin: 0 .2rem; }
.rte { border: 1px solid var(--border); border-radius: 0 0 8px 8px; min-height: 120px; max-height: 300px; overflow: auto; padding: .6rem .7rem; font-size: .92rem; line-height: 1.5; outline: none; background: var(--bg); }
.rte:empty::before { content: attr(data-ph); color: var(--text-mute); }
.rte:focus { border-color: var(--corail); }
.rte ul, .rte ol { margin: .3rem 0 .3rem 1.2rem; }
.rec-vu { color: #2f7d32; font-weight: 700; }
.rec-livre { color: var(--text-mute); }

/* ── Réclamation : messagerie service client ── */
.rec-layout { display: grid; grid-template-columns: 1fr 320px; gap: 1rem; align-items: start; }
@media (max-width: 900px) { .rec-layout { grid-template-columns: 1fr; } }
.rec-conv { display: flex; flex-direction: column; min-width: 0; }
.rec-chat { height: min(56vh, 560px); overflow-y: auto; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 12px; margin-bottom: .6rem; }
.rec-composer { border: 1px solid var(--border); border-radius: 14px; background: #fff; padding: 12px; }
.rec-tabs { display: flex; align-items: center; gap: .3rem; margin-bottom: .5rem; flex-wrap: wrap; }
.rec-tabs button { border: 1px solid var(--border); background: var(--bg-soft); border-radius: 8px; padding: .3rem .7rem; cursor: pointer; font-weight: 600; font-size: .84rem; color: var(--text-mute); display: inline-flex; align-items: center; gap: .3rem; }
.rec-tabs button.on { background: var(--corail-soft); border-color: #f3c9bd; color: var(--corail); }
.rec-reply-foot { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .55rem; font-size: .85rem; color: var(--brun-fonce); }
.rec-row { display: flex; gap: 10px; max-width: 82%; }
.rec-row--in { align-self: flex-start; }
.rec-row--out { align-self: flex-end; flex-direction: row-reverse; }
.rec-ava { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; background: var(--brun-fonce); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .9rem; }
.rec-ava--out { background: var(--corail); }
.rec-b { border-radius: 14px; padding: 9px 14px; }
.rec-b--in { background: #fff; border: 1px solid var(--border); border-top-left-radius: 4px; }
.rec-b--out { background: var(--corail-soft); border: 1px solid #f3c9bd; border-top-right-radius: 4px; }
.rec-b__meta { font-size: .72rem; color: var(--text-mute); margin-bottom: 3px; }
.rec-row--out .rec-b__meta { text-align: right; }
.rec-b__body { color: var(--brun-fonce); font-size: .92rem; line-height: 1.5; word-wrap: break-word; overflow-wrap: anywhere; }
.rec-b__body ul, .rec-b__body ol { margin: .3rem 0 .3rem 1.1rem; }
.rec-b__body p { margin: 0 0 .4rem; }
.rec-b--note { align-self: center; width: 100%; max-width: 94%; background: var(--warning-soft); border: 1px solid #f0d9a6; border-radius: 12px; padding: 9px 14px; }
.rec-b--note .rec-b__meta { color: #9a7b2e; font-weight: 600; }
.rec-side__t { margin-bottom: .5rem; font-size: .95rem; }
.rec-vu { color: #2f7d32; font-weight: 700; }
.rec-livre { color: var(--text-mute); }

/* Module Modèles d'email */
.rm-legend { font-size: .82rem; color: var(--text-mute); margin: .2rem 0 1rem; line-height: 1.9; }
.rm-legend code { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 5px; padding: .05rem .3rem; color: var(--corail); }
.rm-item { border: 1px solid var(--border); border-radius: 12px; padding: .8rem; margin-bottom: .8rem; background: var(--bg-soft); }
.rm-item .rmT { width: 100%; margin-bottom: .5rem; font-weight: 600; }
.rm-item .rmC { width: 100%; font-family: inherit; }
.rm-vars { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .4rem; }
.rm-var { border: 1px solid var(--border); background: #fff; border-radius: 6px; padding: .15rem .45rem; font-size: .74rem; cursor: pointer; color: var(--corail); font-family: ui-monospace, monospace; }
.rm-var:hover { background: var(--corail-soft); border-color: #f3c9bd; }
.rm-item .btn--danger { margin-top: .5rem; }

/* Fichiers joints à la réponse */
.rec-files { margin-top: .5rem; }
.rec-files.on { border: 1px dashed var(--border); border-radius: 10px; padding: .5rem; background: var(--bg-soft); }
.rec-files__t { font-size: .78rem; color: var(--text-mute); margin-bottom: .4rem; }
.rec-chip { display: inline-flex; align-items: center; gap: .4rem; background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: .25rem .5rem; margin: 0 .35rem .35rem 0; max-width: 240px; }
.rec-chip img { width: 26px; height: 26px; object-fit: cover; border-radius: 5px; flex: 0 0 26px; }
.rec-chip__ic { color: var(--corail); display: inline-flex; }
.rec-chip__n { font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.rec-chip__s { font-size: .72rem; color: var(--text-mute); }
.rec-chip__x { border: 0; background: transparent; cursor: pointer; color: var(--text-mute); display: inline-flex; padding: 2px; border-radius: 4px; }
.rec-chip__x:hover { background: var(--danger-soft, #fbe7e5); color: var(--danger, #ba3e45); }
.rte--drop { outline: 2px dashed var(--corail); outline-offset: 2px; background: var(--corail-soft); }
.rec-pj-wrap { display: inline-flex; align-items: center; gap: .15rem; margin: 0 .3rem .3rem 0; }
.rec-pj-dl { color: var(--text-mute); display: inline-flex; padding: 3px; border-radius: 5px; }
.rec-pj-dl:hover { background: var(--bg-soft); color: var(--corail); }

/* Fiche client Qweekle */
.qw-client { display: flex; gap: .6rem; align-items: center; }
.qw-ava { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: 0 0 44px; }
.qw-name { font-weight: 700; color: var(--brun-fonce); }
.qw-badge { display: inline-flex; align-items: center; gap: .2rem; background: var(--warning-soft); color: #9a7b2e; border-radius: 6px; padding: .05rem .35rem; font-size: .72rem; font-weight: 600; }
.qw-alert { background: var(--danger-soft, #fbe7e5); color: var(--danger, #ba3e45); border-radius: 8px; padding: .4rem .6rem; font-size: .82rem; font-weight: 600; margin: .5rem 0 .2rem; display: flex; gap: .3rem; align-items: center; }
.qw-sec { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); margin: .7rem 0 .3rem; font-weight: 700; }

/* ── Détail réclamation : menu latéral Email / Client / Fichiers ── */
.rec2 { display: grid; grid-template-columns: 190px 1fr; gap: 1.1rem; align-items: start; }
@media (max-width: 820px) { .rec2 { grid-template-columns: 1fr; } .rec2-menu { flex-direction: row !important; position: static !important; overflow-x: auto; } }
.rec2-menu { display: flex; flex-direction: column; gap: .3rem; position: sticky; top: 8px; }
.rec2-menu button { display: flex; align-items: center; gap: .55rem; padding: .65rem .85rem; border: 1px solid transparent; border-radius: 11px; background: transparent; cursor: pointer; font-weight: 600; color: var(--text-mute); text-align: left; font-size: .92rem; white-space: nowrap; }
.rec2-menu button:hover:not(.on) { background: var(--bg-soft); }
.rec2-menu button.on { background: var(--corail-soft); color: var(--corail); border-color: #f3c9bd; }
.rec2-count { background: var(--corail); color: #fff; border-radius: 20px; font-size: .7rem; padding: 0 .4rem; min-width: 18px; text-align: center; }
.rec2-panel { min-width: 0; }
.rec2-panel .card { margin-bottom: .8rem; }
.rec-qwbar { display: flex; flex-wrap: wrap; gap: .4rem; }
.alert--warn { background: var(--warning-soft); border: 1px solid #f0d9a6; color: #8a6d1e; border-radius: 10px; padding: .6rem .8rem; font-size: .88rem; }
.alert--warn code { background: #fff; border: 1px solid #f0d9a6; border-radius: 5px; padding: .05rem .3rem; }
.rec-file-row { display: flex; align-items: center; gap: .6rem; padding: .55rem .2rem; border-bottom: 1px solid var(--border); }
.rec-file-row:last-child { border-bottom: 0; }
.rec-file-ic { color: var(--corail); flex: 0 0 auto; }
.rec-file-main { flex: 1; min-width: 0; }
.rec-file-main a { font-weight: 600; word-break: break-all; }

/* Qweekle : sous-onglets */
.qw-tabs { display: flex; flex-wrap: wrap; gap: .3rem; margin: .8rem 0 .6rem; border-bottom: 1px solid var(--border); padding-bottom: .5rem; }
.qw-tab { border: 1px solid var(--border); background: var(--bg-soft); border-radius: 8px; padding: .3rem .7rem; cursor: pointer; font-weight: 600; font-size: .84rem; color: var(--text-mute); display: inline-flex; align-items: center; gap: .35rem; }
.qw-tab.on { background: var(--corail-soft); border-color: #f3c9bd; color: var(--corail); }
.qw-n { background: var(--border); color: var(--brun-fonce); border-radius: 20px; font-size: .68rem; padding: 0 .35rem; min-width: 16px; text-align: center; }
.qw-tab.on .qw-n { background: var(--corail); color: #fff; }
.qw-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .5rem; }
.qw-ok { color: #2f7d32; }
.rec-ava--photo { display: inline-block; }
.rec-ava--note { background: var(--warning); color: #fff; }
.rec-note-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .3rem; }
.rec-note-head .rec-ava, .rec-note-head .rec-ava--photo { width: 26px; height: 26px; flex: 0 0 26px; font-size: .75rem; }

/* Menu de choix de signature */
.sig-menu { position: fixed; z-index: 90; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.14); padding: .3rem; min-width: 180px; }
.sig-menu button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: .45rem .6rem; border-radius: 7px; cursor: pointer; font-size: .86rem; }
.sig-menu button:hover { background: var(--corail-soft); color: var(--corail); }
.auth-ok{color:#2f7d32;font-size:.85rem;text-align:center;margin-top:.6rem}

/* ── Qweekle : tableaux, recherche, détail ── */
.qw-list { display: block; }
.qw-search { display: flex; align-items: center; gap: .4rem; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 9px; padding: .35rem .6rem; margin: 0 0 .6rem; color: var(--text-mute); }
.qw-search input { border: 0; background: none; outline: none; width: 100%; font-size: .88rem; color: var(--brun-fonce); }
.qw-tablewrap { overflow-x: auto; border: 1px solid var(--border); border-radius: 10px; }
.qw-table { width: 100%; border-collapse: collapse; font-size: .86rem; }
.qw-table thead th { text-align: left; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; color: var(--text-mute); font-weight: 700; padding: .5rem .7rem; border-bottom: 1px solid var(--border); background: var(--bg-soft); white-space: nowrap; }
.qw-table td { padding: .5rem .7rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.qw-table tbody tr:last-child td { border-bottom: 0; }
.qw-tr--clic { cursor: pointer; transition: background .12s; }
.qw-tr--clic:hover { background: var(--corail-soft); }
.qw-lnk { color: var(--corail); font-weight: 700; }
.qw-tag { display: inline-block; border-radius: 20px; padding: .05rem .5rem; font-size: .72rem; font-weight: 600; }
.qw-tag--on { background: #e6f4ea; color: #2f7d32; }
.qw-tag--off { background: var(--bg-soft); color: var(--text-mute); }

.qw-modal { position: fixed; inset: 0; background: rgba(40,25,18,.45); display: flex; align-items: center; justify-content: center; z-index: 120; padding: 1rem; }
.qw-modal__box { background: #fff; border-radius: 16px; max-width: 640px; width: 100%; max-height: 86vh; overflow: auto; position: relative; box-shadow: 0 20px 60px rgba(0,0,0,.25); padding: 1.3rem 1.3rem 1.5rem; }
.qw-modal__x { position: absolute; top: .8rem; right: .8rem; border: 1px solid var(--border); background: #fff; border-radius: 8px; width: 30px; height: 30px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--text-mute); }
.qw-modal__x:hover { background: var(--bg-soft); }
.qw-kv { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .9rem; margin: .5rem 0 .3rem; }
.qw-subt { margin: 1rem 0 .4rem; font-size: .92rem; color: var(--brun-fonce); }

/* ── Pièces jointes : cartes sous les messages ── */
.rec-att { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
.pj-card { display: inline-flex; align-items: stretch; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: #fff; max-width: 260px; }
.pj-open { display: flex; align-items: center; gap: .5rem; padding: .35rem .5rem; min-width: 0; text-decoration: none; color: var(--brun-fonce); }
.pj-open:hover { background: var(--bg-soft); }
.pj-thumb { width: 38px; height: 38px; object-fit: cover; border-radius: 7px; flex: 0 0 38px; background: var(--bg-soft); }
.pj-ic { width: 38px; height: 38px; border-radius: 7px; background: var(--corail-soft); color: var(--corail); display: flex; align-items: center; justify-content: center; flex: 0 0 38px; }
.pj-meta { display: flex; flex-direction: column; min-width: 0; }
.pj-name { font-size: .82rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 165px; }
.pj-sz { font-size: .72rem; color: var(--text-mute); }
.pj-dl { display: flex; align-items: center; justify-content: center; padding: 0 .55rem; border-left: 1px solid var(--border); color: var(--text-mute); text-decoration: none; }
.pj-dl:hover { background: var(--corail-soft); color: var(--corail); }

/* Vignettes onglet Fichiers */
.rec-file-thumb { width: 46px; height: 46px; border-radius: 8px; overflow: hidden; flex: 0 0 46px; display: flex; align-items: center; justify-content: center; background: var(--bg-soft); }
.rec-file-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rec-file-thumb--ic { background: var(--corail-soft); color: var(--corail); }

/* ── Onglet Email : 2 colonnes (conversation + pièces jointes) ── */
.rec-email2 { display: grid; grid-template-columns: 1fr 240px; gap: 1rem; align-items: start; }
.rec-email2__main { min-width: 0; }
.rec-email2__side { border: 1px solid var(--border); border-radius: 12px; padding: .7rem; background: var(--bg-soft); position: sticky; top: .5rem; max-height: 70vh; overflow: auto; }
.rec-email2__side .rec-side__t { margin: 0 0 .5rem; }
.rec-email-pj { display: flex; flex-direction: column; gap: .4rem; }
.pjs { display: flex; align-items: center; gap: .5rem; text-decoration: none; color: var(--brun-fonce); background: #fff; border: 1px solid var(--border); border-radius: 9px; padding: .35rem .4rem; }
.pjs:hover { border-color: var(--corail); }
.pjs-thumb { width: 34px; height: 34px; object-fit: cover; border-radius: 6px; flex: 0 0 34px; }
.pjs-ic { width: 34px; height: 34px; border-radius: 6px; background: var(--corail-soft); color: var(--corail); display: flex; align-items: center; justify-content: center; flex: 0 0 34px; }
.pjs-meta { min-width: 0; display: flex; flex-direction: column; }
.pjs-n { font-size: .8rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pjs-s { font-size: .7rem; color: var(--text-mute); }
@media (max-width: 900px) { .rec-email2 { grid-template-columns: 1fr; } .rec-email2__side { position: static; max-height: none; } }

/* Puces mini dans les bulles */
.rec-att--mini { gap: .3rem; }
.pj-mini { display: inline-flex; align-items: center; gap: .3rem; background: rgba(0,0,0,.04); border: 1px solid var(--border); border-radius: 20px; padding: .12rem .55rem; font-size: .76rem; color: var(--brun-fonce); text-decoration: none; max-width: 200px; }
.pj-mini:hover { background: var(--corail-soft); border-color: var(--corail); color: var(--corail); }
.pj-mini__n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pj-mini__s { color: var(--text-mute); flex: 0 0 auto; }
.rec-b--out .pj-mini { background: rgba(255,255,255,.25); border-color: rgba(255,255,255,.4); color: #fff; }

/* ── Toggle liste / cartes + vue cartes ── */
.rec-viewtoggle { display: inline-flex; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; }
.rec-viewtoggle button { border: 0; background: #fff; padding: .32rem .6rem; cursor: pointer; font-size: .8rem; font-weight: 600; color: var(--text-mute); display: inline-flex; align-items: center; gap: .3rem; }
.rec-viewtoggle button.on { background: var(--corail-soft); color: var(--corail); }
.rec-file-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .7rem; }
.rec-file-card { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.rec-card-thumb { display: block; height: 110px; background: var(--bg-soft); display: flex; align-items: center; justify-content: center; }
.rec-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rec-card-thumb--ic { color: var(--corail); background: var(--corail-soft); }
.rec-file-card__body { padding: .55rem .6rem; display: flex; flex-direction: column; gap: .25rem; }
.rec-file-card__name { font-size: .82rem; font-weight: 600; color: var(--brun-fonce); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rec-file-card__act { display: flex; gap: .3rem; margin-top: .2rem; }

/* ── Formulaire client Qweekle ── */
.qw-formgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
@media (max-width: 640px) { .qw-formgrid { grid-template-columns: 1fr; } }
.qw-linked { display: inline-flex; align-items: center; gap: .35rem; background: #e6f4ea; color: #2f7d32; border-radius: 20px; padding: .2rem .7rem; font-size: .8rem; font-weight: 600; margin-bottom: .7rem; }

/* Statistiques + groupes client Qweekle */
.qw-stats { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0 .3rem; }
.qw-stat { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: .4rem .8rem; text-align: center; min-width: 84px; }
.qw-stat__n { display: block; font-size: 1.05rem; font-weight: 800; color: var(--corail); }
.qw-stat__l { display: block; font-size: .7rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.qw-groups { display: flex; flex-wrap: wrap; gap: .35rem; margin: .35rem 0; }
.qw-group { display: inline-flex; align-items: center; gap: .25rem; background: var(--corail-soft); color: var(--corail); border-radius: 20px; padding: .12rem .6rem; font-size: .74rem; font-weight: 600; }

/* ── Tableau de bord réclamations ── */
.rec-dash { margin-bottom: 1rem; }
.rec-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .6rem; margin-bottom: .8rem; }
.rec-kpi { background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: .7rem .9rem; text-align: left; cursor: default; display: flex; flex-direction: column; gap: .1rem; }
.rec-kpi[data-kpi=""] { cursor: default; }
.rec-kpi--danger, .rec-kpi--warn { cursor: pointer; }
.rec-kpi__n { font-size: 1.5rem; font-weight: 800; color: var(--brun-fonce); line-height: 1.1; }
.rec-kpi__l { font-size: .74rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.rec-kpi--danger { border-color: #f3c2c2; background: var(--danger-soft, #fdecec); }
.rec-kpi--danger .rec-kpi__n { color: var(--danger, #c0392b); }
.rec-kpi--warn { border-color: #f3ddb8; background: var(--warning-soft, #fdf6e8); }
.rec-kpi--warn .rec-kpi__n { color: #b7791f; }
.rec-dash-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .8rem; }
.rec-dash-t { margin: 0 0 .6rem; font-size: .82rem; color: var(--text-mute); text-transform: uppercase; letter-spacing: .03em; }
.rec-bar { display: grid; grid-template-columns: 90px 1fr 28px; align-items: center; gap: .5rem; margin-bottom: .35rem; font-size: .82rem; }
.rec-bar__l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--brun-fonce); }
.rec-bar__t { background: var(--bg-soft); border-radius: 20px; height: 8px; overflow: hidden; }
.rec-bar__f { display: block; height: 100%; background: var(--corail); border-radius: 20px; }
.rec-bar__v { text-align: right; font-weight: 700; color: var(--text-mute); }
.rec-late { display: inline-flex; align-items: center; gap: .2rem; background: var(--danger-soft, #fdecec); color: var(--danger, #c0392b); border-radius: 20px; padding: .05rem .45rem; font-size: .68rem; font-weight: 700; white-space: nowrap; }
.rec-assign { font-size: .8rem; padding: .2rem .4rem; max-width: 130px; }

/* ── Geste commercial : vue épurée ── */
.geste-intro { text-align: center; margin: .5rem 0 1.2rem; }
.geste-title { display: inline-flex; align-items: center; gap: .45rem; color: var(--brun-fonce); margin: 0; }
.geste-sub { color: var(--text-mute); font-size: .86rem; margin: .3rem 0 0; }
.geste-choix { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; }
.geste-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .45rem; background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 1.4rem 1rem; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .1s; }
.geste-card:hover { border-color: var(--corail); box-shadow: 0 8px 24px rgba(233,102,70,.14); transform: translateY(-2px); }
.geste-ic { width: 54px; height: 54px; border-radius: 14px; display: flex; align-items: center; justify-content: center; }
.geste-ic--corail { background: var(--corail-soft); color: var(--corail); }
.geste-ic--warn { background: var(--warning-soft, #fdf6e8); color: #b7791f; }
.geste-ic--info { background: #e8f1fb; color: #2b6cb0; }
.geste-card__t { font-weight: 700; color: var(--brun-fonce); }
.geste-card__d { font-size: .78rem; color: var(--text-mute); line-height: 1.35; }

.geste-head { display: flex; align-items: center; gap: .7rem; margin-bottom: 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--border); }
.geste-form { max-width: 560px; }
.geste-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.geste-col2 { grid-column: 1 / -1; }
@media (max-width: 560px) { .geste-grid { grid-template-columns: 1fr; } }
.geste-suffix { display: flex; align-items: center; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; background: #fff; }
.geste-suffix input { border: 0; flex: 1; outline: none; }
.geste-suffix span { padding: 0 .8rem; background: var(--bg-soft); color: var(--text-mute); font-weight: 700; align-self: stretch; display: flex; align-items: center; }
.geste-actions { display: flex; align-items: center; gap: .7rem; margin-top: 1rem; }
.geste-msg { font-size: .84rem; color: var(--text-mute); }
.geste-empty { background: var(--bg-soft); border-radius: 10px; padding: 1rem; text-align: center; color: var(--text-mute); }
.geste-success { display: flex; gap: .9rem; align-items: flex-start; background: #eef8f0; border: 1px solid #c9e7cf; border-radius: 14px; padding: 1.1rem 1.2rem; }
.geste-success__ic { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: #2f9e44; color: #fff; display: flex; align-items: center; justify-content: center; }
.geste-success h4 { margin: 0 0 .3rem; color: var(--brun-fonce); }
.geste-success p { margin: .2rem 0; font-size: .88rem; }
.geste-code { display: inline-block; font-family: ui-monospace, monospace; font-size: 1.4rem; font-weight: 800; letter-spacing: .12em; color: var(--corail); background: #fff; border: 2px dashed var(--corail); border-radius: 10px; padding: .5rem 1.1rem; margin: .5rem 0; }

/* Lot DEV 2.1.32 — pilotage des réclamations */
.rec-prio{display:inline-flex;padding:.18rem .45rem;border-radius:999px;font-size:.72rem;font-weight:700;background:#eef1f4}.rec-prio--faible{opacity:.7}.rec-prio--haute{background:#fff0d8;color:#8a5200}.rec-prio--urgente{background:#ffe0e0;color:#a00000}.rec-activity{display:grid;gap:.65rem}.rec-activity__item{border-left:3px solid var(--corail);padding:.15rem 0 .15rem .75rem;display:grid;gap:.12rem}.rec-activity__item span,.rec-activity__item small{color:var(--gris-texte,#69707a);font-size:.78rem}.page-header__actions input[type=datetime-local]{min-height:38px;border:1px solid var(--border,#dfe3e8);border-radius:8px;padding:0 .55rem;background:#fff}

/* ═══════════════ 2.2 — Recherche globale & notifications ═══════════════ */
.sidebar__search { margin:.2rem .75rem .7rem; width:calc(100% - 1.5rem); border:1px solid rgba(255,237,196,.22); background:rgba(255,255,255,.07); color:var(--sable-clair); border-radius:10px; padding:.58rem .65rem; display:flex; align-items:center; gap:.48rem; cursor:pointer; font:600 .78rem/1.2 Raleway,sans-serif; text-align:left; }
.sidebar__search:hover { background:rgba(255,255,255,.13); }
.sidebar__search span:nth-child(2) { flex:1; }
.sidebar__search kbd { font:700 .64rem/1 Raleway,sans-serif; border:1px solid rgba(255,255,255,.25); border-radius:5px; padding:.18rem .3rem; opacity:.75; }
.toast-zone { position:fixed; right:1rem; bottom:1rem; z-index:100000; display:flex; flex-direction:column; gap:.5rem; width:min(390px,calc(100vw - 2rem)); pointer-events:none; }
.toast { pointer-events:auto; display:flex; gap:.65rem; align-items:flex-start; background:var(--brun-tres-fonce); color:#fff; padding:.75rem .85rem; border-radius:11px; box-shadow:0 10px 28px rgba(0,0,0,.28); animation:toast-in .18s ease-out; }
.toast--success { border-left:4px solid var(--success); }
.toast--danger { border-left:4px solid var(--danger); }
.toast--info { border-left:4px solid var(--info); }
.toast__body { flex:1; font-size:.84rem; line-height:1.4; }
.toast__body strong { display:block; margin-bottom:.1rem; }
.toast__close { border:0; background:none; color:#fff; opacity:.7; cursor:pointer; padding:0; }
@keyframes toast-in { from { opacity:0; transform:translateY(8px); } }

.global-search { display:grid; gap:.7rem; }
.global-search__input { font-size:1.05rem; padding:.78rem .9rem; }
.search-groups { display:grid; gap:.75rem; max-height:60vh; overflow:auto; }
.search-group h3 { font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--text-mute); margin:0 0 .35rem; }
.search-result { display:flex; gap:.7rem; align-items:center; padding:.55rem .6rem; border:1px solid var(--border); border-radius:9px; cursor:pointer; margin:.28rem 0; background:var(--bg-elev); }
.search-result:hover { border-color:var(--corail); background:var(--bg-soft); }
.search-result__main { flex:1; min-width:0; }
.search-result__title { font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.search-result__meta { color:var(--text-mute); font-size:.74rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Réclamations opérationnelles */
.rec-view-tabs { display:flex; gap:.4rem; flex-wrap:wrap; margin:0 0 .8rem; }
.rec-view-tabs .on { background:var(--corail); color:#fff; border-color:var(--corail); }
.rec-kpi--urgent { border-color:rgba(180,35,24,.35)!important; background:#fff5f4!important; }
.rec-kpi--today { border-color:rgba(233,102,70,.35)!important; }
.rec-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; margin:.55rem 0 .9rem; }
.rec-metric { border:1px solid var(--border); background:var(--bg-elev); border-radius:10px; padding:.55rem .65rem; }
.rec-metric span { display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; color:var(--text-mute); }
.rec-metric strong { display:block; margin-top:.18rem; font-size:.92rem; }
.rec-intel { display:grid; grid-template-columns:1.4fr 1fr; gap:.8rem; margin-bottom:.8rem; }
.rec-summary { background:var(--bg-soft); border:1px solid var(--border); border-radius:11px; padding:.75rem .85rem; line-height:1.5; }
.rec-urgency { border:1px solid var(--border); border-radius:11px; padding:.75rem .85rem; }
.rec-urgency--high { background:#fff5f4; border-color:#f1b9b3; }
.rec-reminders { display:grid; gap:.45rem; }
.rec-reminder { display:grid; grid-template-columns:auto 1fr auto; gap:.55rem; align-items:center; border:1px solid var(--border); border-radius:9px; padding:.55rem .65rem; }
.rec-reminder.is-done { opacity:.58; }
.rec-reminder.is-due { border-color:var(--danger); background:#fff7f6; }
.rec-reminder__date { font-size:.72rem; color:var(--text-mute); }
.rec-duplicate { border:1px solid var(--border); border-radius:9px; padding:.55rem .65rem; display:flex; align-items:center; gap:.6rem; margin:.35rem 0; }
.rec-duplicate__main { flex:1; }
.rec-close-reason { min-width:190px; }
.pagination { display:flex; align-items:center; justify-content:center; gap:.45rem; padding:.8rem 0; }
.pagination__info { color:var(--text-mute); font-size:.78rem; min-width:110px; text-align:center; }

/* Enquêtes : publication, diagnostic, historique et aperçu */
.enq-status { display:inline-flex; align-items:center; gap:.25rem; }
.enq-draft-dot { width:7px; height:7px; border-radius:99px; background:var(--warning); display:inline-block; }
.ed-workflow { display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; padding:.55rem .65rem; background:var(--bg-soft); border:1px solid var(--border); border-radius:10px; margin-bottom:.8rem; }
.ed-workflow__state { flex:1; min-width:180px; font-size:.8rem; }
.diag-score { display:flex; align-items:center; gap:.65rem; margin-bottom:.7rem; }
.diag-score__num { width:54px; height:54px; border-radius:50%; display:grid; place-items:center; background:var(--brun-fonce); color:#fff; font-weight:900; }
.diag-list { display:grid; gap:.35rem; }
.diag-item { padding:.48rem .6rem; border-radius:8px; font-size:.82rem; }
.diag-item--error { background:#fff1ef; color:#8a1f16; }
.diag-item--warn { background:#fff8e6; color:#7b5510; }
.preview-shell { display:grid; gap:.6rem; }
.preview-toolbar { display:flex; gap:.35rem; justify-content:center; }
.preview-stage { background:#e9e5df; border-radius:12px; padding:18px; min-height:62vh; display:flex; justify-content:center; overflow:auto; }
.preview-frame { border:0; background:#fff; width:100%; min-height:60vh; border-radius:8px; box-shadow:0 8px 30px rgba(0,0,0,.18); transition:width .2s ease; }
.preview-frame.is-tablet { width:768px; }
.preview-frame.is-mobile { width:390px; }
.version-row { display:flex; align-items:center; gap:.7rem; padding:.55rem 0; border-bottom:1px solid var(--border); }
.version-row__main { flex:1; }

/* Analyse actionnable */
.insight-list { display:grid; gap:.45rem; }
.insight { display:flex; gap:.55rem; padding:.58rem .7rem; background:var(--bg-soft); border-radius:9px; align-items:flex-start; }
.sample-warning { border-left:4px solid var(--warning); }
.theme-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }
.theme-card { border:1px solid var(--border); border-radius:10px; padding:.7rem; background:var(--bg-elev); }
.theme-card strong { display:block; }
.theme-card__meta { color:var(--text-mute); font-size:.73rem; margin-top:.25rem; }
.corr-bar { display:grid; grid-template-columns:minmax(160px,1fr) 140px 45px; gap:.55rem; align-items:center; padding:.38rem 0; }
.corr-bar__track { height:8px; border-radius:999px; background:var(--bg-soft); overflow:hidden; }
.corr-bar__fill { height:100%; background:var(--corail); border-radius:inherit; }
.funnel { display:flex; align-items:flex-end; gap:.5rem; min-height:135px; }
.funnel__step { flex:1; text-align:center; }
.funnel__bar { min-height:8px; background:var(--corail); border-radius:7px 7px 0 0; }
.funnel__label { font-size:.7rem; color:var(--text-mute); margin-top:.3rem; }

@media (max-width:900px) {
  .rec-metrics,.theme-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rec-intel { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .sidebar__search kbd { display:none; }
  .rec-metrics,.theme-grid { grid-template-columns:1fr; }
  .corr-bar { grid-template-columns:1fr 80px 38px; }
}
.badge--danger { background:#ffe4e1; color:#9d241a; }

/* ═══════════════ Pilotage & rapports V2.3 ═══════════════ */
.rp-toolbar{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;margin:0 0 1.1rem;padding:.65rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px}.rp-toolbar select,.rp-toolbar input{min-height:38px}.rp-presets{display:flex;gap:.25rem;padding:.2rem;background:var(--bg-soft);border-radius:9px}.rp-preset{border:0;background:transparent;padding:.48rem .65rem;border-radius:7px;font-weight:750;color:var(--text-mute);cursor:pointer}.rp-preset.is-on{background:var(--bg-elev);color:var(--brun-fonce);box-shadow:0 1px 4px rgba(50,32,20,.12)}.rp-custom-dates{display:flex;align-items:center;gap:.35rem}.rp-hero{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.35rem 1.5rem;margin-bottom:1rem;border-radius:16px;background:linear-gradient(120deg,var(--brun-fonce),#785039);color:#fff;box-shadow:0 10px 30px rgba(67,42,27,.18)}.rp-hero h2{font-size:1.65rem;margin:.15rem 0}.rp-hero p{margin:0;color:rgba(255,255,255,.78)}.rp-eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:900;color:var(--sable)}.rp-hero__score{text-align:right;min-width:130px}.rp-hero__score span{display:block;font-size:.72rem;color:rgba(255,255,255,.7)}.rp-hero__score strong{font-family:var(--font-display);font-size:2.4rem;color:#fff}.rp-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem;margin-bottom:1.2rem}.rp-kpi{background:var(--bg-elev);border:1px solid var(--border);border-top:4px solid var(--brun-clair);border-radius:12px;padding:.8rem .9rem;min-height:118px;display:flex;flex-direction:column}.rp-kpi--success{border-top-color:var(--success)}.rp-kpi--warning{border-top-color:var(--warning)}.rp-kpi--danger{border-top-color:var(--danger)}.rp-kpi--accent{border-top-color:var(--corail)}.rp-kpi--google{border-top-color:#4285f4}.rp-kpi__label{font-size:.72rem;color:var(--text-mute);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.rp-kpi__value{font-family:var(--font-display);font-size:1.9rem;color:var(--brun-fonce);margin:.15rem 0}.rp-kpi__foot{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:auto;font-size:.68rem;color:var(--text-mute)}.rp-delta{display:inline-flex;align-items:center;white-space:nowrap;font-size:.7rem;font-weight:850;padding:.15rem .35rem;border-radius:99px}.rp-delta--up{color:#27743e;background:#e8f6ec}.rp-delta--down{color:#9d241a;background:#ffeceb}.rp-delta--flat{color:var(--text-mute);background:var(--bg-soft)}.rp-grid{display:grid;gap:1rem;margin-bottom:1rem}.rp-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-panel{height:100%}.rp-panel__head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.rp-panel__head h3{margin:0}.rp-panel__head p{margin:.15rem 0 0;color:var(--text-mute);font-size:.76rem}.rp-dual-list{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.rp-dual-list h4{margin:0 0 .45rem;font-size:.8rem}.rp-good{color:var(--success)}.rp-bad{color:var(--danger)}.rp-rank{display:flex;justify-content:space-between;align-items:center;gap:.4rem;padding:.48rem 0;border-bottom:1px solid var(--border);font-size:.82rem}.rp-rank strong{font-size:.85rem}.rp-section{margin:1.45rem 0}.rp-section__head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.7rem}.rp-section__head h2{margin:0}.rp-section__head p{margin:.15rem 0 0;color:var(--text-mute);font-size:.78rem}.rp-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}.rp-category{background:var(--bg-elev);border:1px solid var(--border);border-left:4px solid var(--text-mute);border-radius:11px;padding:.7rem}.rp-category--success{border-left-color:var(--success)}.rp-category--warning{border-left-color:var(--warning)}.rp-category--danger{border-left-color:var(--danger)}.rp-category__head{display:flex;justify-content:space-between;align-items:start;gap:.35rem;min-height:34px;font-size:.78rem}.rp-category__score{font-family:var(--font-display);font-size:1.55rem;color:var(--brun-fonce)}.rp-progress{height:7px;border-radius:99px;background:var(--bg-soft);overflow:hidden;margin:.35rem 0}.rp-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--corail),var(--success))}.rp-category small,.rp-objective small{color:var(--text-mute);font-size:.68rem}.rp-theme-list{display:grid;gap:.3rem}.rp-theme{display:flex;justify-content:space-between;align-items:center;padding:.5rem .55rem;border-radius:8px;background:var(--bg-soft)}.rp-theme strong{display:block;font-size:.8rem}.rp-theme small{display:block;color:var(--text-mute);font-size:.66rem}.rp-theme__counts{display:flex;gap:.3rem}.rp-theme__counts span{font-weight:850;font-size:.72rem;padding:.15rem .3rem;border-radius:6px}.rp-theme__counts .good{color:#27743e;background:#e8f6ec}.rp-theme__counts .bad{color:#9d241a;background:#ffeceb}.rp-reco-list{display:grid;gap:.55rem}.rp-reco{display:flex;gap:.55rem;padding:.65rem;border:1px solid var(--border);border-radius:10px}.rp-reco__num{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:var(--corail);color:#fff;font-weight:900}.rp-reco strong{font-size:.82rem}.rp-reco p{margin:.15rem 0 .45rem;color:var(--text-mute);font-size:.72rem}.rp-objective-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.rp-objective{background:var(--bg-elev);border:1px solid var(--border);border-radius:11px;padding:.75rem}.rp-objective--large{min-height:155px}.rp-objective__head{display:flex;justify-content:space-between;align-items:start;gap:.4rem;min-height:38px;font-size:.78rem}.rp-objective__numbers span{font-family:var(--font-display);font-size:1.65rem;color:var(--brun-fonce)}.rp-objective__numbers small{font-size:.72rem}.rp-objective__meta{display:flex;justify-content:space-between;gap:.5rem;color:var(--text-mute);font-size:.68rem;margin-top:.4rem}.rp-card-actions{display:flex;gap:.35rem;margin-top:.65rem}.rp-comment-filters{display:flex;gap:.35rem}.rp-comments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.rp-comment{margin:0;padding:.7rem .8rem;border:1px solid var(--border);border-left:4px solid var(--text-mute);border-radius:10px;background:var(--bg-elev)}.rp-comment--positif{border-left-color:var(--success)}.rp-comment--negatif{border-left-color:var(--danger)}.rp-comment--neutre{border-left-color:var(--warning)}.rp-comment__meta{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;color:var(--text-mute);font-size:.65rem}.rp-comment blockquote{margin:.55rem 0 0;font-size:.78rem;line-height:1.45}.rp-report-config{margin-bottom:1rem}.rp-report-actions{display:flex;gap:.45rem;justify-content:flex-end;margin-top:.7rem}.rp-page-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem .8rem;padding:.65rem;background:var(--bg-soft);border-radius:9px}.rp-page-picker label{font-size:.78rem}.rp-report-preview{padding:1.2rem;border-radius:14px;background:#d8d5cf;min-height:50vh}.rp-report-empty{display:grid;place-items:center;text-align:center;min-height:45vh;color:#675a50}.rp-report-document{display:grid;gap:18px;justify-content:center}.rpt-page{position:relative;width:210mm;min-height:297mm;padding:12mm;background:#fff;color:#28231e;box-shadow:0 8px 35px rgba(0,0,0,.18);overflow:hidden;box-sizing:border-box}.rpt-header{display:flex;align-items:center;gap:10mm;padding-bottom:5mm;border-bottom:1px solid #ded8cf}.rpt-header img{width:31mm;height:20mm;object-fit:contain}.rpt-header div{display:grid}.rpt-header span{text-transform:uppercase;letter-spacing:.08em;font-size:8pt;color:#8b7968}.rpt-header strong{font-size:14pt;color:#553421}.rpt-header small{font-size:8pt;color:#8b7968;margin-top:1mm}.rpt-page>footer{position:absolute;left:12mm;right:12mm;bottom:7mm;border-top:1px solid #e8e3dc;padding-top:2mm;font-size:7pt;color:#9a8e82}.rpt-page h1{font-size:20pt;color:#553421;margin:8mm 0 5mm}.rpt-page h2{font-size:11pt;color:#553421;margin:3mm 0}.rpt-title-block{padding:20mm 0 10mm;text-align:center}.rpt-title-block span{text-transform:uppercase;letter-spacing:.18em;color:#e96646;font-weight:900;font-size:9pt}.rpt-title-block h1{font-size:28pt;margin:3mm 0}.rpt-title-block p{font-size:12pt;color:#8b7968}.rpt-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm;margin:5mm 0}.rpt-kpis>div{border:1px solid #e7e0d6;border-top:3px solid #e96646;border-radius:3mm;padding:4mm;text-align:center}.rpt-kpis span{display:block;font-size:8pt;color:#8b7968;text-transform:uppercase}.rpt-kpis strong{display:block;font-size:20pt;color:#553421;margin-top:1mm}.rpt-kpis--small strong{font-size:11pt}.rpt-columns{display:grid;grid-template-columns:1fr 1fr;gap:7mm;margin-top:7mm}.rpt-callout{display:flex;justify-content:space-between;padding:3mm 4mm;border-radius:2mm;margin:2mm 0;background:#f5f2ed}.rpt-callout.good{border-left:3px solid #6c974c}.rpt-callout.bad{border-left:3px solid #e14249}.rpt-chart{border:1px solid #e7e0d6;border-radius:3mm;padding:4mm}.rpt-category-table{display:grid;border:1px solid #ded8cf;border-radius:3mm;overflow:hidden}.rpt-category-table>div{display:grid;grid-template-columns:2fr .7fr .8fr .7fr;padding:3mm 4mm;border-bottom:1px solid #ebe6df;font-size:9pt;align-items:center}.rpt-category-table>div:last-child{border-bottom:0}.rpt-category-table>.head{background:#553421;color:#fff;font-weight:800}.rpt-note{margin-top:5mm;padding:3mm;background:#f5f2ed;font-size:8pt;color:#766a5e}.rpt-comment-grid{display:grid;grid-template-columns:1fr 1fr;gap:4mm}.rpt-comment-grid blockquote{margin:0;padding:4mm;border:1px solid #e7e0d6;border-left:3px solid #a08b6f;border-radius:2mm;break-inside:avoid}.rpt-comment-grid blockquote.positif{border-left-color:#6c974c}.rpt-comment-grid blockquote.negatif{border-left-color:#e14249}.rpt-comment-grid blockquote>div{display:flex;gap:2mm;font-size:7pt;color:#8b7968}.rpt-comment-grid blockquote p{font-size:9pt;line-height:1.45;margin:3mm 0 0}.rpt-stars{display:grid;gap:2mm;margin:7mm 0}.rpt-stars>div{display:grid;grid-template-columns:16mm 1fr 10mm;gap:3mm;align-items:center;font-size:9pt}.rpt-stars i,.rpt-objectives i{height:3mm;border-radius:99px;background:#eee8df;overflow:hidden}.rpt-stars i b,.rpt-objectives i b{display:block;height:100%;background:#e96646}.rpt-google-quote{padding:3mm 0;border-bottom:1px solid #ece7df;font-size:9pt}.rpt-recommendations{display:grid;gap:4mm}.rpt-recommendations article{display:flex;gap:4mm;border:1px solid #e5ded5;border-radius:3mm;padding:4mm;break-inside:avoid}.rpt-recommendations article>span{display:grid;place-items:center;flex:0 0 9mm;height:9mm;border-radius:50%;background:#e96646;color:#fff;font-weight:900}.rpt-recommendations h2{margin:0}.rpt-recommendations p{font-size:8pt;color:#766a5e}.rpt-recommendations ul{font-size:8pt;margin:2mm 0 0;padding-left:5mm}.rpt-objectives{display:grid;grid-template-columns:1fr 1fr;gap:4mm}.rpt-objectives article{display:grid;gap:2mm;padding:4mm;border:1px solid #e5ded5;border-radius:3mm}.rpt-objectives article>div{display:flex;justify-content:space-between}.rpt-objectives .success{color:#27743e}.rpt-objectives .warning{color:#a36d10}.rpt-objectives .danger{color:#9d241a}.rpt-objectives p{margin:0;font-size:10pt}.rpt-objectives small{font-size:7pt;color:#8b7968}.rpt-table{width:100%;border-collapse:collapse;font-size:8pt}.rpt-table th{background:#553421;color:#fff;text-align:left;padding:3mm}.rpt-table td{border-bottom:1px solid #e8e2da;padding:3mm;vertical-align:top}.rpt-table small{color:#766a5e}.badge--info{background:#e9f1ff;color:#265ca8}

@media(max-width:1250px){.rp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.rp-category-grid,.rp-objective-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rp-comments{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.rp-grid--2,.rp-dual-list{grid-template-columns:1fr}.rp-category-grid,.rp-objective-grid,.rp-comments{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-page-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-report-preview{padding:.4rem;overflow:auto}}
@media(max-width:560px){.rp-kpis,.rp-category-grid,.rp-objective-grid,.rp-comments{grid-template-columns:1fr}.rp-hero{align-items:flex-start}.rp-hero__score{min-width:auto}.rp-page-picker{grid-template-columns:1fr}}

@media print{
  body{background:#fff!important}.rp-print-report .sidebar,.rp-print-report .drawer,.rp-print-report .drawer-overlay,.rp-print-report .modal-overlay,.rp-print-report .toast-zone,.rp-print-report .update-banner,.rp-print-report .rp-report-config,.rp-print-report .page-header{display:none!important}.rp-print-report .app{display:block!important}.rp-print-report .main{margin:0!important;padding:0!important;display:block!important;width:auto!important}.rp-print-report .main>.rp-report-preview{display:block!important}.rp-print-report .rp-report-preview{display:block!important;background:#fff!important;padding:0!important}.rp-print-report .rp-report-document{display:block!important}.rp-print-report .rpt-page{width:auto!important;min-height:0!important;height:auto!important;box-shadow:none!important;margin:0!important;padding:8mm 9mm 12mm!important;break-after:page;page-break-after:always;overflow:visible!important}.rp-print-report .rpt-page:last-child{break-after:auto;page-break-after:auto}.rp-print-report .rpt-page>footer{left:9mm;right:9mm;bottom:4mm}.rp-print-report .rpt-comment-grid blockquote,.rp-print-report .rpt-recommendations article,.rp-print-report .rpt-objectives article,.rp-print-report tr{break-inside:avoid}.rp-print-report .rpt-header{-webkit-print-color-adjust:exact;print-color-adjust:exact}.rp-print-report .rpt-category-table>.head,.rp-print-report .rpt-table th,.rp-print-report .rpt-recommendations article>span,.rp-print-report .rpt-kpis>div{-webkit-print-color-adjust:exact;print-color-adjust:exact}.rp-print-report[data-print-orientation="landscape"] .rpt-page{width:auto;min-height:0}.rp-print-report .rpt-title-block{padding-top:10mm}}
