/* ============================================================
   NeoStop Laser® — CMS · styles
   Marine palette, mobile-first. Desktop = sidebar, mobile = bottom tabs.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

:root{
  --bg:#eef2f5; --panel:#ffffff; --panel-2:#f7f9fb;
  --ink:#13222e; --ink-soft:#495a66; --ink-faint:#7d8d97;
  --primary:#1d3f57; --primary-deep:#142d3f; --primary-tint:#dde7ee;
  --on-primary:#eef4f7; --accent:#7ea9bd; --accent-deep:#5c8aa1;
  --line:rgba(29,63,87,.14); --line-soft:rgba(29,63,87,.08);
  --ok:#2f7d5b; --ok-bg:#e3f1ea; --warn:#9a6a1c; --warn-bg:#f6ecd8;
  --danger:#9c3b34; --danger-bg:#f3e0de;
  --shadow:0 22px 48px -28px rgba(19,34,46,.5);
  --shadow-soft:0 10px 26px -20px rgba(19,34,46,.4);
  --serif:"Newsreader",Georgia,serif;
  --sans:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,sans-serif;
  --sidebar:248px; --radius:14px; --radius-sm:10px;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;}
::selection{background:var(--accent);color:#fff;}

/* hidden util */
[hidden]{display:none !important;}

/* ============ LOGIN ============ */
.login{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:24px;background:radial-gradient(120% 120% at 50% 0%,#22455e 0%,var(--primary-deep) 70%);}
.login-card{width:100%;max-width:380px;background:var(--panel);border-radius:20px;padding:38px 32px;box-shadow:var(--shadow);}
.login-logo{display:flex;justify-content:center;margin-bottom:16px;}
.login-logo img{width:64px;height:64px;border-radius:16px;box-shadow:0 8px 22px -10px rgba(19,34,46,.6);}
.login .wm{font-family:var(--serif);font-size:24px;display:flex;align-items:baseline;gap:3px;justify-content:center;margin-bottom:6px;}
.login .wm b{font-weight:500;}.login .wm .lt{font-weight:300;}.login .wm i{font-style:normal;color:var(--accent-deep);font-size:12px;transform:translateY(-9px);}
.login .sub{text-align:center;color:var(--ink-faint);font-size:13.5px;margin-bottom:28px;}
.login label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin:0 0 7px;}
.login input{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px 14px;font-size:15px;background:var(--panel-2);margin-bottom:16px;}
.login input:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(126,169,189,.25);}
.login .hint{text-align:center;font-size:12px;color:var(--ink-faint);margin-top:16px;line-height:1.5;}

/* ============ APP SHELL ============ */
.app{display:none;min-height:100%;}
.app.show{display:block;}

/* ---- sidebar (desktop) ---- */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar);background:var(--primary-deep);
  color:var(--on-primary);display:flex;flex-direction:column;padding:24px 16px;z-index:60;}
.sidebar .brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:21px;
  padding:6px 10px 22px;}
.sidebar .brand .brand-logo{width:36px;height:36px;border-radius:10px;flex-shrink:0;
  box-shadow:0 5px 14px -7px rgba(0,0,0,.6);}
.sidebar .brand .brand-wm{display:flex;align-items:baseline;}
.sidebar .brand b{font-weight:500;}.sidebar .brand .lt{font-weight:300;}
.sidebar .brand i{font-style:normal;color:var(--accent);font-size:11px;transform:translateY(-8px);}
.nav-group{display:flex;flex-direction:column;gap:3px;flex:1;}
.nav-item{display:flex;align-items:center;gap:13px;padding:12px 12px;border-radius:10px;
  font-size:14.5px;font-weight:500;color:rgba(238,244,247,.72);transition:background .15s,color .15s;border:none;background:none;text-align:left;width:100%;}
.nav-item svg{flex-shrink:0;opacity:.85;}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff;}
.nav-item.active{background:rgba(126,169,189,.2);color:#fff;}
.nav-item .badge{margin-left:auto;background:var(--accent);color:var(--primary-deep);font-size:11px;font-weight:700;
  min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px;}
.side-foot{border-top:1px solid rgba(238,244,247,.14);padding-top:16px;margin-top:8px;}
.side-user{display:flex;align-items:center;gap:11px;padding:6px 10px;}
.side-user .av{width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--primary-deep);
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:17px;}
.side-user b{font-size:13.5px;display:block;color:#fff;}
.side-user span{font-size:11.5px;color:rgba(238,244,247,.6);}
.side-logout{background:none;border:none;color:rgba(238,244,247,.6);font-size:12.5px;margin-top:10px;padding:8px 10px;width:100%;text-align:left;border-radius:8px;}
.side-logout:hover{background:rgba(255,255,255,.06);color:#fff;}

/* ---- main ---- */
.main{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column;}
.topbar{position:sticky;top:0;z-index:40;background:rgba(238,242,245,.85);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;
  padding:0 28px;height:64px;}
.topbar h1{font-size:24px;white-space:nowrap;}
.topbar .mobile-brand{display:none;}
.content{padding:28px;max-width:1080px;width:100%;margin:0 auto;flex:1;}

/* mobile chrome (hidden on desktop) */
.mobnav{display:none;}
.mobtop{display:none;}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:30px;
  padding:11px 18px;font-size:14px;font-weight:600;border:1px solid transparent;transition:.18s;white-space:nowrap;}
.btn-primary{background:var(--primary);color:var(--on-primary);}
.btn-primary:hover{background:var(--primary-deep);}
.btn-ghost{background:var(--panel);color:var(--primary);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--primary);}
.btn-quiet{background:none;color:var(--ink-soft);}
.btn-quiet:hover{background:var(--line-soft);}
.btn-danger{background:var(--danger-bg);color:var(--danger);}
.btn-danger:hover{background:#ecd0cd;}
.btn-sm{padding:8px 13px;font-size:13px;}
.btn svg{flex-shrink:0;}

/* ============ CARDS / GENERIC ============ */
.card{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);}
.section-title{font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink-faint);
  font-family:var(--sans);margin:0 0 14px;}

/* badges */
.badge-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  padding:4px 10px;border-radius:20px;letter-spacing:.01em;}
.badge-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.st-published{background:var(--ok-bg);color:var(--ok);}
.st-draft{background:var(--warn-bg);color:var(--warn);}
.st-new{background:var(--ok-bg);color:var(--ok);}
.st-contacted{background:var(--warn-bg);color:var(--warn);}
.st-booked{background:var(--primary-tint,#dde7ee);color:var(--primary);}
.st-done{background:var(--line-soft);color:var(--ink-faint);}

/* ---- CRM RDV : outils, notes, demo ---- */
.rdv-tools-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
#rdvSearch{font:inherit;font-size:13.5px;color:var(--ink);background:var(--panel);
  border:1px solid var(--line-soft);border-radius:22px;padding:9px 16px;min-width:220px;outline:none;}
#rdvSearch:focus{border-color:var(--primary);}
.rdv-note{width:100%;margin-top:12px;font:inherit;font-size:13.5px;color:var(--ink);
  background:rgba(194,162,95,.06);border:1px dashed var(--line);border-radius:9px;
  padding:9px 12px;resize:vertical;min-height:38px;outline:none;}
.rdv-note:focus{border-color:var(--primary);border-style:solid;background:var(--panel);}
.btn-quiet.danger{color:#a4453c;}
.demo-note{font-size:12.5px;color:var(--ink-faint);background:var(--panel);
  border:1px solid var(--line-soft);border-radius:9px;padding:9px 14px;margin-bottom:12px;}
.demo-note b{color:var(--ink-soft);}
body.demo-mode .demo-note,
body.demo-mode .login .hint{display:none;}
.kpi-hot{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok) inset;}
.set-actions{display:flex;gap:10px;flex-wrap:wrap;}

/* ============ DASHBOARD ============ */
.greeting{margin-bottom:24px;}
.greeting h2{font-size:30px;}
.greeting p{color:var(--ink-soft);margin-top:6px;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;}
.stat-card{padding:22px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-soft);}
.stat-card .n{font-family:var(--serif);font-size:38px;line-height:1;color:var(--primary);}
.stat-card .l{font-size:13px;color:var(--ink-soft);margin-top:8px;}
.stat-card.accent{background:var(--primary);}
.stat-card.accent .n{color:#fff;}.stat-card.accent .l{color:rgba(238,244,247,.78);}

.dash-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;}
.dash-cols > *{min-width:0;}
.panel{padding:22px;min-width:0;}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;}
.panel-head h3{font-size:19px;white-space:nowrap;}
.panel-head a{flex-shrink:0;}
.panel-head a{font-size:13px;font-weight:600;color:var(--accent-deep);}

/* mini list rows */
.row-item{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line-soft);}
.row-item:first-of-type{border-top:none;}
.row-item > .rdv-av{flex-shrink:0;}
.row-item > .badge-status{flex-shrink:0;}
.row-item .ri-main{flex:1;min-width:0;}
.row-item .ri-title{font-size:14.5px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row-item .ri-sub{font-size:12.5px;color:var(--ink-faint);margin-top:2px;}

/* ============ ARTICLES LIST ============ */
.list-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;flex-wrap:wrap;}
.filters{display:flex;gap:6px;background:var(--panel);border:1px solid var(--line-soft);border-radius:24px;padding:4px;}
.filters button{border:none;background:none;padding:8px 15px;border-radius:20px;font-size:13.5px;font-weight:600;color:var(--ink-soft);}
.filters button.active{background:var(--primary);color:var(--on-primary);}

.article-row{display:flex;align-items:center;gap:16px;padding:16px;border-radius:var(--radius);
  background:var(--panel);border:1px solid var(--line-soft);margin-bottom:12px;transition:box-shadow .18s,transform .18s;}
.article-row:hover{box-shadow:var(--shadow-soft);}
.article-row .thumb{width:64px;height:64px;border-radius:10px;flex-shrink:0;overflow:hidden;
  background:var(--ph,rgba(29,63,87,.06));background-image:repeating-linear-gradient(135deg,rgba(29,63,87,.06) 0 2px,transparent 2px 11px);
  border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;color:var(--accent-deep);}
.article-row .ar-main{flex:1;min-width:0;}
.article-row .ar-cat{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);font-weight:600;}
.article-row .ar-title{font-family:var(--serif);font-size:18px;margin:3px 0 5px;line-height:1.2;}
.article-row .ar-meta{font-size:12.5px;color:var(--ink-faint);display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.article-row .ar-meta .dot{opacity:.5;}
.article-row .ar-actions{display:flex;gap:8px;flex-shrink:0;}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);transition:.15s;}
.icon-btn:hover{border-color:var(--primary);color:var(--primary);}
.icon-btn.danger:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-bg);}

.empty{text-align:center;padding:60px 20px;color:var(--ink-faint);}
.empty svg{opacity:.4;margin-bottom:14px;}
.empty p{font-size:15px;}

/* ============ EDITOR ============ */
.editor-wrap{display:grid;grid-template-columns:1fr 0.92fr;gap:0;min-height:calc(100vh - 64px);}
.editor-pane{padding:28px;overflow-y:auto;}
.preview-pane{background:var(--bg);border-left:1px solid var(--line);padding:0;overflow-y:auto;}
.editor-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;}
.editor-bar .left{display:flex;align-items:center;gap:12px;min-width:0;}
.save-state{font-size:12.5px;color:var(--ink-faint);}

.field{margin-bottom:18px;}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:7px;}
.field .hintlabel{font-weight:400;color:var(--ink-faint);}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:12px 13px;font-size:14.5px;background:var(--panel);color:var(--ink);transition:.15s;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(126,169,189,.22);}
.field textarea{resize:vertical;min-height:64px;line-height:1.5;}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.title-input{font-family:var(--serif) !important;font-size:26px !important;padding:8px 0 !important;border:none !important;
  background:none !important;box-shadow:none !important;}
.title-input::placeholder{color:var(--ink-faint);}
.slug-line{font-size:12.5px;color:var(--ink-faint);margin-top:-8px;margin-bottom:16px;}
.slug-line b{color:var(--accent-deep);font-weight:600;}

/* rich text toolbar */
.rt-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:8px;background:var(--panel-2);
  border:1px solid var(--line);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;position:sticky;top:0;z-index:5;}
.rt-toolbar button{width:36px;height:34px;border:none;background:none;border-radius:7px;color:var(--ink-soft);
  font-size:14px;display:flex;align-items:center;justify-content:center;font-weight:600;}
.rt-toolbar button:hover{background:var(--line-soft);color:var(--primary);}
.rt-toolbar .sep{width:1px;background:var(--line);margin:4px 4px;}
.rt-toolbar .ital{font-style:italic;font-family:var(--serif);}
.editor-content{border:1px solid var(--line);border-radius:0 0 var(--radius-sm) var(--radius-sm);
  padding:18px 18px;min-height:300px;font-size:16px;line-height:1.7;color:#26333d;outline:none;background:var(--panel);}
.editor-content:focus{border-color:var(--accent-deep);}
.editor-content h2{font-family:var(--serif);font-size:24px;margin:22px 0 8px;}
.editor-content h3{font-family:var(--serif);font-size:20px;margin:18px 0 6px;}
.editor-content blockquote{border-left:3px solid var(--accent);margin:18px 0;padding:2px 0 2px 18px;
  font-family:var(--serif);font-style:italic;font-size:19px;color:var(--primary-deep);}
.editor-content p{margin:0 0 12px;}
.editor-content ul,.editor-content ol{margin:0 0 12px;padding-left:24px;}
.editor-content:empty::before{content:attr(data-ph);color:var(--ink-faint);}
.editor-content a{color:var(--primary);text-decoration:underline;}

/* preview */
.preview-head{padding:14px 22px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);
  font-weight:600;border-bottom:1px solid var(--line);background:var(--panel-2);position:sticky;top:0;}
.preview-doc{max-width:600px;margin:0 auto;padding:34px 26px 60px;}
.pv-cover{height:200px;border-radius:var(--radius);margin-bottom:24px;overflow:hidden;background-size:cover;background-position:center;
  background-color:rgba(29,63,87,.06);background-image:repeating-linear-gradient(135deg,rgba(29,63,87,.06) 0 2px,transparent 2px 12px);}
.pv-cat{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--accent-deep);margin-bottom:14px;}
.pv-title{font-size:34px;line-height:1.08;letter-spacing:-.015em;}
.pv-excerpt{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1.5;color:var(--ink-soft);margin-top:16px;}
.pv-meta{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-faint);margin:18px 0 26px;padding-bottom:20px;border-bottom:1px solid var(--line-soft);}
.pv-body{font-size:17px;line-height:1.75;color:#26333d;}
.pv-body > *{margin:0 0 18px;}
.pv-body h2{font-family:var(--serif);font-size:26px;margin:32px 0 10px;}
.pv-body h3{font-family:var(--serif);font-size:21px;margin:26px 0 8px;}
.pv-body blockquote{border-left:3px solid var(--accent);padding:2px 0 2px 22px;margin:24px 0;
  font-family:var(--serif);font-style:italic;font-size:21px;color:var(--primary-deep);}
.pv-body ul,.pv-body ol{padding-left:24px;}
.pv-body li{margin-bottom:8px;}
.pv-body a{color:var(--primary);text-decoration:underline;}

/* ============ RDV INBOX ============ */
.rdv-row{display:flex;align-items:flex-start;gap:16px;padding:18px;border-radius:var(--radius);
  background:var(--panel);border:1px solid var(--line-soft);margin-bottom:12px;}
.rdv-row.is-new{border-left:3px solid var(--accent);}
.rdv-av{width:46px;height:46px;border-radius:50%;background:var(--primary-tint);color:var(--primary);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:19px;}
.rdv-main{flex:1;min-width:0;}
.rdv-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rdv-name{font-size:16px;font-weight:600;}
.rdv-when{font-size:12.5px;color:var(--ink-faint);}
.rdv-contact{display:flex;gap:6px 16px;flex-wrap:wrap;margin-top:7px;font-size:13.5px;color:var(--ink-soft);}
.rdv-contact a{color:var(--primary);font-weight:500;overflow-wrap:anywhere;max-width:100%;}
.rdv-contact .dispo{color:var(--ink-faint);}
.rdv-msg{font-size:14px;color:var(--ink-soft);margin-top:10px;font-style:italic;
  background:var(--panel-2);border-radius:10px;padding:11px 13px;}
.rdv-actions{display:flex;gap:7px;margin-top:14px;flex-wrap:wrap;}

/* ============ SETTINGS ============ */
.settings-grid{max-width:560px;}
.set-card{padding:24px;margin-bottom:18px;}
.set-card h3{font-size:19px;margin-bottom:4px;}
.set-card .desc{font-size:13.5px;color:var(--ink-faint);margin-bottom:20px;}

/* ============ TOAST ============ */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120%);z-index:300;
  background:var(--primary-deep);color:#fff;padding:13px 22px;border-radius:30px;font-size:14px;font-weight:500;
  box-shadow:var(--shadow);transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;gap:9px;}
.toast.show{transform:translateX(-50%) translateY(0);}
.toast svg{color:var(--accent);}

/* ============ MODAL (confirm) ============ */
.modal-back{position:fixed;inset:0;z-index:250;background:rgba(20,45,63,.5);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s;}
.modal-back.show{opacity:1;pointer-events:auto;}
.modal{background:var(--panel);border-radius:18px;padding:28px;max-width:380px;width:100%;box-shadow:var(--shadow);
  transform:scale(.96);transition:transform .2s;}
.modal-back.show .modal{transform:scale(1);}
.modal h3{font-size:21px;margin-bottom:8px;}
.modal p{color:var(--ink-soft);font-size:14.5px;margin-bottom:22px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;}

/* ============================================================
   RESPONSIVE — tablette / mobile
   ============================================================ */
@media (max-width:980px){
  .editor-wrap{grid-template-columns:1fr;}
  .preview-pane{display:none;}
  .preview-pane.mobile-show{display:block;border-left:none;}
  .editor-pane.mobile-hide{display:none;}
  .dash-cols{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:760px){
  .sidebar{display:none;}
  .main{margin-left:0;padding-bottom:74px;}
  /* mobile top bar */
  .topbar{padding:0 18px;height:58px;}
  .topbar h1{display:none;}
  .topbar .mobile-brand{display:flex;align-items:baseline;gap:3px;font-family:var(--serif);font-size:19px;}
  .topbar .mobile-brand b{font-weight:500;}.topbar .mobile-brand .lt{font-weight:300;}
  .topbar .mobile-brand i{font-style:normal;color:var(--accent-deep);font-size:10px;transform:translateY(-7px);}
  .content{padding:20px 16px;}
  /* bottom tab bar */
  .mobnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:80;background:var(--panel);
    border-top:1px solid var(--line);padding:7px 6px calc(7px + env(safe-area-inset-bottom));justify-content:space-around;}
  .mobnav button{flex:1;border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;
    padding:5px 0;color:var(--ink-faint);font-size:10.5px;font-weight:600;position:relative;}
  .mobnav button.active{color:var(--primary);}
  .mobnav button .nb{position:absolute;top:0;right:50%;margin-right:-22px;background:var(--accent);color:var(--primary-deep);
    font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
  .greeting h2{font-size:26px;}
  .stat-grid{gap:12px;}
  .stat-card{padding:18px;}
  .stat-card .n{font-size:32px;}
  .editor-pane{padding:18px 16px;}
  .field-2{grid-template-columns:1fr;}
  .article-row{flex-wrap:wrap;}
  .article-row .thumb{width:52px;height:52px;}
  .article-row .ar-actions{width:100%;justify-content:flex-end;border-top:1px solid var(--line-soft);padding-top:12px;margin-top:4px;}
  .list-head{gap:12px;}
  .filters{width:100%;justify-content:space-between;padding:3px;}
  .filters button{flex:1;min-width:0;padding:8px 6px;font-size:12.5px;white-space:nowrap;}
}
@media (max-width:420px){
  .stat-grid{grid-template-columns:1fr 1fr;}
  .pv-title{font-size:28px;}
}

/* ============================================================
   CONTENU DU SITE — navigation, index, éditeur déclaratif
   ============================================================ */
.nav-label{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
  color:rgba(238,244,247,.42);padding:18px 14px 7px;}

/* index des sections (cartes) */
.sec-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.sec-card{display:flex;align-items:center;gap:15px;text-align:left;cursor:pointer;
  background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);padding:18px 20px;
  transition:.16s;font-family:inherit;}
.sec-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 14px 30px -22px rgba(19,34,46,.5);}
.sec-card .sc-ic{width:44px;height:44px;border-radius:12px;background:var(--primary-tint);color:var(--primary);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sec-card .sc-main{flex:1;min-width:0;}
.sec-card .sc-title{font-family:var(--serif);font-size:18px;color:var(--ink);}
.sec-card .sc-desc{font-size:12.5px;color:var(--ink-faint);margin-top:3px;line-height:1.45;}
.sec-card .sc-arrow{color:var(--accent-deep);font-size:18px;flex-shrink:0;}

/* éditeur de section */
.sec-editor{max-width:760px;}
.sec-edit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.sec-edit-actions{display:flex;gap:8px;flex-wrap:wrap;}
.sec-edit-intro{margin-bottom:20px;}
.sec-edit-intro h2{font-size:26px;}
.sec-edit-intro p{color:var(--ink-soft);margin-top:6px;font-size:14.5px;}
.sec-form{padding:24px;}
.sec-edit-foot{margin-top:20px;display:flex;justify-content:flex-end;}

/* champs déclaratifs (ContentEditor) */
.ce-fields{display:flex;flex-direction:column;gap:18px;}
.ce-field{display:flex;flex-direction:column;}
.ce-label{display:flex;align-items:baseline;gap:9px;margin-bottom:8px;flex-wrap:wrap;}
.ce-label label{font-size:12.5px;font-weight:600;color:var(--ink-soft);flex-shrink:0;white-space:nowrap;}
.ce-hint{font-size:11.5px;color:var(--ink-faint);font-weight:400;flex:1;min-width:0;}
.ce-field input,.ce-field textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:11px 13px;font-size:14.5px;background:var(--panel);color:var(--ink);font-family:inherit;transition:.15s;}
.ce-field textarea{resize:vertical;min-height:62px;line-height:1.5;}
.ce-field input:focus,.ce-field textarea:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(126,169,189,.22);}

/* groupe imbriqué */
.ce-group{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.ce-group-head{background:var(--panel-2);padding:11px 16px;border-bottom:1px solid var(--line);}
.ce-group-title{font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--primary);}
.ce-group-body{padding:16px;}

/* repeater */
.ce-rep-list{display:flex;flex-direction:column;gap:12px;}
.ce-rep-item{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel-2);}
.ce-rep-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;
  background:var(--panel);border-bottom:1px solid var(--line-soft);}
.ce-rep-sum{font-size:13px;font-weight:600;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ce-rep-tools{display:flex;gap:5px;flex-shrink:0;}
.ce-ic{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:var(--panel);
  color:var(--ink-soft);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.14s;}
.ce-ic:hover:not(:disabled){border-color:var(--primary);color:var(--primary);}
.ce-ic:disabled{opacity:.3;cursor:default;}
.ce-ic.danger:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-bg);}
.ce-rep-body{padding:14px;}
.ce-rep-body .ce-fields{gap:12px;}
.ce-rep-add{align-self:flex-start;border:1px dashed var(--line);background:none;color:var(--primary);
  border-radius:var(--radius-sm);padding:10px 16px;font-size:13.5px;font-weight:600;cursor:pointer;
  font-family:inherit;transition:.14s;}
.ce-rep-add:hover{border-color:var(--primary);background:var(--primary-tint);}

/* image field */
.ce-image{display:flex;gap:14px;align-items:flex-start;}
.ce-image-preview{width:96px;height:72px;border-radius:var(--radius-sm);border:1px solid var(--line);
  background:var(--panel-2) center/cover no-repeat;display:flex;align-items:center;justify-content:center;
  color:var(--ink-faint);flex-shrink:0;}
.ce-image-preview.has{border-color:var(--accent);}
.ce-image-ctrl{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.ce-image-actions{display:flex;gap:8px;flex-wrap:wrap;}
.ce-btn-mini{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);border-radius:8px;
  padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:.14s;}
.ce-btn-mini:hover{border-color:var(--primary);color:var(--primary);}
.ce-btn-mini.ghost{color:var(--ink-faint);}

/* richtext mini */
.ce-rt-toolbar{display:flex;gap:4px;margin-bottom:8px;}
.ce-rt-toolbar button{width:30px;height:30px;border:1px solid var(--line);background:var(--panel);border-radius:7px;
  cursor:pointer;font-size:13px;color:var(--ink-soft);transition:.14s;}
.ce-rt-toolbar button:hover{border-color:var(--primary);color:var(--primary);}
.ce-rt{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;min-height:90px;
  font-size:14.5px;line-height:1.6;background:var(--panel);}
.ce-rt:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(126,169,189,.22);}

@media (max-width:560px){
  .ce-image{flex-direction:column;}
  .ce-image-preview{width:100%;height:120px;}
  .sec-edit-head .sec-edit-actions{width:100%;}
}

/* ============================================================
   PAGE BUILDER — blocs glisser-déposer (repli · visibilité)
   ============================================================ */
.pb-head{margin-bottom:20px;}
.pb-head h2{font-size:28px;}
.pb-head p{color:var(--ink-faint);margin-top:6px;font-size:14px;}
.pb-head a{color:var(--accent-deep);font-weight:600;}
.pb-list{display:flex;flex-direction:column;gap:14px;}
.pb-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  transition:box-shadow .15s, opacity .15s;}
.pb-block.dragging{box-shadow:0 22px 50px -20px rgba(19,34,46,.5);opacity:.96;border-color:var(--accent);}
.pb-block.is-hidden{opacity:.62;}
.pb-block.is-hidden .pb-title{text-decoration:line-through;color:var(--ink-faint);}
.pb-bar{display:flex;align-items:center;gap:11px;padding:14px 16px;cursor:pointer;user-select:none;}
.pb-handle{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;
  color:var(--ink-faint);cursor:grab;flex-shrink:0;touch-action:none;}
.pb-handle:hover{background:var(--panel-2);color:var(--ink-soft);}
.pb-handle:active{cursor:grabbing;}
.pb-chev{color:var(--ink-faint);font-size:11px;width:12px;flex-shrink:0;}
.pb-title{font-family:var(--serif);font-size:18px;color:var(--ink);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pb-tools{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.pb-saved{font-size:12px;font-weight:600;color:var(--ok);opacity:0;transform:translateY(2px);transition:.2s;}
.pb-saved.show{opacity:1;transform:none;}
.pb-eye,.pb-del{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;
  color:var(--ink-soft);display:flex;align-items:center;justify-content:center;transition:.14s;}
.pb-eye:hover,.pb-del:hover{background:var(--panel-2);border-color:var(--line);}
.pb-eye.off{color:var(--ink-faint);}
.pb-del:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-bg);}
.pb-body{padding:4px 18px 20px;border-top:1px solid var(--line-soft);}
.pb-add{margin-top:16px;width:100%;border:1.5px dashed var(--line);background:none;color:var(--primary);
  border-radius:var(--radius);padding:16px;font-size:14.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:.15s;}
.pb-add:hover{border-color:var(--primary);background:var(--primary-tint);}

/* ============================================================
   DASHBOARD ANALYTICS
   ============================================================ */
.dash-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;}
.period-tabs{display:inline-flex;gap:4px;background:var(--panel-2);border:1px solid var(--line-soft);
  border-radius:10px;padding:4px;margin-bottom:22px;}
.period-tabs button{border:none;background:none;padding:7px 16px;border-radius:7px;font-size:13px;font-weight:600;
  color:var(--ink-soft);cursor:pointer;font-family:inherit;transition:.14s;}
.period-tabs button.active{background:var(--panel);color:var(--primary);box-shadow:0 2px 6px -3px rgba(19,34,46,.4);}

.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px;}
.kpi{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);padding:18px;}
.kpi-l{font-size:12px;color:var(--ink-faint);font-weight:600;}
.kpi-n{font-family:var(--serif);font-size:34px;line-height:1.05;color:var(--primary);margin:8px 0 2px;}
.kpi-s{font-size:12px;color:var(--ink-faint);}

.dash-row{display:grid;gap:16px;margin-bottom:16px;}
.dash-row.dash-main{grid-template-columns:1.7fr 1fr;}
.dash-row.triple{grid-template-columns:repeat(3,1fr);}
.dash-row.pages-row{grid-template-columns:1.7fr 1fr;}
.dpanel{padding:20px;}
.dpanel-h{display:flex;align-items:center;gap:8px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;
  font-weight:700;color:var(--ink-soft);margin-bottom:16px;}
.dp-ic{font-size:14px;}
.area-wrap{height:200px;}
.area-svg{width:100%;height:100%;display:block;}
.donut-wrap{display:flex;justify-content:center;margin-bottom:14px;}
.donut-wrap.sm svg{width:96px;height:96px;}
.dlg{display:flex;flex-direction:column;gap:8px;}
.dlg-row{display:flex;align-items:center;gap:9px;font-size:13.5px;}
.dlg-row .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.dlg-name{flex:1;min-width:0;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dlg-val{font-weight:600;color:var(--ink);}
.rank{display:flex;flex-direction:column;gap:9px;}
.rank-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px;}
.rank-name{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-val{font-weight:600;color:var(--ink);flex-shrink:0;}
.rdv-quick{text-align:center;padding:10px 0;}
.rdv-quick .rq-n{font-family:var(--serif);font-size:46px;color:var(--primary);line-height:1;}
.rdv-quick .rq-l{font-size:13.5px;color:var(--ink-faint);margin:6px 0 16px;}

.nav-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:8px 0 16px;}
.nav-card{display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;font-family:inherit;
  background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);padding:18px 20px;transition:.16s;}
.nav-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 14px 30px -22px rgba(19,34,46,.5);}
.nc-ic{font-size:22px;flex-shrink:0;}
.nc-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.nc-title{font-family:var(--serif);font-size:17px;color:var(--ink);}
.nc-desc{font-size:12.5px;color:var(--ink-faint);margin-top:2px;}
.nc-arrow{color:var(--accent-deep);font-size:17px;flex-shrink:0;}

.guide-box{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--radius);padding:22px 24px;}
.guide-h{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:12px;}
.guide-box ul{margin:0;padding-left:20px;color:var(--ink-soft);font-size:13.5px;line-height:1.8;}

@media (max-width:1080px){
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
  .dash-row.dash-main,.dash-row.triple,.dash-row.pages-row{grid-template-columns:1fr;}
  .nav-cards{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .pb-bar{padding:12px 13px;gap:9px;}
  .pb-body{padding:4px 13px 16px;}
  .kpi-grid{grid-template-columns:1fr 1fr;}
  .kpi-n{font-size:28px;}
  .dash-top{flex-direction:column;}
}

/* ============================================================
   ÉDITEUR D'ARTICLE — ajouts (autosave · SEO · images · wordcount)
   ============================================================ */
.editor-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.save-state.saving{color:var(--accent-deep);}
.save-state.saved{color:var(--ok);}
.cover-cap-input{margin-top:10px;width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:10px 13px;font-size:13.5px;background:var(--panel);color:var(--ink);font-family:inherit;}
.cover-cap-input:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(126,169,189,.22);}
.wordcount{font-size:12px;color:var(--ink-faint);margin-top:8px;text-align:right;}

/* images dans le corps */
.editor-content img,.pv-body img{max-width:100%;border-radius:var(--radius-sm);display:block;margin:6px 0;}
.editor-content figure,.pv-body figure{margin:18px 0;}
.editor-content figcaption,.pv-body figcaption{font-size:12px;color:var(--ink-faint);
  font-style:italic;text-align:center;margin-top:6px;}

/* panneau SEO */
.seo-panel{margin-top:22px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel-2);}
.seo-panel summary{cursor:pointer;list-style:none;padding:14px 18px;font-size:13.5px;font-weight:600;color:var(--ink-soft);
  display:flex;align-items:center;gap:9px;user-select:none;}
.seo-panel summary::-webkit-details-marker{display:none;}
.seo-panel[open] summary{border-bottom:1px solid var(--line-soft);}
.seo-ic{font-size:14px;}
.seo-body{padding:18px;display:flex;flex-direction:column;gap:16px;background:var(--panel);}
.slug-edit{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;}
.slug-edit span{padding:0 4px 0 13px;font-size:13.5px;color:var(--ink-faint);white-space:nowrap;}
.slug-edit input{border:none !important;box-shadow:none !important;padding-left:2px !important;}
.meta-count{font-size:12px;color:var(--ink-faint);margin-top:6px;}
.meta-count.warn{color:var(--danger);}
.seo-preview{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:14px 16px;}
.sp-url{font-size:12.5px;color:var(--ok);margin-bottom:4px;}
.sp-title{font-size:17px;color:#1a0dab;line-height:1.3;}
.sp-desc{font-size:13px;color:var(--ink-soft);line-height:1.5;margin-top:3px;}

/* ============================================================
   ASSISTANT IA + MODALE NOUVELLE DEMANDE
   ============================================================ */
.ai-back{position:fixed;inset:0;z-index:200;background:rgba(19,34,46,.42);backdrop-filter:blur(3px);
  display:flex;align-items:flex-start;justify-content:center;padding:40px 18px;overflow-y:auto;}
.ai-modal{width:100%;max-width:560px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 32px 70px -28px rgba(19,34,46,.6);padding:22px 24px 24px;animation:aiIn .22s cubic-bezier(.2,.7,.2,1) both;}
@keyframes aiIn{from{opacity:0;transform:translateY(12px) scale(.99);}to{opacity:1;transform:none;}}
.ai-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.ai-title{font-family:var(--serif);font-size:20px;color:var(--ink);}
.ai-x{border:none;background:none;font-size:16px;color:var(--ink-faint);cursor:pointer;width:32px;height:32px;border-radius:8px;}
.ai-x:hover{background:var(--panel-2);color:var(--ink);}
.ai-warn{background:#fff6e8;border:1px solid #f0d9af;color:#8a6320;border-radius:var(--radius-sm);
  padding:10px 13px;font-size:12.5px;margin-bottom:14px;}
.ai-brief label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:7px;}
.ai-brief label span{font-weight:400;color:var(--ink-faint);}
.ai-brief textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px;
  font-size:14px;background:var(--panel);color:var(--ink);font-family:inherit;min-height:58px;resize:vertical;}
.ai-brief textarea:focus{outline:none;border-color:var(--accent-deep);box-shadow:0 0 0 3px rgba(126,169,189,.22);}
.ai-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px;}
.ai-act{border:1px solid var(--line);background:var(--panel-2);color:var(--primary);border-radius:var(--radius-sm);
  padding:12px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:.14s;}
.ai-act:hover{border-color:var(--primary);background:var(--primary-tint);}
.ai-result{margin-top:16px;border-top:1px solid var(--line-soft);padding-top:16px;}
.ai-busy{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:13.5px;}
.ai-spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;
  animation:aiSpin .7s linear infinite;flex-shrink:0;}
@keyframes aiSpin{to{transform:rotate(360deg);}}
.ai-err{color:var(--danger);font-size:13.5px;}
.ai-note{font-size:13px;color:var(--ink-soft);margin-bottom:10px;}
.ai-preview{max-height:280px;overflow-y:auto;border:1px solid var(--line-soft);border-radius:var(--radius-sm);
  padding:14px 16px;font-size:14px;line-height:1.6;color:#26333d;background:var(--panel-2);}
.ai-preview h2{font-family:var(--serif);font-size:19px;margin:14px 0 6px;}
.ai-preview h3{font-family:var(--serif);font-size:16px;margin:12px 0 5px;}
.ai-preview p{margin:0 0 10px;}
.ai-preview blockquote{border-left:3px solid var(--accent);padding-left:14px;font-style:italic;color:var(--primary-deep);margin:12px 0;}
.ai-foot{display:flex;gap:8px;margin-top:14px;}
.ai-seo label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin:10px 0 5px;}
.ai-chip{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);
  padding:10px 13px;font-size:13.5px;color:var(--ink);line-height:1.5;}
.ai-titles{display:flex;flex-direction:column;gap:8px;}
.ai-tline{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-sm);
  padding:11px 14px;font-size:14px;color:var(--ink);cursor:pointer;font-family:var(--serif);transition:.14s;}
.ai-tline:hover{border-color:var(--primary);background:var(--primary-tint);}

.rdv-new-sub{font-size:13px;color:var(--ink-faint);margin:-4px 0 14px;}
.rdv-dupe{margin-top:12px;background:#fff6e8;border:1px solid #f0d9af;color:#8a6320;
  border-radius:var(--radius-sm);padding:10px 13px;font-size:12.5px;}

/* ============================================================
   RDV — résumé, groupes, badges
   ============================================================ */
.rdv-summary{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.rs-item{flex:1;min-width:120px;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:14px 16px;display:flex;flex-direction:column;}
.rs-item.hot{border-color:var(--accent);background:linear-gradient(180deg,var(--primary-tint),var(--panel));}
.rs-n{font-family:var(--serif);font-size:28px;line-height:1;color:var(--primary);}
.rs-l{font-size:12.5px;color:var(--ink-faint);margin-top:5px;}
.rdv-group{margin-bottom:22px;}
.rdv-group-h{display:flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:var(--ink-soft);margin:0 0 12px 2px;}
.rgc{background:var(--panel-2);border:1px solid var(--line-soft);border-radius:20px;padding:1px 9px;font-size:11px;color:var(--ink-soft);}
.rdv-src{font-size:11px;font-weight:600;color:var(--accent-deep);background:var(--primary-tint);
  border-radius:20px;padding:2px 9px;}
.rdv-dupe-chip{font-size:11px;font-weight:600;color:#8a6320;background:#fff3df;border:1px solid #f0d9af;border-radius:20px;padding:2px 9px;}
.rdv-statwhen{font-size:12px;color:var(--ink-faint);font-style:italic;}

@media (max-width:560px){
  .ai-actions{grid-template-columns:1fr;}
  .ai-back{padding:18px 12px;}
  .rdv-summary .rs-item{min-width:0;padding:12px;}
  .rs-n{font-size:23px;}
}


/* ── Avis clients : sélecteur de couleur de pastille ──────── */
.av-colors {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.av-color-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 3px solid transparent;
  cursor: pointer;
  transition: transform .15s, border-color .15s, box-shadow .15s;
  outline: none;
  padding: 0;
}
.av-color-btn:hover { transform: scale(1.12); }
.av-color-btn.on {
  border-color: var(--ink);
  box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--ink);
  transform: scale(1.15);
}

/* ── Sélecteur de thème dans Paramètres ─────────────────────── */
.theme-pick-row {
  display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px;
}
.theme-pick-opt {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; border-radius: 10px;
  border: 1.5px solid var(--line-soft); cursor: pointer;
  flex: 1 1 220px; transition: border-color .15s, background .15s;
  user-select: none;
}
.theme-pick-opt input[type="radio"] { display: none; }
.theme-pick-opt:hover { border-color: var(--accent); }
.theme-pick-opt.sel { border-color: var(--primary); background: rgba(29,63,87,.05); }
.theme-pick-sw { display: flex; gap: 4px; flex-shrink: 0; }
.theme-pick-sw span { width: 18px; height: 18px; border-radius: 50%; display: block; border: 1px solid rgba(0,0,0,.08); }
.theme-pick-lbl { display: flex; flex-direction: column; gap: 3px; }
.theme-pick-lbl strong { font-size: 14px; color: var(--ink); font-weight: 600; }
.theme-pick-lbl span  { font-size: 12px; color: var(--ink-faint); }

/* ============================================================
   THÈME LUXE — surcharge palette or chaud
   Activé par body.theme-luxury (param ?theme=luxury)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;1,400&family=Manrope:wght@400;500;600;700&display=swap');

body.theme-luxury {
  --bg:           hsl(45, 20%, 97%);
  --panel:        #ffffff;
  --panel-2:      hsl(42, 18%, 93%);
  --ink:          hsl(0, 0%, 14%);
  --ink-soft:     hsl(0, 0%, 38%);
  --ink-faint:    hsl(0, 0%, 58%);
  --primary:      hsl(40, 45%, 56%);
  --primary-deep: hsl(40, 52%, 38%);
  --primary-tint: hsl(40, 35%, 90%);
  --on-primary:   hsl(0, 0%, 10%);
  --accent:       hsl(40, 46%, 76%);
  --accent-deep:  hsl(38, 52%, 42%);
  --line:         rgba(163,126,60,.18);
  --line-soft:    rgba(163,126,60,.1);
  --serif:        'Playfair Display', Georgia, serif;
  --sans:         'Manrope', -apple-system, sans-serif;
}

/* Login background */
body.theme-luxury .login {
  background: radial-gradient(120% 120% at 50% 0%, hsl(40,30%,22%) 0%, hsl(30,20%,10%) 70%);
}
body.theme-luxury .login input:focus {
  box-shadow: 0 0 0 3px rgba(163,126,60,.2);
}

/* Sidebar */
body.theme-luxury .sidebar {
  background: hsl(30, 18%, 10%);
}
body.theme-luxury .sidebar .brand i,
body.theme-luxury .sidebar .brand b { color: hsl(40,45%,60%); }
body.theme-luxury .nav-item.active { background: rgba(163,126,60,.18); }
body.theme-luxury .nav-item:hover  { background: rgba(163,126,60,.1); }
body.theme-luxury .nav-item .badge {
  background: hsl(40,45%,56%); color: hsl(0,0%,10%);
}
body.theme-luxury .side-user .av {
  background: hsl(40,45%,56%); color: hsl(0,0%,10%);
}
body.theme-luxury .side-foot { border-color: rgba(163,126,60,.18); }

/* Top bar */
body.theme-luxury .topbar {
  background: rgba(253,251,248,.88);
  border-color: rgba(163,126,60,.12);
}

/* Stat card accent */
body.theme-luxury .stat-card .n { color: var(--primary-deep); }
body.theme-luxury .stat-card.accent { background: hsl(40,45%,56%); }

/* Buttons */
body.theme-luxury .btn-primary { background: hsl(40,45%,56%); color: hsl(0,0%,10%); }
body.theme-luxury .btn-primary:hover { background: hsl(40,52%,38%); color: #fff; }
body.theme-luxury .btn-ghost   { color: hsl(38,52%,42%); border-color: rgba(163,126,60,.3); }
body.theme-luxury .btn-ghost:hover { border-color: hsl(40,45%,56%); }

/* Mobile nav bar */
body.theme-luxury .mobnav {
  background: hsl(30, 18%, 10%);
  border-color: rgba(163,126,60,.14);
}
body.theme-luxury .mobnav button { color: rgba(210,185,130,.55); }
body.theme-luxury .mobnav button.active { color: hsl(40,45%,60%); }
body.theme-luxury .mobnav button.active svg { color: hsl(40,45%,56%); }
body.theme-luxury .mobnav .nb { background: hsl(40,45%,56%); color: hsl(0,0%,10%); }

/* Theme picker selected state */
body.theme-luxury .theme-pick-opt.sel {
  border-color: hsl(40,45%,56%);
  background: rgba(163,126,60,.06);
}

/* Back-to-site button */
.back-to-site {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 600;
  padding: 7px 14px; border-radius: 16px;
  text-decoration: none; white-space: nowrap;
  transition: opacity .15s;
  background: var(--primary-tint); color: var(--primary-deep);
  border: 1px solid var(--line);
  margin-right: 16px;
}
.back-to-site:hover { opacity: .8; }
body.theme-luxury .back-to-site {
  background: rgba(163,126,60,.12);
  color: hsl(38,52%,42%);
  border-color: rgba(163,126,60,.25);
}

.back-to-selector {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 500;
  padding: 6px 12px; border-radius: 14px;
  text-decoration: none; white-space: nowrap;
  transition: opacity .15s;
  color: var(--ink-faint);
  border: 1px solid var(--line-soft);
  margin-right: 8px;
}
.back-to-selector:hover { opacity: .75; }
body.theme-luxury .back-to-selector {
  color: rgba(210,185,130,.6);
  border-color: rgba(163,126,60,.18);
}
