/* ============================================================
   BPM 204 — SYSTÈME VISUEL UNIFORME
   Couche additive et réversible. Aucun composant fonctionnel
   radio, AutoDJ, social, billetterie, wallet ou média remplacé.
   ============================================================ */
body.bpm-design-v204{
  --bpm204-bg:#050914;
  --bpm204-bg-soft:#08101f;
  --bpm204-surface:rgba(12,20,37,.86);
  --bpm204-surface-strong:rgba(15,25,45,.96);
  --bpm204-surface-hover:rgba(20,33,57,.96);
  --bpm204-line:rgba(148,163,184,.15);
  --bpm204-line-blue:rgba(14,165,255,.32);
  --bpm204-text:#f5f7fb;
  --bpm204-muted:#94a3b8;
  --bpm204-muted-2:#64748b;
  --bpm204-blue:#0ea5ff;
  --bpm204-blue-2:#397dff;
  --bpm204-cyan:#22d3ee;
  --bpm204-green:#22c55e;
  --bpm204-red:#ef4444;
  --bpm204-amber:#f59e0b;
  --bpm204-purple:#a855f7;
  --bpm204-radius-sm:11px;
  --bpm204-radius:17px;
  --bpm204-radius-lg:24px;
  --bpm204-shadow:0 18px 55px rgba(0,0,0,.28);
  --bpm204-shadow-soft:0 10px 30px rgba(0,0,0,.18);
  background:
    radial-gradient(circle at 15% -10%,rgba(14,165,255,.13),transparent 28rem),
    radial-gradient(circle at 92% 16%,rgba(57,125,255,.08),transparent 30rem),
    var(--bpm204-bg);
  color:var(--bpm204-text);
}
body.bpm-design-v204::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.24;
  background-image:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,black,transparent 72%);
}
.bpm-skip-link{position:fixed;left:16px;top:12px;z-index:99999;transform:translateY(-160%);padding:10px 14px;border-radius:12px;background:#fff;color:#07101f;font-weight:900;box-shadow:0 14px 38px rgba(0,0,0,.35);transition:transform .18s ease}
.bpm-skip-link:focus{transform:translateY(0)}
body.bpm-design-v204 .bpm-pjax-content{min-height:calc(100vh - 220px)}
body.bpm-design-v204 ::selection{background:rgba(14,165,255,.35);color:#fff}
body.bpm-design-v204 :focus-visible{outline:3px solid rgba(34,211,238,.9);outline-offset:3px}
body.bpm-design-v204 a,body.bpm-design-v204 button,body.bpm-design-v204 input,body.bpm-design-v204 select,body.bpm-design-v204 textarea{transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease,opacity .18s ease}

/* Navigation commune */
body.bpm-design-v204 .site-nav{
  min-height:64px;height:auto;padding:7px clamp(12px,2vw,28px);
  background:rgba(5,9,20,.88)!important;border-color:var(--bpm204-line)!important;
  box-shadow:0 12px 36px rgba(0,0,0,.22);backdrop-filter:blur(22px) saturate(135%);
}
body.bpm-design-v204 .nlink{min-height:38px;padding:8px 11px;border-radius:12px;color:#93a0b6;font-weight:700;font-size:12px}
body.bpm-design-v204 .nlink:hover{color:#fff;background:rgba(255,255,255,.055)}
body.bpm-design-v204 .nlink.active{color:#dff5ff;background:linear-gradient(135deg,rgba(14,165,255,.2),rgba(57,125,255,.12));box-shadow:inset 0 0 0 1px rgba(14,165,255,.16)}
body.bpm-design-v204 .nlink-admin{color:#fda4af!important}
body.bpm-design-v204 .bpm184-nav-action,body.bpm-design-v204 .notif-bell,body.bpm-design-v204 .bpm-quickmsg-toggle{border:1px solid var(--bpm204-line);background:rgba(255,255,255,.035);border-radius:12px;min-width:38px;min-height:38px;display:inline-flex;align-items:center;justify-content:center}
body.bpm-design-v204 .bpm184-nav-action:hover,body.bpm-design-v204 .notif-bell:hover,body.bpm-design-v204 .bpm-quickmsg-toggle:hover{color:#fff;background:rgba(14,165,255,.12);border-color:var(--bpm204-line-blue)}
body.bpm-design-v204 .bpm-navpanel,body.bpm-design-v204 .bpm-quickmsg-panel{border-color:var(--bpm204-line);background:rgba(5,10,22,.97);box-shadow:0 26px 80px rgba(0,0,0,.56)}

/* Conteneurs, cartes et sections anciennes/nouvelles */
body.bpm-design-v204 :where(.card,.section-card,.dash-card,.auto-card,.st-card,.pro-card,.pp-card,.post-card,.playlist-card,.event-card,.member-card,.artist-card,.artist-premium-card,.alb-card,.news-card,.article-une,.ic-card,.auth-card,.ticket-type-card,.msg-sidebar,.conv-main,.bpm183-card,.bpm195-card,.bpm197-panel,.bpm198-card,.bpm203-card){
  border-color:var(--bpm204-line)!important;
  background:linear-gradient(145deg,rgba(15,25,45,.91),rgba(8,15,29,.88))!important;
  box-shadow:var(--bpm204-shadow-soft);
}
body.bpm-design-v204 :where(.card,.section-card,.dash-card,.auto-card,.st-card,.pro-card,.pp-card,.post-card,.playlist-card,.event-card,.member-card,.artist-card,.artist-premium-card,.news-card,.article-une,.ic-card,.auth-card,.ticket-type-card,.msg-sidebar,.conv-main,.bpm183-card,.bpm195-card,.bpm197-panel,.bpm198-card,.bpm203-card){border-radius:var(--bpm204-radius)!important}
body.bpm-design-v204 :where(.card,.section-card,.dash-card,.post-card,.playlist-card,.event-card,.member-card,.artist-card,.alb-card,.news-card,.bpm183-card,.bpm195-card,.bpm198-card):hover{border-color:rgba(14,165,255,.29)!important;box-shadow:0 18px 48px rgba(0,0,0,.28)}
body.bpm-design-v204 :where(.card-h,.card-head,.section-card-title,.auto-head,.st-head,.bpm195-card-head,.bpm197-panel-head,.bpm203-card-head){border-bottom-color:var(--bpm204-line)!important;color:#fff}

/* Titres et en-têtes de pages */
body.bpm-design-v204 :where(.pg-ttl,.page-title,.sec-title,.section-title){color:#fff;letter-spacing:.02em}
body.bpm-design-v204 .pg-ttl{display:flex;align-items:center;gap:10px;padding:14px 0;margin-bottom:18px;font-size:clamp(1.45rem,2.4vw,2.15rem);font-weight:900}
body.bpm-design-v204 .pg-ttl i{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(14,165,255,.12);color:#7dd3fc;border:1px solid rgba(14,165,255,.18)}
body.bpm-design-v204 :where(.mini,.muted,.cs,.hint,.small,.bpm186-muted,.bpm195-muted){color:var(--bpm204-muted)!important}

/* Boutons */
body.bpm-design-v204 :where(.btn,.ab,.auto-btn,.st-btn,.tb-btn,.adm-btn){min-height:39px;border-radius:12px;font-weight:800;letter-spacing:.01em;justify-content:center}
body.bpm-design-v204 .btn-b{background:linear-gradient(135deg,var(--bpm204-blue),var(--bpm204-blue-2))!important;color:#fff!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 11px 28px rgba(14,165,255,.2)}
body.bpm-design-v204 .btn-b:hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 15px 34px rgba(14,165,255,.27)}
body.bpm-design-v204 .btn-o{background:rgba(255,255,255,.04)!important;color:#d5ddeb!important;border:1px solid var(--bpm204-line)!important}
body.bpm-design-v204 .btn-o:hover{background:rgba(14,165,255,.1)!important;color:#fff!important;border-color:var(--bpm204-line-blue)!important}
body.bpm-design-v204 .btn-g{background:rgba(34,197,94,.12)!important;color:#9af3b7!important;border:1px solid rgba(34,197,94,.27)!important}
body.bpm-design-v204 .btn-r{background:rgba(239,68,68,.12)!important;color:#fda4af!important;border:1px solid rgba(239,68,68,.27)!important}
body.bpm-design-v204 :where(.btn,.ab,.auto-btn,.st-btn,.tb-btn,.adm-btn):disabled{cursor:not-allowed;opacity:.48;transform:none!important;box-shadow:none!important}

/* Formulaires */
body.bpm-design-v204 :where(.inp,.auto-inp,.auto-sel,.st-inp,input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="number"],input[type="url"],input[type="date"],input[type="datetime-local"],input[type="time"],select,textarea){
  border-color:var(--bpm204-line);background:rgba(2,8,20,.7);color:#eef4ff;border-radius:12px;min-height:42px;
}
body.bpm-design-v204 textarea{min-height:110px}
body.bpm-design-v204 :where(.inp,.auto-inp,.auto-sel,.st-inp,input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="number"],input[type="url"],input[type="date"],input[type="datetime-local"],input[type="time"],select,textarea):focus{border-color:rgba(14,165,255,.75)!important;box-shadow:0 0 0 4px rgba(14,165,255,.11)!important;outline:none}
body.bpm-design-v204 :where(.lbl,.s-lbl,.field>label,.fg>label){color:#aab6c9;font-weight:800;letter-spacing:.045em}
body.bpm-design-v204 input[type="checkbox"],body.bpm-design-v204 input[type="radio"]{accent-color:var(--bpm204-blue)}
body.bpm-design-v204 input::placeholder,body.bpm-design-v204 textarea::placeholder{color:#536179}

/* Alertes, badges, états */
body.bpm-design-v204 .alert{border-radius:14px;padding:12px 14px;border-width:1px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
body.bpm-design-v204 .alert-success{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.26);color:#a7f3d0}
body.bpm-design-v204 .alert-danger,body.bpm-design-v204 .alert-err{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.27);color:#fecdd3}
body.bpm-design-v204 .alert-info{background:rgba(14,165,255,.1);border-color:rgba(14,165,255,.25);color:#bae6fd}
body.bpm-design-v204 :where(.st-badge,.role-tag,.badge-item,.nb-b,.bpm203-pill,.bpm203-type){border-radius:999px;font-weight:850;letter-spacing:.035em}

/* Tableaux */
body.bpm-design-v204 :where(.tbl-wrap,.table-wrap,.bpm-table-wrap){border:1px solid var(--bpm204-line);border-radius:16px;overflow:auto;background:rgba(4,10,22,.42)}
body.bpm-design-v204 :where(.tbl,.bpm-sec-table,.bpm203-table){width:100%;border-collapse:separate;border-spacing:0}
body.bpm-design-v204 :where(.tbl,.bpm-sec-table,.bpm203-table) th{position:sticky;top:0;z-index:2;background:#0c1628;color:#91d7ff;border-bottom:1px solid var(--bpm204-line);font-size:.72rem;text-transform:uppercase;letter-spacing:.075em}
body.bpm-design-v204 :where(.tbl,.bpm-sec-table,.bpm203-table) td{border-bottom-color:rgba(148,163,184,.09);color:#d6deec}
body.bpm-design-v204 :where(.tbl,.bpm-sec-table,.bpm203-table) tbody tr:hover td{background:rgba(14,165,255,.035)}

/* Modales, menus et états vides */
body.bpm-design-v204 :where(.modal,.modal-box,.dialog,.popup-card){border-color:var(--bpm204-line);background:var(--bpm204-surface-strong);border-radius:var(--bpm204-radius-lg);box-shadow:0 30px 90px rgba(0,0,0,.55)}
body.bpm-design-v204 :where(.wall-empty,.empty-state,.bpm197-empty,.bpm-navpanel-empty){border-radius:16px;color:var(--bpm204-muted)}
body.bpm-design-v204 :where(.wall-empty,.empty-state,.bpm197-empty) i{color:#63caff}

/* Footer et lecteur */
body.bpm-design-v204 .site-footer{border-color:var(--bpm204-line);background:linear-gradient(180deg,rgba(6,11,23,.8),rgba(3,7,15,.98))}
body.bpm-design-v204 .footer-col strong{color:#fff}.bpm-design-v204 .footer-col a{color:#8f9db2}.bpm-design-v204 .footer-col a:hover{color:#7dd3fc}
body.bpm-design-v204 .bpm-global-player{border-top-color:rgba(14,165,255,.22);background:rgba(5,10,22,.96);backdrop-filter:blur(22px) saturate(130%);box-shadow:0 -18px 48px rgba(0,0,0,.34)}
body.bpm-design-v204 .bpm194-mobile-nav{background:rgba(4,9,20,.95);border-color:var(--bpm204-line);backdrop-filter:blur(18px)}

/* Page de référence BPM 204 */
.bpm204-design-page{padding-bottom:130px}
.bpm204-design-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:24px 0;padding:30px;border:1px solid rgba(14,165,255,.24);border-radius:28px;background:radial-gradient(circle at 8% 0,rgba(14,165,255,.25),transparent 38%),linear-gradient(145deg,rgba(15,25,45,.98),rgba(5,10,22,.96));box-shadow:var(--bpm204-shadow)}
.bpm204-design-hero .eyebrow{display:flex;align-items:center;gap:8px;color:#7dd3fc;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:900}
.bpm204-design-hero h1{margin:.15rem 0 .45rem;font-size:clamp(2rem,5vw,4rem);line-height:.96}.bpm204-design-hero p{max-width:780px;color:#a5b3c8;line-height:1.6}.bpm204-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.bpm204-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.bpm204-stats article{padding:18px;border:1px solid var(--bpm204-line);border-radius:18px;background:var(--bpm204-surface)}.bpm204-stats strong{display:block;color:#fff;font-size:1.65rem}.bpm204-stats span{color:var(--bpm204-muted);font-size:.82rem}
.bpm204-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}.bpm204-main,.bpm204-side{display:flex;flex-direction:column;gap:18px}.bpm204-demo-card{padding:20px;border:1px solid var(--bpm204-line);border-radius:22px;background:var(--bpm204-surface);box-shadow:var(--bpm204-shadow-soft)}.bpm204-demo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.bpm204-demo-head h2{display:flex;align-items:center;gap:9px;margin:0;color:#fff;font-size:1.08rem}.bpm204-demo-head span{padding:5px 9px;border-radius:999px;background:rgba(14,165,255,.12);color:#93dcff;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.bpm204-swatches{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.bpm204-swatch{min-height:86px;padding:10px;border-radius:15px;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;justify-content:flex-end}.bpm204-swatch strong{font-size:.76rem}.bpm204-swatch small{font-size:.66rem;color:rgba(255,255,255,.68)}
.bpm204-button-row,.bpm204-badge-row{display:flex;gap:9px;flex-wrap:wrap}.bpm204-form-demo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bpm204-form-demo .full{grid-column:1/-1}.bpm204-checks{display:flex;gap:14px;flex-wrap:wrap}.bpm204-audit-list{display:grid;gap:9px}.bpm204-audit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--bpm204-line);border-radius:14px;background:rgba(2,8,20,.38)}.bpm204-audit-row strong{display:block;color:#fff}.bpm204-audit-row small{display:block;color:var(--bpm204-muted);font-size:.74rem}.bpm204-audit-state{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:.7rem;font-weight:900;background:rgba(34,197,94,.12);color:#9af3b7}.bpm204-audit-state.warn{background:rgba(245,158,11,.12);color:#fcd34d}
.bpm204-route-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bpm204-route-list a{padding:10px 11px;border:1px solid var(--bpm204-line);border-radius:13px;color:#cbd5e1;background:rgba(2,8,20,.35);display:flex;align-items:center;gap:8px}.bpm204-route-list a:hover{color:#fff;border-color:var(--bpm204-line-blue);background:rgba(14,165,255,.08)}

@media(max-width:1120px){.bpm204-grid{grid-template-columns:1fr}.bpm204-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.bpm204-swatches{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){body.bpm-design-v204 .site-nav{min-height:58px;padding:5px 10px}.bpm204-design-hero{flex-direction:column;padding:22px;border-radius:22px}.bpm204-hero-actions,.bpm204-hero-actions .btn{width:100%}.bpm204-stats,.bpm204-side,.bpm204-form-demo{grid-template-columns:1fr}.bpm204-swatches{grid-template-columns:repeat(2,minmax(0,1fr))}.bpm204-route-list{grid-template-columns:1fr}.bpm204-demo-card{padding:16px;border-radius:18px}}
@media(prefers-reduced-motion:reduce){body.bpm-design-v204 *,body.bpm-design-v204 *::before,body.bpm-design-v204 *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
