
  /* --- aligné sur la page d'accueil (v3) : fond + panneaux neutres --- */
  :root{
    --vs-bg:#0a0a0f; --vs-card:#121218; --vs-card-2:#16161d; --vs-card-hi:#1c1c24;
    --vs-border:rgba(255,255,255,0.07); --vs-border-hi:rgba(255,255,255,0.12);
  }

  /* nav */

  /* header */
  .head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:34px 0 30px;}
  .head h1{margin:0 0 7px;font-size:40px;font-weight:800;letter-spacing:-.04em;}
  .head p{margin:0;font-size:14px;color:var(--vs-text-mute);max-width:520px;}
  .head p b{color:var(--vs-text-2);font-weight:600;}

  /* stats — bloc groupé hairline (design v72) */
  .stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--vs-border);border:1px solid var(--vs-border);border-radius:16px;overflow:hidden;margin-bottom:24px;}
  @media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:560px){.stats{grid-template-columns:1fr}}
  .stat{position:relative;text-align:left;padding:22px 24px;background:var(--vs-card);border:0;border-radius:0;cursor:pointer;font-family:inherit;color:inherit;transition:background .15s ease;}
  .stat:hover{background:#16161d;}
  .stat.on{background:var(--vs-violet-tint);}
  .stat--hero .stat__num{font-size:28px;white-space:nowrap;letter-spacing:-.02em;color:var(--vs-violet-light);}
  .stat--hero .stat__ic,.stat.on .stat__ic{background:var(--vs-violet-tint);color:var(--vs-violet-light);}
  .stat--ok .stat__ic{background:var(--vs-ok-soft);color:var(--vs-ok);}
  .stat__top{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--vs-text-mute);}
  .stat__ic{width:24px;height:24px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:var(--vs-violet-tint);color:var(--vs-violet-light);}
  .stat__ic svg{width:13px;height:13px;}
  .stat__num{font-size:28px;font-weight:800;letter-spacing:-.02em;margin-top:10px;font-variant-numeric:tabular-nums;}
  .stat__trend{font-family:var(--vs-font-mono);font-size:10.5px;font-weight:600;margin-top:3px;color:var(--vs-ok);}
  .stat__trend.warn{color:var(--vs-warn);}
  .stat__trend.mut{color:var(--vs-text-dim);}

  /* toolbar */
  .bar1{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap;}
  .seltabs{display:flex;gap:3px;padding:3px;background:var(--vs-card-2);border:1px solid var(--vs-border);border-radius:11px;}
  .seltabs button{border:0;background:transparent;color:var(--vs-text-mute);font:inherit;font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s;}
  .seltabs button:hover{color:var(--vs-text);}
  .seltabs button.on{background:var(--vs-violet-tint2);color:var(--vs-violet-light);box-shadow:inset 0 0 0 1px var(--vs-border-vio);}
  .seltabs button .n{font-family:var(--vs-font-mono);font-size:10px;opacity:.75;margin-left:5px;}
  .search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;height:38px;padding:0 13px;border-radius:11px;background:var(--vs-card-2);border:1px solid var(--vs-border);color:var(--vs-text-mute);}
  .search:focus-within{border-color:var(--vs-border-vio);box-shadow:0 0 0 3px var(--vs-violet-tint);}
  .search svg{width:14px;height:14px;flex-shrink:0;}
  .search input{flex:1;border:0;background:transparent;outline:0;font-size:13px;color:var(--vs-text);}
  .search input::placeholder{color:var(--vs-text-dim);}
  select.ctl{height:38px;padding:0 34px 0 13px;border-radius:11px;background:var(--vs-card-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238b86a3' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--vs-border);color:var(--vs-text);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;appearance:none;outline:0;}
  select.ctl:hover{border-color:var(--vs-border-hi);}
  .viewtg{display:flex;padding:3px;gap:3px;background:var(--vs-card-2);border:1px solid var(--vs-border);border-radius:11px;}
  .viewtg button{width:32px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--vs-text-mute);cursor:pointer;display:flex;align-items:center;justify-content:center;}
  .viewtg button.on{background:var(--vs-violet-tint2);color:var(--vs-violet-light);}
  .viewtg svg{width:14px;height:14px;}
  /* boutons outils barre */
  .tbtn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:11px;font:inherit;font-size:12.5px;font-weight:600;color:var(--vs-text-mute);background:var(--vs-card-2);border:1px solid var(--vs-border);cursor:pointer;transition:color .15s,background .15s,border-color .15s;}
  .tbtn:hover{color:var(--vs-text);border-color:var(--vs-border-hi);}
  .tbtn svg{width:14px;height:14px;}
  .tbtn--ico{width:38px;padding:0;justify-content:center;}
  .tbtn--vio{color:var(--vs-violet-light);border-color:var(--vs-border-vio);background:var(--vs-violet-tint);}
  .tbtn--vio:hover{background:var(--vs-violet-tint2);color:var(--vs-violet-light);}
  .tbtn.on{color:var(--vs-violet-light);border-color:var(--vs-border-vio);background:var(--vs-violet-tint);}
  .bar1b{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap;}
  /* panneau filtres */
  .fpanel{display:none;align-items:center;gap:20px;flex-wrap:wrap;margin:-2px 0 14px;padding:14px 18px;border:1px solid var(--vs-border);border-radius:14px;background:var(--vs-card);}
  .fpanel.open{display:flex;}
  .fgrp{display:flex;align-items:center;gap:8px;}
  .fgrp .lbl{display:inline-flex;align-items:center;gap:6px;font-family:var(--vs-font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--vs-text-mute);}
  .fgrp .lbl svg{width:13px;height:13px;color:var(--vs-violet-light);}
  .fin{width:62px;height:32px;border-radius:9px;background:var(--vs-card-2);border:1px solid var(--vs-border);color:var(--vs-text);text-align:center;font:inherit;font-size:12px;outline:0;}
  .fin:focus{border-color:var(--vs-border-vio);box-shadow:0 0 0 3px var(--vs-violet-tint);}
  .fin::placeholder{color:var(--vs-text-dim);}
  .fsep{color:var(--vs-text-dim);}
  .freset{margin-left:auto;background:none;border:0;color:var(--vs-violet-light);font:inherit;font-size:12px;font-weight:600;cursor:pointer;}
  .freset:hover{color:#fff;}
  /* modale planifié */
  .modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(5,5,9,.62);backdrop-filter:blur(4px);}
  .modal.open{display:flex;}
  .modal__card{width:440px;max-width:92vw;border-radius:18px;background:var(--vs-card);border:1px solid var(--vs-border);padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
  .modal__card h3{margin:0 0 8px;font-size:18px;font-weight:800;letter-spacing:-.02em;}
  .modal__card p{margin:0;font-size:13px;color:var(--vs-text-mute);line-height:1.55;}
  .modal__empty{text-align:center;color:var(--vs-text-dim);font-size:13px;padding:28px 0;}
  .modal__btn{width:100%;height:46px;border:0;border-radius:12px;background:var(--vs-violet-grad);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.25);}
  .modal__btn:hover{filter:brightness(1.07);}

  /* chips filtres */
  .bar2{display:flex;gap:8px;align-items:center;margin-bottom:18px;flex-wrap:wrap;font-size:12px;}
  .fchip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:99px;background:var(--vs-card-2);border:1px solid var(--vs-border);color:var(--vs-text-mute);font-size:11.5px;font-weight:600;cursor:pointer;transition:all .15s;}
  .fchip:hover{border-color:var(--vs-border-hi);color:var(--vs-text);}
  .fchip.on{background:var(--vs-violet-tint2);border-color:var(--vs-border-vio);color:var(--vs-violet-light);}
  .fchip svg{width:11px;height:11px;}
  .bar2 .lbl{font-family:var(--vs-font-mono);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--vs-text-dim);margin-right:2px;}

  /* grid */
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;}
  .card{position:relative;border-radius:var(--vs-r-lg);background:var(--vs-card);border:1px solid var(--vs-border);overflow:hidden;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease;}
  .card:hover{border-color:var(--vs-border-hi);transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.35);}
  .card.sel{border-color:var(--vs-violet);box-shadow:0 0 0 1px var(--vs-violet);}
  .card__ph{position:relative;aspect-ratio:1/.92;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .card__ph .tag{font-family:var(--vs-font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);}
  .badge{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;backdrop-filter:blur(6px);}
  .badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor;}
  .badge--on{background:rgba(61,220,151,.16);color:var(--vs-ok);border:1px solid rgba(61,220,151,.35);}
  .badge--res{background:rgba(255,200,87,.16);color:var(--vs-warn);border:1px solid rgba(255,200,87,.35);}
  .badge--sold{background:rgba(122,82,255,.18);color:var(--vs-violet-light);border:1px solid var(--vs-border-vio);}
  .badge--hid{background:rgba(139,134,163,.14);color:var(--vs-text-mute);border:1px solid var(--vs-border);}
  .repub{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:99px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,107,138,.16);color:var(--vs-err);border:1px solid rgba(255,107,138,.35);backdrop-filter:blur(6px);}
  .repub svg{width:10px;height:10px;}
  .ck{position:absolute;bottom:8px;left:8px;width:22px;height:22px;border-radius:7px;border:1.5px solid rgba(255,255,255,.4);background:rgba(10,4,32,.55);backdrop-filter:blur(6px);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .15s,background .15s,border-color .15s;}
  .ck svg{width:12px;height:12px;opacity:0;}
  .card:hover .ck,.card.sel .ck{opacity:1;}
  .card.sel .ck{background:var(--vs-violet-grad);border-color:transparent;}
  .card.sel .ck svg{opacity:1;}
  .dots{position:absolute;bottom:8px;right:8px;width:26px;height:22px;border-radius:7px;border:1px solid rgba(255,255,255,.18);background:rgba(10,4,32,.55);backdrop-filter:blur(6px);cursor:pointer;color:#fff;font-weight:800;font-size:12px;letter-spacing:1px;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center;padding-bottom:5px;}
  .card:hover .dots{opacity:1;}
  .dots:hover{background:rgba(122,82,255,.5);}
  .card__b{padding:11px 12px 12px;}
  .card__t{font-size:12.5px;font-weight:700;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px;}
  .card__acc{font-family:var(--vs-font-mono);font-size:10px;color:var(--vs-text-dim);margin-top:3px;}
  .card__row{display:flex;align-items:center;justify-content:space-between;margin-top:9px;}
  .card__prix{font-size:15px;font-weight:900;letter-spacing:-.01em;}
  .card__met{display:flex;gap:9px;font-family:var(--vs-font-mono);font-size:10px;color:var(--vs-text-mute);}
  .card__met span{display:inline-flex;align-items:center;gap:3px;}
  .card__met svg{width:11px;height:11px;}
  .card__age{margin-top:8px;padding-top:8px;border-top:1px solid var(--vs-border);display:flex;justify-content:space-between;font-family:var(--vs-font-mono);font-size:9.5px;color:var(--vs-text-dim);}
  .card__age b{color:var(--vs-text-mute);font-weight:600;}
  .card__age .old{color:var(--vs-warn);}

  /* list view */
  .grid.list{grid-template-columns:1fr;gap:8px;}
  .grid.list .card{display:flex;align-items:center;}
  .grid.list .card__ph{width:64px;height:64px;aspect-ratio:auto;flex-shrink:0;border-radius:10px;margin:8px;}
  .grid.list .badge,.grid.list .repub,.grid.list .card__age{display:none;}
  .grid.list .card__ph .ck,.grid.list .card__ph .dots{display:none;}
  .grid.list .lck,.grid.list .ldots{position:absolute;top:50%;transform:translateY(-50%);opacity:1;display:flex;}
  .grid.list .lck{left:auto;right:46px;bottom:auto;}
  .grid.list .ldots{right:12px;bottom:auto;}
  .lck,.ldots{display:none;}
  .grid.list .lst{display:inline-flex;}
  .lst{display:none;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:99px;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;position:static;backdrop-filter:none;flex-shrink:0;}
  .lst::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;}
  .grid.list .card__b{flex:1;display:flex;align-items:center;gap:14px;padding:8px 84px 8px 4px;}
  .grid.list .card__t{flex:1;}
  .grid.list .card__acc{margin:0;flex-shrink:0;}
  .grid.list .card__prix{min-width:52px;text-align:right;}
  .grid.list .card__t{min-height:0;-webkit-line-clamp:1;}
  .grid.list .card__row{margin:0;justify-content:flex-end;gap:12px;}

  /* action bar */
  .abar{position:fixed;left:50%;bottom:22px;transform:translate(-50%,calc(100% + 60px));display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;border-radius:14px;z-index:100;
    background:linear-gradient(180deg,#1b1430,#140e26);border:1px solid var(--vs-border-hi);
    box-shadow:0 14px 36px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.05);
    transition:transform .25s cubic-bezier(.2,.7,.2,1);}
  .abar.show{transform:translate(-50%,0);}
  .abar__st{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--vs-text);white-space:nowrap;}
  .abar__st .dot{width:7px;height:7px;border-radius:50%;background:var(--vs-ok);box-shadow:0 0 0 3px rgba(61,220,151,.18);}
  .abar__st .val{font-family:var(--vs-font-mono);font-size:11px;color:var(--vs-text-mute);}
  .abtn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 15px;border-radius:10px;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:#fff;border:1px solid rgba(196,179,255,.22);background:var(--vs-violet-grad);transition:transform .15s,filter .15s;white-space:nowrap;}
  .abtn:hover{filter:brightness(1.08);transform:translateY(-1px);}
  .abtn svg{width:14px;height:14px;}
  .abtn--ghost{background:rgba(255,255,255,.05);border-color:var(--vs-border);color:var(--vs-text-mute);font-weight:600;}
  .abtn--ghost:hover{color:#fff;background:rgba(255,255,255,.1);}
  .abtn--red{background:linear-gradient(135deg,#ff6f6f,#c5343b);border-color:rgba(255,160,160,.25);}
  .empty{padding:60px 0;text-align:center;color:var(--vs-text-dim);font-size:13px;}

  /* Mobile : la barre d'actions flottante déborde (boutons en une seule ligne, 1200px).
     On la fait tenir dans l'écran et wrapper ses boutons. */
  @media (max-width: 640px){
    .abar{left:8px;right:8px;transform:translateY(calc(100% + 90px));flex-wrap:wrap;justify-content:center;row-gap:8px;padding:10px 12px;}
    .abar.show{transform:translateY(0);}
    .abar__st{width:100%;justify-content:center;}
    .abtn{padding:0 12px;height:36px;}
    /* Les onglets de filtre (Toutes / En ligne / Vendues…) scrollent au lieu de déborder. */
    .seltabs{overflow-x:auto;max-width:100%;scrollbar-width:none;}
    .seltabs::-webkit-scrollbar{display:none;}
    .seltabs button{flex-shrink:0;}
  }
