  /* Palette unique sombre (noir + roses), assumée : pas de variante claire */
  /* Typographie officielle : « Boss Empire » (numérisée à partir de la planche fournie). Nunito ne sert que de secours pour les rares signes absents. */
  @font-face{font-family:'Boss Empire'; src:url(../assets/fonts/police-boss-empire.woff) format('woff'); font-weight:100 900; font-style:normal; font-display:block;}
  @font-face{font-family:'Boss Empire'; src:url(../assets/fonts/police-boss-empire.woff) format('woff'); font-weight:100 900; font-style:italic; font-display:block;}
  :root{
    color-scheme:dark;
    --bg:#000000; --surface:#1A1A1A; --surface-2:#120C0F; --border:#4A1F2E;
    --text:#FDE7EF; --text-muted:#C987A3;
    --accent:#D94674; --accent-strong:#E3698F; --accent-soft:#4A1F2E;
    --good:#E3698F; --good-soft:#4A1F2E;
    --bad:#FF5A5A; --bad-soft:#3A1418;
    --info:#F7B8C9; --info-soft:#2A151D;
    --buzz:#8F3A5A; --buzz-soft:#2A101A;
    --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 22px rgba(217,70,116,.10);
    --radius:12px;
    --font-display:'Boss Empire','Nunito',system-ui,sans-serif;
    --font-body:'Boss Empire','Nunito',system-ui,sans-serif;
    --font-mono:'Boss Empire','Nunito',system-ui,sans-serif;
  }

  *{box-sizing:border-box;}
  body{
    background:
      radial-gradient(900px 500px at 15% -8%, var(--accent-soft), transparent 60%),
      radial-gradient(700px 500px at 100% 0%, var(--buzz-soft), transparent 55%),
      var(--bg);
    color:var(--text); font-family:var(--font-body);
    padding-inline:16px; padding-block:20px; -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:var(--font-display); font-weight:400; line-height:1.05; letter-spacing:.01em; text-wrap:balance; margin:0;}
  .start-hero h1 .accent{color:var(--accent);}
  .mono{font-family:var(--font-mono); font-weight:800; font-variant-numeric:tabular-nums;}
  button{font-family:var(--font-body); cursor:pointer;}
  input, select, textarea{font-family:var(--font-body);}
  /* La police officielle est large : on resserre légèrement les gros libellés sur petit écran. */
  @media (max-width:420px){ .bq-lb{display:none;} #btn-endweek{font-size:1.05rem; padding-inline:12px;} .panel-head h2{font-size:1.15rem;} }
  button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible{
    outline:2px solid var(--accent); outline-offset:2px;
  }
  #app{max-width:1080px; margin:0 auto; display:flex; flex-direction:column; gap:16px;}

  /* ---------- boutons ---------- */
  .btn-primary{
    background:var(--accent); color:#fff; border:none; border-radius:var(--radius);
    padding:14px 22px; font-family:var(--font-display); font-weight:400; font-size:1.25rem; letter-spacing:.02em; box-shadow:var(--shadow);
    transition:transform .1s ease, background .15s ease;
  }
  .btn-primary:hover{background:var(--accent-strong);}
  .btn-primary:active{transform:scale(.98);}
  .btn-primary:disabled{opacity:.45; cursor:not-allowed;}
  .btn-ghost{
    background:var(--surface-2); color:var(--text); border:1px solid var(--border);
    border-radius:var(--radius); padding:8px 14px; font-weight:600; font-size:.85rem;
  }
  .btn-ghost:hover{border-color:var(--accent);}
  .btn-text{
    background:none; border:none; color:var(--text-muted); font-size:.82rem;
    text-decoration:underline; padding:8px;
  }
  .btn-tier{
    display:flex; flex-direction:column; align-items:flex-start; gap:4px;
    background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
    padding:12px; text-align:left; flex:1; min-width:140px;
  }
  .btn-tier:hover:not(:disabled){border-color:var(--accent);}
  .btn-tier:disabled{opacity:.4; cursor:not-allowed;}
  .btn-tier .tier-name{font-weight:700; font-size:.95rem;}
  .btn-tier .tier-detail{font-size:.78rem; color:var(--text-muted);}
  .btn-tier .tier-cost{font-family:var(--font-mono); color:var(--accent); font-weight:600;}

  /* ---------- écran de démarrage ---------- */
  .start-screen{display:flex; flex-direction:column; gap:22px; padding-block:8px;}
  .start-hero h1{font-size:clamp(2.8rem,11vw,4.2rem); line-height:1;}
  .start-hero p{color:var(--text-muted); max-width:60ch; margin-top:8px; font-size:.95rem;}
  .arche-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px;}
  .arche-card{
    background:var(--surface); border:2px solid var(--border); border-radius:var(--radius);
    padding:16px; display:flex; flex-direction:column; gap:8px; text-align:left;
  }
  .arche-card.selected{border-color:var(--accent); box-shadow:var(--shadow);}
  .arche-card h3{font-size:1.3rem;}
  .arche-card p{font-size:.83rem; color:var(--text-muted); flex:1;}
  .arche-card .arche-stat-row{display:flex; gap:10px; font-family:var(--font-mono); font-size:.72rem; color:var(--text-muted);}
  .form-row{display:flex; flex-direction:column; gap:6px; max-width:360px;}
  .form-row label{font-size:.78rem; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.04em;}
  .form-row input, .form-row select{
    background:var(--surface); border:1px solid var(--border); border-radius:8px;
    padding:10px 12px; color:var(--text); font-size:.95rem; font-family:var(--font-body);
  }
  .form-grid{display:flex; flex-wrap:wrap; gap:16px;}

  /* ---------- topbar ---------- */
  .topbar{
    position:sticky; top:env(safe-area-inset-top,0px); z-index:20;
    background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
    box-shadow:var(--shadow); padding:12px 16px;
  }
  .topbar-inner{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px;}
  .brand{display:flex; flex-direction:column; gap:2px;}
  .brand-label{font-family:var(--font-display); font-weight:400; font-size:1.5rem; line-height:1;}
  .brand-rank{font-size:.72rem; color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:.05em;}
  .hud-stats{display:flex; gap:18px; flex-wrap:wrap;}
  .hud-stat{display:flex; flex-direction:column; align-items:flex-end;}
  .hud-key{font-size:.68rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em;}
  .hud-val{font-size:1.05rem; font-weight:600;}
  .hud-val.negative{color:var(--bad);}
  .rank-progress{height:5px; background:var(--surface-2); border-radius:4px; margin-top:10px; overflow:hidden;}
  .rank-progress-fill{height:100%; background:var(--accent); border-radius:4px; transition:width .3s ease;}
  .rank-next{font-size:.7rem; color:var(--text-muted); margin-top:4px;}
  .overdraft-banner{
    background:var(--bad-soft); color:var(--bad); border-radius:8px; padding:8px 12px;
    font-size:.8rem; font-weight:600; margin-top:8px;
  }

  .btn-icon{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); width:44px; height:44px; flex-shrink:0; font-size:1.15rem; display:flex; align-items:center; justify-content:center; padding:0; cursor:pointer;}
  .btn-icon:hover{border-color:var(--accent);}
  .actionbar .btn-primary{flex:1;}
  .settings-section{display:flex; flex-direction:column; gap:8px;}
  .settings-section h4{font-family:var(--font-display); font-size:1rem; margin:0;}
  .settings-hint{text-align:center;}

  /* ---------- layout principal ---------- */
  .layout{display:grid; grid-template-columns:1.4fr 1fr; gap:16px;}
  @media (max-width:760px){ .layout{grid-template-columns:1fr;} }
  .panel{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px; box-shadow:var(--shadow);}
  .panel-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;}
  .panel-head h2{font-size:1.1rem;}
  .chart-panel{grid-column:1 / -1;}
  .locaux-panel{grid-column:1 / -1;}
  .team-panel{grid-column:1 / -1;}
  .team-summary{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px;}
  .team-tile{display:flex; flex-direction:column; gap:4px; text-align:left; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:10px 12px; color:var(--text); font-size:.85rem; cursor:pointer;}
  .team-tile:hover{border-color:var(--accent);}
  .team-tile-title{font-weight:800;}
  .team-body{display:flex; flex-direction:column; gap:10px;}
  .tm-help{font-size:.76rem; color:var(--text-muted); margin:0; line-height:1.45;}
  .tm-section{font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin-top:6px;}
  .tm-card{background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:10px; display:flex; flex-direction:column; gap:6px;}
  .tm-card.tm-jail{opacity:.6;}
  .tm-head{display:flex; align-items:center; gap:10px;}
  .tm-av{width:42px; height:42px; border-radius:50%; overflow:hidden; flex-shrink:0; display:block;}
  .tm-id{flex:1; display:flex; flex-direction:column; min-width:0;} .tm-id b{font-size:.88rem;} .tm-id span{font-size:.72rem; color:var(--text-muted);}
  .tm-stars{color:#F2C14E; font-size:.82rem; letter-spacing:1px; white-space:nowrap;}
  .tm-chip{font-size:.66rem; font-weight:800; background:var(--bad-soft); color:var(--bad); border-radius:999px; padding:2px 8px; white-space:nowrap;}
  .tm-intro{font-size:.72rem; color:var(--text-muted); font-style:italic;}
  .tm-fx{font-size:.76rem; color:var(--accent-strong); font-weight:700;}
  .tm-foot{display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:.74rem; color:var(--text-muted);}
  .tm-bar{display:grid; grid-template-columns:70px 1fr 18px; gap:6px; align-items:center; font-size:.7rem; color:var(--text-muted);} .tm-bar b{color:var(--text); text-align:right;}
  .tm-card select, .team-body select{background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:7px 9px; color:var(--text); font:inherit; font-size:.8rem;}
  .tm-gauge{display:flex; flex-direction:column; gap:4px;} .tm-gauge-head{display:flex; justify-content:space-between; font-size:.78rem; font-weight:700;}
  .tm-pick{display:flex; flex-direction:column; gap:4px;}
  .tm-check{display:flex; align-items:center; gap:8px; font-size:.8rem; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:6px 10px;} .tm-check span{margin-left:auto; color:var(--text-muted); font-size:.72rem;}
  .tm-offer{border:1px dashed var(--border); border-radius:12px; padding:8px; display:flex; flex-direction:column; gap:6px;}
  .tm-offer-head{font-size:.74rem; font-weight:800; color:var(--accent-strong);}
  .tm-go{align-self:flex-start; font-size:1rem; padding:10px 16px;}
  .tm-go.danger{background:#8B1E2E;}
  .estimate-box.danger{background:var(--bad-soft);}
  .go-panel{text-align:center; align-items:center;} .go-panel h3{font-size:2rem; color:var(--bad);}
  .une-panel{grid-column:1 / -1;}
  .une-list{display:flex; flex-direction:column; gap:6px;}
  .une-item{display:flex; gap:8px; align-items:center; background:var(--surface-2); border:1px solid var(--border); border-left:3px solid var(--border); border-radius:8px; padding:8px 10px; color:var(--text); text-align:left; font-size:.8rem; font-weight:700; cursor:pointer;}
  .une-item:hover{border-color:var(--accent);}
  .une-item.pos{border-left-color:#3BD17A;} .une-item.neg{border-left-color:var(--bad);}
  .une-text{flex:1;} .une-week{font-size:.68rem; color:var(--text-muted);}
  .une-tag{font-size:.64rem; font-weight:900; color:var(--accent-strong); text-transform:uppercase;}
  .title-row{display:flex; gap:6px;} .title-row input{flex:1; min-width:0;}
  .field-row input[type=text], .field-row select{background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:8px 10px; color:var(--text); font:inherit; font-size:.85rem;}
  .phone-btn{position:relative;}
  .ph-badge{position:absolute; top:-5px; right:-5px; background:var(--bad); color:#fff; border-radius:999px; font-size:.62rem; font-weight:900; padding:1px 5px; min-width:17px; line-height:1.4;}
  .phone{background:#0B0A0D; color:#F4F1F3; width:100%; max-width:420px; height:min(94vh,860px); height:min(94dvh,860px); border-radius:28px 28px 0 0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--border); box-shadow:0 20px 60px rgba(0,0,0,.6);}
  @media (min-width:640px){ .phone{border-radius:34px; border-width:6px; border-color:#1d1a1f;} }
  .phone > *{flex-shrink:0;}
  .phone-status{display:flex; justify-content:space-between; align-items:flex-start; padding:6px 18px 0; font-size:.68rem; font-weight:800; color:#aaa;}
  .phone-notch{width:84px; height:18px; background:#000; border-radius:0 0 12px 12px; margin-top:-6px;}
  .phone-head{display:flex; align-items:center; gap:8px; padding:8px 12px 4px;}
  .phone-seg{flex:1; display:flex; background:#1A171C; border-radius:999px; padding:3px;}
  .phone-seg button{flex:1; border:none; background:none; color:#aaa; font-weight:800; padding:7px; border-radius:999px; font-size:.8rem; cursor:pointer;}
  .phone-seg button.active{background:var(--accent); color:#fff;}
  .phone-apphead{padding:4px 14px 8px; font-family:var(--font-display); font-size:1.5rem; display:flex; align-items:baseline; gap:8px;}
  .phone-apphead small{font-family:var(--font-body); font-size:.7rem; color:#999; font-weight:700;}
  .phone-body{flex:1 1 auto; flex-shrink:1; overflow-y:auto; padding:0 12px 14px; display:flex; flex-direction:column; gap:10px;}
  .phone-body > *{flex-shrink:0;}
  .phone-nav{display:flex; border-top:1px solid #222; background:#0F0D11; padding-bottom:env(safe-area-inset-bottom,0px);}
  .phone-nav button{flex:1; background:none; border:none; color:#7d7580; padding:8px 2px 10px; display:flex; flex-direction:column; align-items:center; gap:2px; font-size:.62rem; font-weight:800; cursor:pointer;}
  .phone-nav button .ic{font-size:1.25rem; filter:grayscale(.6);}
  .phone-nav button.active{color:#fff;} .phone-nav button.active .ic{filter:none;}
  .ph-card{background:#151217; border:1px solid #241E26; border-radius:14px; padding:10px; display:flex; flex-direction:column; gap:8px;}
  .ph-row{flex-direction:row; align-items:center;}
  .ph-user{display:flex; align-items:center; gap:8px;}
  .ph-av{width:36px; height:36px; border-radius:50%; overflow:hidden; flex-shrink:0; display:block; background:#222;}
  .ph-name{font-weight:800; font-size:.82rem;} .ph-sub{font-size:.68rem; color:#999;}
  .ph-verified{color:#4FB3FF; font-size:.72rem;}
  .ph-me{font-size:.6rem; font-weight:900; background:var(--accent); color:#fff; border-radius:999px; padding:1px 6px; text-transform:uppercase;}
  .ph-cover{border-radius:10px; aspect-ratio:1; width:100%; display:flex; align-items:flex-end; padding:12px; font-family:var(--font-display); font-size:1.7rem; line-height:1; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.45); overflow:hidden;}
  .ph-cover.sm{width:44px; height:44px; aspect-ratio:auto; padding:4px; font-size:.55rem; border-radius:6px; flex-shrink:0; font-family:var(--font-body); font-weight:900;}
  .ph-photo{border-radius:10px; overflow:hidden;}
  .ph-stage{aspect-ratio:1; background:radial-gradient(circle at 30% 0%, rgba(217,70,116,.7), transparent 45%), radial-gradient(circle at 75% 0%, rgba(127,178,229,.6), transparent 45%), linear-gradient(#120d16,#2a1622); display:flex; align-items:flex-end; justify-content:center;}
  .ph-photo-av{width:62%; aspect-ratio:1; border-radius:50% 50% 0 0; overflow:hidden;}
  .ph-gear{aspect-ratio:1; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--accent),#1a1216); font-family:var(--font-display); font-size:4rem; color:#fff;}
  .ph-comments{display:flex; flex-direction:column; gap:3px; font-size:.74rem;}
  .ph-comment b{margin-right:5px; color:#ddd;} .ph-comment.neg{color:#ff9aa9;} .ph-comment.pos{color:#bff2cf;} .ph-comment.neu{color:#cfc8cc;}
  .ph-meta{font-size:.7rem; color:#999; display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
  .ph-press{border-left:4px solid #666;} .ph-press.pos{border-left-color:#3BD17A;} .ph-press.neg{border-left-color:#FF5A5A;}
  .ph-outlet{font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.05em; padding:2px 8px; border-radius:999px; align-self:flex-start; color:#111;}
  .ph-title{font-weight:900; font-size:.95rem; line-height:1.2;} .ph-text{font-size:.78rem; color:#cfc8cc; line-height:1.4;}
  .ph-explain{background:#1a161c; border-radius:10px; padding:10px;}
  .ph-video{position:relative; border-radius:12px; overflow:hidden; aspect-ratio:9/12; background:linear-gradient(160deg,#18142a,#3a1030 60%,#0b0a0d);}
  .ph-v-av{position:absolute; left:18%; right:18%; top:10%; aspect-ratio:1; border-radius:50%; overflow:hidden; opacity:.95;}
  .ph-v-cap{position:absolute; left:10px; right:56px; bottom:32px; font-weight:800; font-size:.8rem; text-shadow:0 1px 4px #000;}
  .ph-v-sound{position:absolute; left:10px; right:56px; bottom:10px; font-size:.7rem; color:#ddd; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .ph-v-side{position:absolute; right:8px; bottom:12px; display:flex; flex-direction:column; gap:10px; align-items:center; text-align:center; font-size:.64rem; font-weight:800;}
  .ph-chart-row{display:flex; align-items:center; gap:8px; padding:6px; border-radius:10px;}
  .ph-chart-row.me{background:rgba(217,70,116,.18); outline:1px solid var(--accent);}
  .ph-pos{width:20px; text-align:right; font-weight:900;} .ph-mv{width:30px; font-size:.6rem; font-weight:900; text-align:center; color:#888;}
  .ph-mv.up{color:#3BD17A;} .ph-mv.down{color:#FF5A5A;} .ph-mv.new{color:#F2C14E;}
  .ph-info{flex:1; min-width:0; display:flex; flex-direction:column; gap:1px;}
  .ph-info b{font-size:.8rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} .ph-info span{font-size:.7rem; color:#aaa;}
  .ph-clash{color:#ff9aa9 !important; font-weight:800;}
  .ph-streams{font-size:.72rem; font-weight:800; color:#ccc;}
  .ph-section{font-size:.7rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; color:#999; margin-top:4px;}
  .ph-empty{color:#888; font-size:.8rem; text-align:center; padding:24px 8px;}
  .ph-gauge{height:6px; background:#2a2430; border-radius:4px; overflow:hidden;} .ph-gauge i{display:block; height:100%;}
  .ph-chip{font-size:.62rem; font-weight:900; padding:3px 8px; border-radius:999px; background:#2a2430; white-space:nowrap;}
  .ph-btn{background:var(--accent); color:#fff; border:none; border-radius:8px; padding:8px 10px; font-weight:800; font-size:.74rem; cursor:pointer; align-self:flex-start;}
  .ph-btn.ghost{background:transparent; border:1px solid var(--accent); color:var(--accent-strong);}
  .ph-stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px;}
  .ph-stat{background:#1d1920; border-radius:10px; padding:8px; display:flex; flex-direction:column; gap:2px;}
  .ph-stat b{font-size:.95rem;} .ph-stat span{font-size:.62rem; color:#999;} .ph-stat em{font-style:normal; font-weight:900;} .ph-stat em.up{color:#3BD17A;} .ph-stat em.down{color:#FF5A5A;}
  .ph-logo{width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:.72rem; background:var(--accent); color:#fff; flex-shrink:0;}
  .ph-logo-user{background:#3a3340;}
  .phone-nav button{position:relative;}
  .phone-nav .ph-badge{top:2px; right:calc(50% - 22px);}
  .dm-row{display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:#17131a; border:1px solid #241e28; border-radius:12px; padding:10px; color:#ddd; cursor:pointer; font:inherit;}
  .dm-row + .dm-row{margin-top:6px;}
  .dm-row.unread{background:#1f1826; border-color:#3a2c4a;}
  .dm-row .ph-av{flex-shrink:0;}
  .dm-row-main{display:flex; flex-direction:column; gap:2px; min-width:0; flex:1;}
  .dm-row-top{display:flex; align-items:center; gap:6px; justify-content:space-between;}
  .dm-row-top b{font-size:.8rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .dm-row-type{font-size:.66rem; color:#B48CF2; font-weight:800;}
  .dm-row-last{font-size:.72rem; color:#9a929e; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .dm-row.unread .dm-row-last{color:#eee; font-weight:700;}
  .dm-dot{width:9px; height:9px; border-radius:50%; background:#B48CF2; flex-shrink:0;}
  .dm-chip{font-size:.58rem; font-weight:900; padding:2px 7px; border-radius:999px; white-space:nowrap; background:#2a2430; color:#ccc;}
  .dm-chip.open{background:#3a2c4a; color:#d9c4ff;} .dm-chip.ok{background:#173a26; color:#8ee6ae;} .dm-chip.ko{background:#3a1a22; color:#ff9aa9;}
  .dm-back{background:none; border:none; color:#B48CF2; font-weight:800; font-size:.76rem; padding:2px 0 8px; cursor:pointer;}
  .dm-head{border-bottom:1px solid #241e28; padding-bottom:8px; margin-bottom:10px;}
  .dm-thread{display:flex; flex-direction:column; gap:6px; margin-bottom:10px;}
  .dm-bubble{max-width:82%; padding:8px 11px; border-radius:16px; font-size:.78rem; line-height:1.35; color:#eee;}
  .dm-bubble.them{align-self:flex-start; background:#221c25; border-bottom-left-radius:4px;}
  .dm-bubble.me{align-self:flex-end; background:var(--accent); color:#fff; border-bottom-right-radius:4px;}
  .dm-sys{align-self:center; font-size:.66rem; color:#8a828e; text-align:center; padding:2px 8px;}
  .dm-offer{background:#17131a; border:1px solid #3a2c4a; border-radius:12px; padding:10px; display:flex; flex-direction:column; gap:7px;}
  .dm-offer-head{font-size:.66rem; font-weight:900; color:#B48CF2; text-transform:uppercase; letter-spacing:.04em;}
  .dm-terms{font-size:.9rem; color:#fff; display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
  .dm-actions{display:flex; gap:8px; flex-wrap:wrap;}
  .dm-actions .ph-btn[disabled]{opacity:.45; cursor:not-allowed;}
  .dm-neg{display:flex; gap:6px; flex-wrap:wrap; align-items:center; font-size:.68rem; color:#aaa;}
  .dm-negbtn{background:#221c25; border:1px solid #3a2c4a; color:#e8dcff; border-radius:8px; padding:5px 8px; font-weight:800; font-size:.7rem; cursor:pointer; display:flex; flex-direction:column; align-items:center; line-height:1.2;}
  .dm-negbtn small{font-size:.6rem; color:#9a929e; font-weight:700;}

  .rent-total{font-size:.75rem; color:var(--text-muted); font-weight:700;}
  .locaux-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px;}
  .loc-card{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:0; overflow:hidden; text-align:left; color:var(--text); display:flex; flex-direction:column; cursor:pointer;}
  .loc-card:hover{border-color:var(--accent);}
  .loc-scene{aspect-ratio:320/200; display:block; width:100%; flex-shrink:0;}
  .loc-info{padding:8px 10px 10px; display:flex; flex-direction:column; gap:3px;}
  .loc-name{font-weight:800; font-size:.92rem;}
  .loc-meta{font-size:.72rem; color:var(--text-muted);}
  .loc-fx{font-size:.72rem; color:var(--accent-strong); font-weight:700;}
  .overlay-wide{max-width:760px;}
  .fac-scene{border-radius:12px; overflow:hidden; border:1px solid var(--border); aspect-ratio:320/200; width:100%; flex-shrink:0;}
  .overlay-panel > *{flex-shrink:0;}
  .fac-scene .fac-hs{cursor:pointer;}
  .fac-scene .fac-hs:hover{filter:brightness(1.25) drop-shadow(0 0 3px rgba(247,184,201,.9));}
  .fac-hint{margin:-6px 0 0; font-size:.72rem; color:var(--text-muted);}
  .fac-stats{display:flex; flex-wrap:wrap; gap:6px;}
  .fac-stat{background:var(--accent-soft); color:var(--accent-strong); border-radius:999px; padding:4px 10px; font-size:.72rem; font-weight:800;}
  .fac-body{display:flex; flex-direction:column; gap:10px;}
  .slot-card{background:var(--surface-2); border:1px solid var(--border); border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:6px;}
  .slot-card.flash{border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft);}
  .slot-head{display:flex; justify-content:space-between; align-items:baseline; gap:8px;}
  .slot-title{font-weight:800; font-size:.88rem;}
  .slot-current{font-size:.72rem; color:var(--text-muted);}
  .tier-line{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:6px 8px; border-radius:8px; background:var(--surface);}
  .tier-line.owned{outline:1px solid var(--accent);}
  .tier-line .tl-name{font-size:.8rem; font-weight:700;}
  .tier-line .tl-fx{font-size:.7rem; color:var(--text-muted);}
  .tier-line .tl-act{flex-shrink:0; font-size:.75rem; font-weight:800;}
  .btn-buy{background:var(--accent); color:#fff; border:none; border-radius:8px; padding:6px 10px; font-weight:800; font-size:.75rem;}
  .btn-buy:disabled{opacity:.4; cursor:not-allowed;}
  .tl-lock{color:var(--text-muted);}
  .tl-owned{color:var(--accent-strong);}
  .deco-chips{display:flex; flex-wrap:wrap; gap:6px;}
  .deco-chip{background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:6px 12px; font-size:.76rem; font-weight:700; color:var(--text-muted);}
  .deco-chip.selected{border-color:var(--accent); color:var(--accent-strong); background:var(--accent-soft);}
  .fac-link{background:none; border:1px dashed var(--border); border-radius:10px; padding:10px; color:var(--accent-strong); font-weight:800; font-size:.8rem; text-align:left;}
  .fac-link:hover{border-color:var(--accent);}

  /* ---------- roster ---------- */
  .roster-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px;}
  .strip{background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:12px; display:flex; flex-direction:column; gap:8px;}
  .strip-head{display:flex; align-items:center; gap:8px;}
  .strip-head .avatar-thumb{flex:none; overflow:hidden;} .strip-head .strip-name{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;} .strip-head .loy-chip, .strip-head .pill{position:relative; z-index:1; flex:none;}
  .strip-name{font-weight:700; font-size:1rem;}
  .pill{font-size:.68rem; font-weight:700; padding:2px 8px; border-radius:999px; background:var(--accent-soft); color:var(--accent-strong); white-space:nowrap;}
  .meter{display:grid; grid-template-columns:52px 1fr 44px; align-items:center; gap:6px; font-size:.72rem;}
  .meter-label{color:var(--text-muted); font-weight:600;}
  .meter-track{height:6px; background:var(--border); border-radius:4px; overflow:hidden;}
  .meter-fill{height:100%; border-radius:4px;}
  .meter-talent{background:var(--accent);}
  .meter-image{background:var(--info);}
  .meter-buzz{background:var(--buzz);}
  .meter-fans{background:var(--good);}
  .meter-num{text-align:right; font-family:var(--font-mono); color:var(--text-muted);}
  .strip-foot{display:flex; justify-content:space-between; align-items:center; margin-top:2px;}
  .catalog-count{font-size:.72rem; color:var(--text-muted);}
  .btn-manage{background:none; border:1px solid var(--border); border-radius:8px; padding:6px 10px; font-size:.78rem; font-weight:700; color:var(--accent);}
  .btn-manage:hover{border-color:var(--accent);}

  /* ---------- log ---------- */
  .event-log{display:flex; flex-direction:column; gap:8px; max-height:360px; overflow-y:auto; padding-right:4px;}
  .log-entry{border:1px solid var(--border); border-radius:8px; padding:8px 10px; background:var(--surface-2);}
  .log-entry-head{display:flex; justify-content:space-between; font-size:.75rem; font-weight:700; margin-bottom:4px;}
  .log-entry-head .semaine{color:var(--accent);}
  .log-entry ul{margin:0; padding-left:16px; font-size:.76rem; color:var(--text-muted); display:flex; flex-direction:column; gap:2px;}
  .log-empty{color:var(--text-muted); font-size:.85rem; text-align:center; padding:20px 0;}

  /* ---------- overlays ---------- */
  .overlay{
    position:fixed; inset:0; background:rgba(10,12,16,.5); display:flex;
    align-items:flex-end; justify-content:center; z-index:50; padding:0;
  }
  @media (min-width:640px){ .overlay{align-items:center;} }
  .overlay-panel{
    background:var(--surface); border-radius:16px 16px 0 0; width:100%; max-width:560px;
    max-height:88vh; max-height:88dvh; overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:14px;
    padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));
  }
  @media (min-width:640px){ .overlay-panel{border-radius:16px; max-height:80vh; max-height:80dvh;} }
  .overlay-head{display:flex; justify-content:space-between; align-items:center;}
  .overlay-close{background:none; border:none; font-size:1.4rem; color:var(--text-muted); line-height:1; padding:4px;}
  .tabs{display:flex; gap:6px; flex-wrap:wrap; border-bottom:1px solid var(--border); padding-bottom:10px;}
  .tab-btn{background:none; border:1px solid var(--border); border-radius:999px; padding:6px 14px; font-size:.8rem; font-weight:600; color:var(--text-muted);}
  .tab-btn.active{background:var(--accent-soft); color:var(--accent-strong); border-color:var(--accent);}
  .tab-panel{display:flex; flex-direction:column; gap:12px;}
  .tier-row{display:flex; gap:10px; flex-wrap:wrap;}
  .field-row{display:flex; flex-direction:column; gap:6px;}
  .field-row label{font-size:.78rem; font-weight:600; color:var(--text-muted);}
  .channel-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px;}
  .channel-btn{
    background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:8px 10px;
    text-align:left; font-size:.78rem; display:flex; flex-direction:column; gap:2px;
  }
  .channel-btn.active{border-color:var(--accent); background:var(--accent-soft); color:var(--accent-strong);}
  .channel-affinity{font-family:var(--font-mono); font-size:.7rem; color:var(--text-muted);}
  .track-select{display:flex; flex-direction:column; gap:6px; max-height:130px; overflow-y:auto;}
  .track-option{display:flex; align-items:center; gap:8px; font-size:.8rem; border:1px solid var(--border); border-radius:8px; padding:6px 10px;}
  .track-option input{margin:0;}
  input[type=range]{width:100%; accent-color:var(--accent);}
  .estimate-box{background:var(--info-soft); border-radius:8px; padding:10px 12px; font-size:.8rem; color:var(--text);}
  .estimate-box b{font-family:var(--font-mono);}
  .confirm-row{display:flex; justify-content:flex-end; gap:8px;}

  .candidate-card{border:1px solid var(--border); border-radius:10px; padding:10px 12px; display:flex; justify-content:space-between; align-items:center; gap:10px; background:var(--surface-2);}
  .candidate-stats{font-size:.72rem; color:var(--text-muted); font-family:var(--font-mono);}
  /* Fiches d'artistes */
  .idc{display:flex; flex-direction:column; gap:8px; min-width:0;}
  .idc-head{display:flex; align-items:center; gap:10px;}
  .idc-flag{font-size:1.5rem; line-height:1;}
  .idc-head b{display:block; font-size:.98rem;} .idc-head small{display:block; color:var(--text-muted); font-size:.72rem;}
  .idc-tier{margin-left:auto; font-size:.68rem; font-weight:800; padding:3px 9px; border-radius:999px; border:1px solid var(--border); white-space:nowrap; color:var(--text-muted);}
  .idc-tier.t-populaire{color:#F2C14E; border-color:#6b5520;} .idc-tier.t-superstar{color:#FDE7EF; border-color:#D94674; background:#3a1422;}
  .idc-tier.t-legende{color:#1a1206; background:linear-gradient(90deg,#F2C14E,#FFE9A8); border-color:#F2C14E;} .idc-tier.t-local{color:#9BE3A8; border-color:#27553a;}
  .idc-tags{display:flex; flex-wrap:wrap; gap:5px;}
  .idc-tags span{font-size:.68rem; padding:2px 8px; border-radius:999px; background:var(--surface-2); border:1px solid var(--border); color:var(--text-muted);}
  .idc-tags .rare{color:#F2C14E; border-color:#6b5520;}
  .idc-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:5px 14px;}
  .idc-s{display:grid; grid-template-columns:86px 1fr 26px; align-items:center; gap:6px; font-size:.7rem; color:var(--text-muted);}
  .idc-s b{font-family:var(--font-mono); color:var(--text); text-align:right; font-size:.72rem;}
  .idc-s .meter-track{height:5px;}
  .idc-foot span{white-space:nowrap;}
  .idc-foot{display:flex; flex-wrap:wrap; gap:4px 12px; justify-content:space-between; font-size:.74rem; color:var(--text-muted); border-top:1px dashed var(--border); padding-top:6px;}
  .idc-foot b{font-family:var(--font-mono); color:var(--text);}
  .idc-details > summary{cursor:pointer; font-size:.76rem; font-weight:800; color:var(--accent-strong); list-style:none; padding:4px 0;}
  .idc-details > summary::-webkit-details-marker{display:none;}
  .idc-details > summary::before{content:'▸ '; } .idc-details[open] > summary::before{content:'▾ ';}
  .idc-details[open]{padding-bottom:4px;}
  .idc-sub{font-size:.7rem; color:var(--text-muted); display:flex; flex-wrap:wrap; gap:4px 10px; margin-top:-2px;}
  .candidate-card.idc-card{flex-direction:column; align-items:stretch;}
  .idc-buy{display:flex; justify-content:space-between; align-items:center; gap:10px;}
  .scene-row{border:1px solid var(--border); border-radius:10px; padding:6px 10px; background:rgba(0,0,0,.2);}
  .scene-row > summary{display:flex; align-items:center; gap:8px; font-size:.8rem; color:var(--text); list-style:none; cursor:pointer;}
  .scene-row > summary::-webkit-details-marker{display:none;}
  .scene-row > summary small{color:var(--text-muted); margin-left:auto; white-space:nowrap;}
  .scene-row[open] > summary{margin-bottom:8px;}


  /* ---------- footer ---------- */
  .actionbar{
    position:sticky; bottom:env(safe-area-inset-bottom,0px); z-index:20;
    display:flex; justify-content:space-between; align-items:center; gap:10px;
    background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
    padding:10px 14px; box-shadow:var(--shadow);
  }
