  :root {
    --red: #E31B23;
    --red-hover: #FF2530;
    --red-dim: rgba(227,27,35,0.10);
    --bg: #f5f6fa;
    --sidebar: #ffffff;
    --card: #ffffff;
    --card2: #f8f9fb;
    --border: #e5e7eb;
    --border2: #d1d5db;
    --text: #111827;
    --text2: #6b7280;
    --text3: #9ca3af;
    --green: #16a34a;
    --green-dim: rgba(22,163,74,0.10);
    --yellow: #d97706;
    --yellow-dim: rgba(217,119,6,0.10);
    --blue: #3B82F6;
    --blue-dim: rgba(59,130,246,0.10);
    --sidebar-w: 250px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;font-size:14px}
  #app{position:relative;z-index:10;background:var(--bg)}

  /* ─── LOGIN ─────────────────────────────── */
  #login-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:10}
  .login-box{position:relative;z-index:1;width:420px;padding:48px;background:rgba(10,20,36,0.82);border:1px solid rgba(80,130,200,0.22);border-radius:16px;backdrop-filter:blur(18px);box-shadow:0 24px 64px rgba(0,0,0,0.50)}
  .login-logo{width:220px;display:block;margin:0 auto 32px}
  .login-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:rgba(227,27,35,0.12);border:1px solid rgba(227,27,35,0.30);border-radius:20px;font-size:11px;font-weight:700;color:#E31B23;letter-spacing:.10em;text-transform:uppercase;margin:0 auto 12px;width:fit-content}
  .login-title{font-size:20px;font-weight:700;text-align:center;margin-bottom:6px;color:#ffffff}
  .login-sub{font-size:13px;color:#A0A0A0;text-align:center;margin-bottom:32px}
  .form-group{margin-bottom:16px}
  .form-group label{display:block;font-size:12px;font-weight:600;color:#A0A0A0;margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}
  .form-group input{width:100%;padding:12px 14px;background:rgba(7,15,28,0.80);border:1px solid rgba(80,130,200,0.30);border-radius:8px;color:#ffffff;font-family:inherit;font-size:14px;outline:none;transition:.2s}
  .form-group input:focus{border-color:#E31B23}
  .btn-login{width:100%;padding:13px;background:var(--red);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;margin-top:8px;transition:.2s}
  .btn-login:hover{background:#FF2530}
  .login-error{font-size:12px;color:#E31B23;margin-top:10px;text-align:center;min-height:18px}

  /* ─── APP SHELL ──────────────────────────── */
  #app{display:none;width:100%;min-height:100vh;position:relative;z-index:10}

  /* ─── SIDEBAR ────────────────────────────── */
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;transition:.3s}
  .sidebar-logo{padding:20px 20px 0;border-bottom:1px solid var(--border)}
  .sidebar-logo img{width:100%;max-width:180px;display:block;margin:0 auto 16px}
  .admin-badge-wrap{padding:10px 14px;border-bottom:1px solid var(--border)}
  .admin-badge{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--red-dim);border:1px solid rgba(227,27,35,.25);border-radius:8px}
  .admin-badge-dot{width:8px;height:8px;border-radius:50%;background:#E31B23;box-shadow:0 0 6px #E31B23}
  .admin-badge-text{font-size:12px;font-weight:700;color:var(--red);letter-spacing:.04em;text-transform:uppercase}
  .sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto}
  .nav-section{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);padding:8px 10px 4px}
  .nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--text2);font-size:13px;font-weight:500;transition:.15s;margin-bottom:2px;text-decoration:none}
  .nav-item:hover{background:var(--card);color:var(--text)}
  .nav-item.active{background:var(--red-dim);color:var(--red)}
  .nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.8}
  .nav-item.active svg{opacity:1}
  .nav-item .nav-count{margin-left:auto;background:var(--card2);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}
  .sidebar-footer{padding:12px;border-top:1px solid var(--border)}
  .btn-logout{width:100%;padding:10px;background:transparent;border:1px solid var(--border2);border-radius:8px;color:var(--text2);font-family:inherit;font-size:12px;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center;gap:6px}
  .btn-logout:hover{border-color:var(--red);color:var(--red)}
  .sidebar-toggle{display:none;position:fixed;top:14px;left:14px;z-index:200;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px;cursor:pointer;color:var(--text)}

  /* ─── MAIN ───────────────────────────────── */
  .main{margin-left:var(--sidebar-w);flex:1;min-height:100vh;display:flex;flex-direction:column}
  .topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);position:sticky;top:0;background:rgba(255,255,255,0.96);backdrop-filter:blur(8px);z-index:50}
  .topbar-title{font-size:16px;font-weight:700}
  .topbar-right{font-size:12px;color:var(--text2)}
  .content{padding:28px;flex:1}

  /* ─── TABS ───────────────────────────────── */
  .tab-panel{display:none}
  .tab-panel.active{display:block}

  /* ─── STAT CARDS ─────────────────────────── */
  .stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-bottom:28px}
  .kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .kpi-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
  .kpi-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px 72px 20px 20px;position:relative;overflow:hidden}
  .stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
  .stat-card.c-red::before{background:var(--red)}
  .stat-card.c-green::before{background:var(--green)}
  .stat-card.c-yellow::before{background:var(--yellow)}
  .stat-card.c-blue::before{background:var(--blue)}
  .stat-label{font-size:11px;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
  .stat-value{font-size:28px;font-weight:700;line-height:1;margin-bottom:4px}
  .stat-sub{font-size:11px;color:var(--text2)}
  .stat-icon{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center}
  .stat-icon svg{width:18px;height:18px;stroke-linecap:round;stroke-linejoin:round}

  /* ─── CHARTS ─────────────────────────────── */
  .chart-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:28px}
  .chart-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,0.05)}
  .chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
  .chart-title{font-size:14px;font-weight:700}
  .chart-sub{font-size:11px;color:var(--text2)}

  /* ─── TABLE ──────────────────────────────── */
  .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}
  .section-title{font-size:16px;font-weight:700}
  .table-wrap{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.05)}
  table{width:100%;border-collapse:collapse}
  thead th{background:var(--card2);padding:12px 16px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);border-bottom:1px solid var(--border)}
  tbody tr{border-bottom:1px solid var(--border);transition:.15s}
  tbody tr:last-child{border-bottom:none}
  tbody tr:hover{background:rgba(255,255,255,.03)}
  tbody td{padding:12px 16px;font-size:13px;vertical-align:middle}
  #tab-blocs .table-wrap{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 220px)}
  #blocs-table{width:100%;min-width:100%;table-layout:fixed}
  #blocs-table thead th{position:sticky;top:0;z-index:3;background:var(--card2)}
  #blocs-table thead th,#blocs-table tbody td{padding:10px 8px;font-size:12px;line-height:1.3;vertical-align:top;word-break:break-word}
  #blocs-table thead th{font-size:10px}
  #blocs-table .progress-wrap{min-width:64px}
  /* Vue Facturation (tableau dédié, séparé de #blocs-table) */
  #blocs-billing-table{width:100%;min-width:980px;table-layout:auto}
  #blocs-billing-table thead th{position:sticky;top:0;z-index:3;background:var(--card2);padding:10px 8px;font-size:10px;text-align:left}
  #blocs-billing-table thead th.billing-col-notes{min-width:220px}
  #blocs-billing-table tbody td{padding:10px 8px;font-size:12px;line-height:1.3;vertical-align:top;word-break:break-word}
  #blocs-billing-table .progress-wrap{min-width:64px}
  #blocs-table td:nth-child(15),#blocs-table td:nth-child(16){font-size:11px}
  .bloc-expertise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin-bottom:10px}
  .bloc-expertise-card{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;background:var(--card);border:1px solid var(--border2);border-radius:8px;cursor:pointer;transition:.15s;color:var(--text);font-family:inherit;text-align:left;min-height:36px}
  .bloc-expertise-card:hover{border-color:var(--red);box-shadow:0 4px 14px rgba(0,0,0,.06)}
  .bloc-expertise-card.active{border-color:var(--red);background:var(--red-dim)}
  .bloc-expertise-label{font-size:11px;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bloc-expertise-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;border-radius:999px;background:var(--card2);font-size:10px;font-weight:700;color:var(--text2)}
  .bloc-expertise-card.active .bloc-expertise-count{background:rgba(227,27,35,.18);color:var(--red)}
  .bloc-cell-details{width:100%}
  .bloc-cell-details summary{cursor:pointer;list-style:none;font-size:11px;font-weight:600;color:var(--text2)}
  .bloc-cell-details summary::-webkit-details-marker{display:none}
  .bloc-cell-details summary::after{content:'Voir';display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--card2);font-size:10px;color:var(--text2)}
  .bloc-cell-details[open] summary::after{content:'Masquer'}
  .bloc-cell-details-body{margin-top:6px;display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text)}
  .col-resize-handle{position:absolute;top:0;right:0;width:10px;height:100%;cursor:col-resize;user-select:none;touch-action:none}
  .col-resize-handle::after{content:'';position:absolute;right:2px;top:18%;width:2px;height:64%;background:transparent;border-radius:2px;transition:background-color .15s}
  #blocs-table thead th:hover .col-resize-handle::after{background:var(--border2)}
  .td-name{font-weight:600}
  .td-meta{font-size:11px;color:var(--text2);margin-top:2px}
  .hint-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--border2);font-size:10px;font-weight:700;color:var(--text2);cursor:help;margin-left:6px;background:var(--card2)}
  .bloc-editable{cursor:pointer}
  .bloc-editable:hover{background:rgba(227,27,35,0.04)}
  .bloc-editable.is-editing{padding:8px 10px;background:var(--card2)}
  .bloc-inline-editor{width:100%;padding:7px 8px;background:var(--card);border:1px solid var(--red);border-radius:6px;color:var(--text);font-family:inherit;font-size:12px;outline:none}
  textarea.bloc-inline-editor{min-height:72px;resize:vertical;line-height:1.4}

  /* ─── BADGES ─────────────────────────────── */
  .badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}
  .badge-new{background:var(--red-dim);color:var(--red)}
  .badge-accepted{background:var(--green-dim);color:var(--green)}
  .badge-pending{background:var(--yellow-dim);color:var(--yellow)}
  .badge-closed{background:rgba(96,96,96,.2);color:var(--text3)}
  .badge-active{background:var(--green-dim);color:var(--green)}
  .badge-inactive{background:rgba(96,96,96,.2);color:var(--text3)}
  .badge-facebook{background:rgba(24,119,242,.12);color:#1877F2}
  .badge-google{background:var(--green-dim);color:var(--green)}

  /* ─── FILTER BAR ─────────────────────────── */
  .filter-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
  .search-input{flex:1;min-width:180px;padding:9px 12px;background:var(--card);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-family:inherit;font-size:13px;outline:none}
  .search-input:focus{border-color:var(--red)}
  .filter-select{padding:9px 12px;background:var(--card);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-family:inherit;font-size:13px;outline:none;cursor:pointer}
  .filter-select:focus{border-color:var(--red)}
  .btn-primary{padding:9px 16px;background:var(--red);color:#fff;border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.2s;white-space:nowrap}
  .btn-primary:hover{background:var(--red-hover)}
  .btn-ghost{padding:9px 16px;background:transparent;color:var(--text2);border:1px solid var(--border2);border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:.2s}
  .btn-ghost:hover{border-color:var(--text);color:var(--text)}
  .btn-sm{padding:5px 10px;font-size:12px}
  .export-wrap{position:relative}
  .export-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:150px;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.10);padding:6px;display:none;z-index:40}
  .export-menu.open{display:flex;flex-direction:column;gap:4px}
  .export-menu button{background:transparent;border:none;text-align:left;padding:8px 10px;border-radius:8px;color:var(--text);font-family:inherit;font-size:12px;cursor:pointer}
  .export-menu button:hover{background:var(--card2)}
  .tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:var(--card2);color:var(--text2);border:1px solid var(--border2)}
  .tag-type-envoi{background:var(--blue-dim);color:var(--blue);border-color:rgba(59,130,246,.30)}
  .tag-type-envoi-unique{background:rgba(22,163,74,.16);color:#166534;border-color:rgba(22,163,74,.35);font-weight:700}
  #blocs-table tbody tr.bloc-row-unique td{background:rgba(22,163,74,.08)}
  #blocs-table tbody tr.bloc-row-unique td:first-child{background:rgba(22,163,74,.18);box-shadow:inset 4px 0 0 #16a34a;font-weight:700}
  #blocs-table tbody tr.bloc-row-unique:hover td{background:rgba(22,163,74,.14)}
  #blocs-table tbody tr.bloc-group-row td{background:#eef2ff!important;color:#1e3a8a;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-top:1px solid #c7d2fe;border-bottom:1px solid #c7d2fe;padding:10px 16px}
  #blocs-table tbody tr.bloc-subgroup-row td{background:#f8fafc!important;color:#334155;font-size:11px;font-weight:700;letter-spacing:.04em;border-bottom:1px solid #e2e8f0;padding:9px 16px}
  #blocs-table tbody tr.bloc-group-row td,#blocs-table tbody tr.bloc-subgroup-row td{cursor:default;user-select:text}
  .bloc-collapse-indicator{display:inline-block;width:14px;margin-right:6px;font-weight:900}
  #blocs-table tbody tr.bloc-hidden{display:none}
  #blocs-table tbody tr[data-row-kind="bloc"]{transition:background-color .15s, opacity .15s}
  #blocs-table tbody tr.bloc-row-dragging{opacity:.45}
  #blocs-table tbody tr.bloc-drop-before td{box-shadow:inset 0 2px 0 var(--blue)}
  #blocs-table tbody tr.bloc-drop-after td{box-shadow:inset 0 -2px 0 var(--blue)}
  #blocs-table tbody tr.bloc-drop-region-target td{background:rgba(59,130,246,.15)!important;box-shadow:inset 0 0 0 2px var(--blue)}
  .bloc-drag-handle{cursor:grab}
  .bloc-drag-handle:active{cursor:grabbing}
  .region-row{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--border)}
  .region-row:last-child{border-bottom:none}
  .region-name{font-weight:500;flex:1}

  /* ─── MODAL ──────────────────────────────── */
  .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:500;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:.2s}
  .modal-overlay.open{opacity:1;pointer-events:all}
  .modal{background:var(--card);border:1px solid var(--border);border-radius:16px;width:90%;max-width:580px;max-height:90vh;overflow-y:auto;transform:translateY(16px);transition:.2s;box-shadow:0 20px 60px rgba(0,0,0,0.12)}
  .modal-overlay.open .modal{transform:translateY(0)}
  .modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 0}
  .modal-title{font-size:16px;font-weight:700}
  .modal-close{background:none;border:none;color:var(--text2);cursor:pointer;padding:4px;border-radius:6px;line-height:0}
  .modal-close:hover{color:var(--text)}
  .modal-body{padding:20px 24px 24px}
  .modal-divider{border:none;border-top:1px solid var(--border);margin:16px 0}
  .modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .modal-field label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);margin-bottom:6px}
  .modal-field input,.modal-field select,.modal-field textarea{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-family:inherit;font-size:13px;outline:none}
  .modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--red)}
  .modal-field .value{font-size:14px;color:var(--text)}
  .modal-actions{display:flex;gap:10px;margin-top:20px}

  /* ─── LEAD DETAIL ────────────────────────── */
  .detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
  .detail-field label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);display:block;margin-bottom:4px}
  .detail-field .value{font-size:14px}

  /* ─── PARTNER DETAIL ─────────────────────── */
  .partner-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
  .pstat{background:var(--card2);border-radius:8px;padding:12px 14px}
  .pstat-val{font-size:18px;font-weight:700}
  .pstat-lbl{font-size:11px;color:var(--text2);margin-top:2px}

  /* ─── ASSIGN MODAL ───────────────────────── */
  .assign-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}
  .assign-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--card2);border:1px solid var(--border);border-radius:8px}
  .assign-item-name{font-weight:600;font-size:13px}
  .assign-item-meta{font-size:11px;color:var(--text2)}

  /* ─── RESPONSIVE ─────────────────────────── */
  @media(max-width:1280px){
    #tab-blocs .table-wrap{overflow:auto}
    #blocs-table{min-width:1200px;table-layout:auto}
  }

  @media(max-width:768px){
    .sidebar{transform:translateX(-100%)}
    .sidebar.open{transform:translateX(0)}
    .sidebar-toggle{display:flex}
    .main{margin-left:0}
    .topbar{padding:16px 20px 16px 56px}
    .content{padding:20px 16px}
    .stat-grid{grid-template-columns:1fr 1fr}
    .chart-grid{grid-template-columns:1fr}
    .modal-grid{grid-template-columns:1fr}
    .detail-grid{grid-template-columns:1fr}
    .partner-stats{grid-template-columns:1fr 1fr}
  }

  @media(max-width:1100px){
    .kpi-grid{grid-template-columns:1fr 1fr}
    .kpi-grid-5{grid-template-columns:1fr 1fr}
    .kpi-grid-2{grid-template-columns:1fr 1fr}
  }

  @media(max-width:640px){
    .kpi-grid{grid-template-columns:1fr}
    .kpi-grid-5{grid-template-columns:1fr}
    .kpi-grid-2{grid-template-columns:1fr}
  }

  /* ─── BLUEPRINT BACKGROUND ────────────────────────────────────── */
  #blueprint-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
  #blueprint-bg .bp-paper{
    position:absolute;inset:0;
    background:
      radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.06), transparent 55%),
      radial-gradient(ellipse at 80% 90%, rgba(0,0,0,0.35), transparent 60%),
      linear-gradient(135deg, #0e3358, #0b2942 70%);
  }
  #blueprint-bg .bp-grid-fine{
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(159,196,230,0.07) 1px, transparent 1px),
      linear-gradient(90deg, rgba(159,196,230,0.07) 1px, transparent 1px);
    background-size:24px 24px;
  }
  #blueprint-bg .bp-grid-coarse{
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(159,196,230,0.14) 1px, transparent 1px),
      linear-gradient(90deg, rgba(159,196,230,0.14) 1px, transparent 1px);
    background-size:120px 120px;
  }
  #blueprint-bg .bp-vignette{
    position:absolute;inset:0;
    background:radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.55) 100%);
  }
  #blueprint-bg .bp-noise{
    position:absolute;inset:0;opacity:0.08;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  }
  #blueprint-bg svg.bp-plan{position:absolute;inset:0;width:100%;height:100%;}
  #blueprint-bg .bp-plan .ln{fill:none;stroke:#dce9f5;stroke-width:1.5;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .ln-thin{fill:none;stroke:#9fc4e6;stroke-width:1;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .ln-dash{fill:none;stroke:#9fc4e6;stroke-width:1;stroke-dasharray:6 5;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .ln-thick{fill:none;stroke:#dce9f5;stroke-width:2.5;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .ln-accent{fill:none;stroke:#f2c14e;stroke-width:1.4;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .fill-soft{fill:rgba(159,196,230,0.05);stroke:#9fc4e6;stroke-width:1;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .hatch-fill{fill:url(#hatch);stroke:#dce9f5;stroke-width:1.5;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .txt{font-family:"Courier New",monospace;fill:#9fc4e6;font-size:11px;letter-spacing:1px;}
  #blueprint-bg .bp-plan .txt-lg{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;fill:#dce9f5;font-size:14px;letter-spacing:2px;text-transform:uppercase;}
  #blueprint-bg .bp-plan .txt-tiny{font-family:"Courier New",monospace;fill:#5f8fb8;font-size:9px;letter-spacing:1px;}
  #blueprint-bg .bp-plan .dim{stroke:#9fc4e6;stroke-width:1;fill:none;vector-effect:non-scaling-stroke;}
  #blueprint-bg .bp-plan .arrowhead{fill:#9fc4e6;}
  /* North arrow */
  #bp-north{position:fixed;left:32px;top:32px;width:64px;height:64px;border:1px solid rgba(220,233,245,0.45);border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(11,41,66,0.45);z-index:1;pointer-events:none;}
  #bp-north svg{width:36px;height:36px;}
  #bp-north-label{position:fixed;left:32px;top:104px;font-family:"Courier New",monospace;font-size:10px;color:#9fc4e6;letter-spacing:2px;z-index:1;pointer-events:none;}
  /* Scale bar */
  #bp-scalebar{position:fixed;left:32px;bottom:32px;display:flex;flex-direction:column;gap:4px;font-family:"Courier New",monospace;font-size:9px;color:#9fc4e6;letter-spacing:1px;z-index:1;pointer-events:none;}
  #bp-scalebar .bar{display:flex;width:180px;height:8px;border:1px solid #9fc4e6;}
  #bp-scalebar .bar div{flex:1;border-right:1px solid #9fc4e6;}
  #bp-scalebar .bar div:nth-child(odd){background:#9fc4e6;}
  #bp-scalebar .bar div:last-child{border-right:none;}
  #bp-scalebar .ticks{display:flex;justify-content:space-between;width:180px;}
  /* Title block */
  #bp-titleblock{position:fixed;right:32px;bottom:32px;border:1px solid rgba(220,233,245,0.55);padding:14px 18px;min-width:280px;background:rgba(11,41,66,0.55);backdrop-filter:blur(2px);z-index:1;pointer-events:none;}
  #bp-titleblock h1{margin:0 0 6px;font-size:13px;letter-spacing:3px;font-weight:600;text-transform:uppercase;color:#dce9f5;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
  #bp-titleblock .row{display:flex;justify-content:space-between;gap:18px;font-family:"Courier New",monospace;font-size:10px;color:#9fc4e6;letter-spacing:1px;padding:3px 0;border-top:1px solid rgba(159,196,230,0.18);}
  #bp-titleblock .row:first-of-type{border-top:none;}
  #bp-titleblock .row span:last-child{color:#dce9f5;}
  #bp-titleblock .accent-bar{height:3px;background:#f2c14e;width:40px;margin-top:8px;}


  /* ─── SPEC PICKER ─────────────────────────── */
  .spec-picker{border:1px solid var(--border2);border-radius:8px;overflow:hidden}
  .spec-search{width:100%;padding:9px 12px;border:none;border-bottom:1px solid var(--border2);font-family:inherit;font-size:13px;color:var(--text);background:var(--card2);outline:none}
  .spec-selected{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;min-height:42px;border-bottom:1px solid var(--border2);background:var(--card)}
  .spec-selected:empty::before{content:"Aucun service sélectionné";font-size:12px;color:var(--text3);align-self:center}
  .spec-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--red-dim);color:var(--red);border-radius:4px;font-size:11px;font-weight:600}
  .spec-tag button{background:none;border:none;cursor:pointer;color:var(--red);font-size:13px;line-height:1;padding:0 1px;opacity:.7}
  .spec-tag button:hover{opacity:1}
  .spec-sectors{max-height:260px;overflow-y:auto;background:var(--card)}
  .spec-sector-group{border-bottom:1px solid var(--border)}
  .spec-sector-group:last-child{border-bottom:none}
  .spec-sector-head{padding:8px 12px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text2);background:var(--card2);cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}
  .spec-sector-head:hover{background:var(--border)}
  .spec-sector-head .chevron{font-size:10px;transition:.2s}
  .spec-sector-head.open .chevron{transform:rotate(180deg)}
  .spec-sector-items{display:none}
  .spec-sector-items.open{display:block}
  .spec-item{display:flex;align-items:center;gap:8px;padding:6px 16px;font-size:13px;cursor:pointer;transition:.1s}
  .spec-item:hover{background:var(--card2)}
  .spec-item input[type=checkbox]{accent-color:var(--red);width:14px;height:14px;flex-shrink:0;cursor:pointer}
  .spec-item.hidden{display:none}

  /* ─── TOAST ──────────────────────────────── */
  #toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
  .toast{padding:12px 18px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.14);pointer-events:all;display:flex;align-items:center;gap:10px;min-width:240px;max-width:380px;animation:toastIn .25s ease;background:var(--card);border-left:4px solid var(--green);color:var(--text)}
  .toast-error{border-left-color:var(--red)}
  .toast-info{border-left-color:var(--blue)}
  .toast-warn{border-left-color:var(--yellow)}
  @keyframes toastIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}

  /* ─── PARTNER DRAWER ─────────────────────── */
  .drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:400;opacity:0;pointer-events:none;transition:.25s;backdrop-filter:blur(2px)}
  .drawer-overlay.open{opacity:1;pointer-events:all}
  .drawer{position:fixed;top:0;right:0;bottom:0;width:820px;max-width:100vw;background:var(--card);border-left:1px solid var(--border);z-index:401;transform:translateX(100%);transition:.3s cubic-bezier(.4,0,.2,1);overflow-y:auto;display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.1)}
  .drawer-overlay.open .drawer{transform:translateX(0)}
  .drawer-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:10}
  .drawer-body{padding:24px 28px;flex:1}

  /* ─── BLOC BADGES ────────────────────────── */
  .badge-bloc-actif{background:var(--green-dim);color:var(--green)}
  .badge-bloc-pause{background:var(--yellow-dim);color:var(--yellow)}
  .badge-bloc-inactif{background:rgba(96,96,96,.2);color:var(--text3)}
  .badge-bloc-solde{background:var(--red-dim);color:var(--red)}

  /* ─── PROGRESS BAR ───────────────────────── */
  .progress-wrap{width:100%;background:var(--border);border-radius:4px;overflow:hidden;height:6px;min-width:80px}
  .progress-bar{height:100%;border-radius:4px;transition:width .3s}
  .pg-green{background:var(--green)}
  .pg-amber{background:var(--yellow)}
  .pg-red{background:var(--red)}

  /* ─── QUEUE CHIPS ────────────────────────── */
  .queue-filters{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
  .queue-refresh-btn{margin-left:auto}
  .queue-refresh-btn:disabled{opacity:.65;cursor:wait}
  .chip{padding:7px 16px;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;border:1.5px solid var(--border2);background:var(--card);color:var(--text2);transition:.15s}
  .chip:hover{border-color:var(--red);color:var(--red)}
  .chip.active{background:var(--red-dim);border-color:var(--red);color:var(--red)}
  .chip .cnt{margin-left:5px;background:var(--text3);color:#fff;border-radius:10px;padding:0 6px;font-size:10px}
  .chip.active .cnt{background:var(--red)}

  /* ─── QUEUE CARDS ────────────────────────── */
  .queue-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
  .queue-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
  .queue-value-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid rgba(22,163,74,.35);background:linear-gradient(140deg, rgba(22,163,74,.18), rgba(34,197,94,.10));box-shadow:inset 0 1px 0 rgba(255,255,255,.65);margin-bottom:14px}
  .queue-value-kicker{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#166534;margin-bottom:3px}
  .queue-value-amount{font-size:36px;line-height:1;font-weight:800;color:#14532d;font-family:'DM Mono', monospace;letter-spacing:-.03em}
  .queue-value-note{font-size:12px;color:#166534;font-weight:600;opacity:.9;white-space:nowrap}
  .queue-value-hero.is-empty{border-color:var(--border2);background:linear-gradient(140deg, #f8f9fb, #f2f4f7)}
  .queue-value-hero.is-empty .queue-value-kicker,.queue-value-hero.is-empty .queue-value-amount,.queue-value-hero.is-empty .queue-value-note{color:var(--text2)}
  .queue-card-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 20px;margin-bottom:14px}
  .qi-label{color:var(--text2);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
  .qi-value{color:var(--text);font-size:13px}
  .qi-edit-input{width:100%;font:inherit;font-size:13px;color:var(--text);background:var(--card2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;box-sizing:border-box;transition:border-color .15s}
  .qi-edit-input:focus{outline:none;border-color:var(--red);background:var(--bg)}
  .qi-edit-input:disabled{opacity:.6}
  .qi-edit-textarea{resize:vertical;line-height:1.5;font-family:inherit}
  .queue-partner-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--card2);border:1px solid var(--border);border-radius:8px;font-size:12px;margin-bottom:6px}
  .queue-flex-week{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.30);color:#1d4ed8;font-weight:700}
  .queue-flex-flag{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;background:rgba(22,163,74,.12);border:1px solid rgba(22,163,74,.30);color:#166534;font-weight:700}
  .queue-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .queue-btn-reno{color:var(--yellow)!important;border-color:rgba(217,119,6,.45)!important;background:var(--yellow-dim)!important}
  .queue-btn-reno:hover{color:#b45309!important;border-color:#b45309!important;background:rgba(217,119,6,.18)!important}
  .queue-btn-unsold{color:var(--red)!important;border-color:rgba(227,27,35,.45)!important;background:rgba(227,27,35,.08)!important}
  .queue-btn-unsold:hover{background:rgba(227,27,35,.14)!important}

  @media(max-width:980px){
    .queue-card-grid{grid-template-columns:1fr 1fr}
    .queue-value-amount{font-size:31px}
  }

  @media(max-width:640px){
    .queue-refresh-btn{margin-left:0}
    .queue-card-grid{grid-template-columns:1fr}
    .queue-value-hero{flex-direction:column;align-items:flex-start;gap:8px}
    .queue-value-amount{font-size:28px}
    .queue-value-note{white-space:normal}
  }

  /* ─── LEAD STATUS BTNS ───────────────────── */
  .lead-status-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
  .lead-status-btns button{padding:5px 12px;font-size:12px;border-radius:6px;cursor:pointer;border:1.5px solid var(--border2);background:var(--card);color:var(--text2);font-family:inherit;font-weight:600;transition:.15s}
  .lead-status-btns button:hover,.lead-status-btns button.st-active{border-color:var(--red);color:var(--red);background:var(--red-dim)}


  /* ─── LOCALISATION MAP ────────────────── */
  #map-container{position:relative;width:100%;height:calc(100vh - 200px);min-height:500px;border-radius:12px;overflow:hidden;border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.05)}
  #map{width:100%;height:100%}
  .map-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
  .map-view-toggle{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .map-view-btn{padding:7px 12px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;border:1.5px solid var(--border2);background:var(--card);color:var(--text2);font-family:inherit;transition:.15s}
  .map-view-btn:hover{border-color:var(--red);color:var(--red)}
  .map-view-btn.active{background:var(--red-dim);border-color:var(--red);color:var(--red)}
  .map-search{flex:1;min-width:200px;padding:9px 12px;background:var(--card);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-family:inherit;font-size:13px;outline:none}
  .map-search:focus{border-color:var(--red)}
  .map-legend{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--card);border:1px solid var(--border);border-radius:8px;font-size:12px;flex-wrap:wrap}
  .map-legend-item{display:flex;align-items:center;gap:6px}
  .map-legend-dot{width:12px;height:12px;border-radius:50%}
  /* Leaflet popup override */
  .leaflet-popup-content-wrapper{border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.15)!important;font-family:'DM Sans',sans-serif!important}
  .leaflet-popup-content{margin:12px 16px!important;font-size:13px!important}
  .popup-company{font-weight:700;font-size:14px;margin-bottom:6px;color:#111827}
  .popup-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:3px;font-size:12px;color:#6b7280}
  .popup-row span:last-child{color:#111827;font-weight:500}
  .popup-cp-list{margin-top:8px;font-size:11px;color:#6b7280;line-height:1.7}
  .popup-cp-tag{display:inline-block;padding:1px 6px;background:#f3f4f6;border-radius:3px;margin:1px;font-family:monospace}
  /* ─── DRAW TERRITOIRE ──────────────────── */
  .draw-panel{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px;display:none}
  .draw-panel.visible{display:block}
  .draw-panel-title{font-size:13px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}
  .draw-fsa-tags{display:flex;flex-wrap:wrap;gap:5px;max-height:120px;overflow-y:auto;padding:8px;background:var(--card2);border:1px solid var(--border);border-radius:6px;margin-bottom:10px}
  .draw-fsa-tag{padding:2px 7px;background:var(--red-dim);color:var(--red);border-radius:3px;font-size:11px;font-family:monospace;font-weight:600}
  .draw-fsa-empty{font-size:12px;color:var(--text3);font-style:italic}
  .draw-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
  .draw-select{flex:1;min-width:160px;padding:8px 10px;background:var(--card2);border:1px solid var(--border2);border-radius:7px;color:var(--text);font-family:inherit;font-size:13px;outline:none}
  .draw-select:focus{border-color:var(--red)}
  .btn-draw-active{background:var(--red)!important;color:#fff!important}

  /* ─── MOBILE BOTTOM NAV ─────────────────── */
  .mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--border);z-index:150;padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -4px 16px rgba(0,0,0,.08)}
  .mobile-nav-items{display:flex;align-items:stretch}
  .mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px 8px;cursor:pointer;color:var(--text2);font-size:10px;font-weight:600;gap:3px;border:none;background:transparent;font-family:inherit;transition:color .15s;position:relative;-webkit-tap-highlight-color:transparent}
  .mobile-nav-item.active{color:var(--red)}
  .mobile-nav-item svg{width:22px;height:22px}
  .mobile-nav-badge{position:absolute;top:5px;left:calc(50% + 6px);background:var(--red);color:#fff;border-radius:999px;font-size:9px;font-weight:700;padding:1px 5px;min-width:16px;text-align:center;line-height:1.4}

  /* ─── MOBILE ENHANCED ────────────────────── */
  @media(max-width:768px){
    .main{padding-bottom:68px}
    .topbar{padding:14px 20px!important}
    .sidebar-toggle{display:none!important}
    .mobile-nav{height:calc(56px + env(safe-area-inset-bottom,0px))}
    .mobile-nav-items{height:56px}

    body{overflow-x:hidden;max-width:100vw}
    .content{overflow-x:hidden}
    .search-input,.filter-select{min-width:0;box-sizing:border-box}

    .filter-bar{flex-wrap:wrap;overflow-x:visible;gap:8px}
    .filter-bar>*{flex-shrink:1;min-width:0}
    .filter-bar .search-input{flex:1 1 100%;width:100%}
    .filter-bar .filter-select{flex:1 1 calc(50% - 4px)}

    .kpi-grid,.kpi-grid-5,.kpi-grid-2{grid-template-columns:1fr 1fr!important}
    .stat-card{padding:14px 42px 14px 14px}
    .stat-value{font-size:20px!important}
    .stat-label{font-size:10px}
    .stat-icon{width:30px;height:30px;top:12px;right:10px}
    .stat-icon svg{width:15px;height:15px}

    #dash-charts{display:none!important}
    .col-hide-mobile{display:none!important}
    #tab-dashboard .section-header{flex-wrap:wrap;gap:8px}
    #tab-dashboard .section-header>div{display:flex;gap:6px;flex-wrap:wrap}

    #tab-leads .filter-bar{flex-wrap:wrap!important;overflow-x:visible!important}
    #tab-leads .filter-bar>*{flex-shrink:1!important;flex:0 1 auto!important}
    #tab-leads .filter-bar .search-input{flex:1 1 100%!important;width:100%!important;min-width:0!important}
    #tab-leads #bl-filter-from,#tab-leads #bl-filter-to{width:calc(50% - 4px)!important;min-width:0!important;font-size:11px;padding:7px 6px}
    #tab-leads .filter-bar .filter-select{flex:1 1 calc(50% - 4px)!important;min-width:0!important}
    #tab-leads .filter-bar .btn-primary,#tab-leads .filter-bar .btn-ghost{flex:1 1 calc(50% - 4px)!important}
    #tab-leads .filter-bar .export-wrap{flex:0 0 auto}
    #tab-leads .table-wrap{overflow:hidden}
    #tab-leads table{table-layout:fixed;width:100%}
    #tab-leads table th:nth-child(2),#tab-leads table td:nth-child(2),
    #tab-leads table th:nth-child(3),#tab-leads table td:nth-child(3),
    #tab-leads table th:nth-child(4),#tab-leads table td:nth-child(4){display:none!important}

    #tab-envoi .queue-filters{flex-wrap:wrap!important;gap:6px}
    #tab-envoi .queue-filters .chip{flex:1 1 calc(50% - 3px)}
    #tab-envoi #queue-search{order:3;flex:1 1 100%!important;width:100%!important;min-width:0!important;max-width:100%!important}
    #tab-envoi .queue-refresh-btn{order:4;margin-left:0!important;width:100%}
    #queue-cards-wrap{overflow:hidden;max-width:100%;box-sizing:border-box}
    .queue-card{overflow:hidden!important;box-sizing:border-box!important;padding:12px!important;max-width:100%!important;width:100%!important}
    .queue-card-header{flex-wrap:wrap!important;gap:4px!important}
    .queue-card-header>div{min-width:0!important;word-break:break-word!important;overflow-wrap:break-word!important;flex:1 1 auto!important}
    .queue-card-header>span{flex-shrink:0!important}
    .queue-value-hero{flex-direction:column!important;gap:6px!important}
    .queue-value-amount{font-size:24px!important}
    .queue-value-note{white-space:normal!important}
    .queue-card-grid{grid-template-columns:1fr!important}
    .queue-partner-row{flex-wrap:wrap!important;gap:4px!important;align-items:flex-start!important}
    .queue-partner-row>div:first-child{min-width:0!important;word-break:break-word!important;overflow-wrap:break-word!important;flex:1 1 0!important}
    .queue-flex-week{white-space:normal!important;word-break:break-word!important;max-width:100%!important;display:inline!important}
    .queue-card select.filter-select{min-width:0!important;width:100%!important;flex:1!important;box-sizing:border-box!important}
    .queue-card select.filter-select+button{flex-shrink:0!important;white-space:nowrap!important}
    .queue-actions{flex-direction:column!important}
    .queue-actions>button{width:100%!important;box-sizing:border-box!important;text-align:center!important}

    #tab-blocs .table-wrap{overflow:hidden}
    #tab-blocs #blocs-billing-wrap{overflow-x:auto}
    #blocs-table{min-width:0!important;table-layout:fixed!important;width:100%!important}
    #blocs-table th:nth-child(1),#blocs-table td:nth-child(1),
    #blocs-table th:nth-child(2),#blocs-table td:nth-child(2),
    #blocs-table th:nth-child(4),#blocs-table td:nth-child(4),
    #blocs-table th:nth-child(5),#blocs-table td:nth-child(5),
    #blocs-table th:nth-child(6),#blocs-table td:nth-child(6),
    #blocs-table th:nth-child(7),#blocs-table td:nth-child(7),
    #blocs-table th:nth-child(8),#blocs-table td:nth-child(8),
    #blocs-table th:nth-child(9),#blocs-table td:nth-child(9),
    #blocs-table th:nth-child(10),#blocs-table td:nth-child(10),
    #blocs-table th:nth-child(11),#blocs-table td:nth-child(11),
    #blocs-table th:nth-child(12),#blocs-table td:nth-child(12),
    #blocs-table th:nth-child(13),#blocs-table td:nth-child(13),
    #blocs-table th:nth-child(15),#blocs-table td:nth-child(15),
    #blocs-table th:nth-child(16),#blocs-table td:nth-child(16),
    #blocs-table th:nth-child(18),#blocs-table td:nth-child(18),
    #blocs-table th:nth-child(19),#blocs-table td:nth-child(19),
    #blocs-table th:nth-child(20),#blocs-table td:nth-child(20){display:none!important}
    #blocs-table td:nth-child(3){word-break:break-word;font-size:12px}
    .bloc-expertise-grid{grid-template-columns:1fr 1fr}
    #tab-blocs .filter-bar{flex-wrap:wrap}
    #tab-blocs .filter-bar .search-input{flex:1 1 100%;width:100%}

    #map-container{height:calc(100vh - 260px);min-height:340px}
    .map-toolbar{flex-wrap:wrap;gap:8px}
    .map-view-toggle{flex-wrap:wrap}
    .draw-panel{padding:12px}
    .draw-actions{flex-wrap:wrap}
    .draw-select{min-width:0;width:100%;flex:1 1 100%}

    #tab-parametres>div{max-width:100%!important}

    .modal-overlay{align-items:flex-end}
    .modal{width:100%;max-width:100%;border-radius:20px 20px 0 0;max-height:60vh;overflow-y:hidden;transform:translateY(100%);transition:transform .2s, max-height .2s;box-shadow:0 -8px 40px rgba(0,0,0,.18);display:flex;flex-direction:column}
    .modal-overlay.open .modal{transform:translateY(0)}
    .modal.modal-expanded{max-height:92vh}
    .modal::before{display:none}
    .modal-handle{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:12px 0 8px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
    .modal-handle::before{content:'';display:block;width:40px;height:4px;background:var(--border2);border-radius:2px}
    .modal-handle:active::before{background:var(--text3)}
    .modal-header{flex-shrink:0}
    .modal-body{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto;min-height:0}
    body.modal-open .mobile-nav{display:none!important}
    #bp-north,#bp-north-label,#bp-scalebar,#bp-titleblock{display:none!important}
    .login-box{width:calc(100% - 32px);padding:32px 24px}
    .drawer{width:100%;border-radius:0}
    .mobile-nav-item{padding:8px 2px 6px;font-size:9px}
    .mobile-nav-item svg{width:20px;height:20px}
  }
  @media(max-width:480px){
    .content{padding:16px 12px}
    .topbar-title{font-size:14px}
    .stat-value{font-size:24px}
    .queue-actions{gap:6px}
    .queue-actions .btn-ghost{font-size:11px;padding:6px 10px}
  }

  /* ─── ALERTES VENDEURS ─────────────────────────────────────────── */
  /* ─── ALERTES VENDEURS ─────────────────────────────────────────── */
  .alert-block{margin-top:0;margin-bottom:28px;background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05)}
  .alert-block-section{padding:18px 20px}
  .alert-block-section+.alert-block-section{border-top:1px solid var(--border)}
  .alert-section-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}
  .alert-section-title{font-size:13px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.05em}
  .alert-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:700}
  .alert-count-pause{background:var(--red);color:#fff}
  .alert-count-surveiller{background:var(--yellow);color:#fff}
  .alert-count-cinquante{background:var(--blue);color:#fff}
  .alert-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
  .alert-vendor-group{grid-column:1/-1;border:1px solid var(--border);border-radius:10px;background:var(--card2);padding:14px 16px;margin-bottom:12px}
  .alert-vendor-group:last-child{margin-bottom:0}
  .alert-vendor-header{width:100%;display:flex;align-items:center;gap:10px;margin-bottom:12px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left;color:var(--text)}
  .alert-vendor-toggle{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;font-weight:700;color:var(--text2);background:var(--card)}
  .alert-vendor-name{font-weight:700;font-size:14px;color:var(--text);flex:1}
  .alert-vendor-partners{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
  .alert-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:box-shadow .15s,transform .15s}
  .alert-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.09);transform:translateY(-1px)}
  .alert-card-pause{border-left:3px solid var(--red)}
  .alert-card-surveiller{border-left:3px solid var(--yellow)}
  .alert-card-cinquante{border-left:3px solid var(--blue)}
  .alert-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
  .alert-company{font-size:13px;font-weight:700;color:var(--text);line-height:1.35}
  .alert-reason-badge{flex-shrink:0;display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--red-dim);color:var(--red);white-space:nowrap}
  .alert-progress-wrap{display:flex;align-items:center;gap:8px}
  .alert-progress-track{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}
  .alert-progress-fill-pause{height:100%;border-radius:3px;background:var(--red)}
  .alert-progress-fill-warn{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--yellow),#f97316)}
  .alert-progress-fill-info{height:100%;border-radius:3px;background:var(--blue)}
  .alert-reason-badge-info{background:var(--blue-dim);color:var(--blue)}
  .alert-pct{font-size:12px;font-weight:700;min-width:34px;text-align:right}
  .alert-contacts{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);padding-top:8px}
  .alert-contact-link{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);text-decoration:none;transition:color .1s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .alert-contact-link:hover{color:var(--red)}
  .alert-contact-link svg{flex-shrink:0;opacity:.6}
  .alert-no-info{font-size:12px;color:var(--text3);display:flex;align-items:center;gap:6px}
  .alert-empty{display:flex;align-items:center;gap:8px;color:var(--text3);font-size:13px;padding:4px 0}

