
  html.is-client .dj-only, html.is-dj .client-only{display:none !important;}
  :root{
    --ink:#14121A;
    --ink-2:#1D1A24;
    --paper:#F6F2EA;
    --paper-dim:#EBE5D8;
    --amber:#E7A23B;
    --amber-dim:#8A6A2E;
    --coral:#E1573D;
    --teal:#3E8E82;
    --line: rgba(246,242,234,0.13);
    --line-strong: rgba(246,242,234,0.28);
    --text-dim: rgba(246,242,234,0.62);
    font-family:'Work Sans', system-ui, sans-serif;
    box-sizing:border-box;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  *,*::before,*::after{box-sizing:inherit}
  html{scroll-padding-top: env(safe-area-inset-top, 0px);}
  html,body{height:100%;}
  body{
    margin:0; color:var(--paper);
    background: radial-gradient(1100px 560px at 18% -8%, #251f30 0%, var(--ink) 58%);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{font-family:'Fraunces', serif;}
  .display-i{font-style:italic; font-weight:500;}

  /* header */
  header{
    position:sticky; top:0; z-index:20;
    display:flex; align-items:center; justify-content:space-between;
    padding: env(safe-area-inset-top,0px) 28px 0 28px;
    background: linear-gradient(180deg, var(--ink) 70%, transparent);
  }
  .bar{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 16px; width:100%; padding:18px 0; border-bottom:1px solid var(--line);}
  .bar > nav.tabs{margin:0 auto;} .bar > .wallet-chip{margin-right:-8px;} .bar{justify-content:flex-start;}
  @media (max-width:364px){ .logo{font-size:17px;} .brand [data-lang-slot], .hdr-lang{display:none !important;} }
  @media (max-width:560px){ .bar > .wallet-chip{padding:4px 8px; font-size:12px;} .bar > .brand{gap:6px;} .hdr-lang{transform:scale(.92); transform-origin:left center;} }
  @media (max-width:900px){ .bar{gap:10px 6px;} .bar > .brand{flex:1 1 auto; min-width:0;} .bar > nav.tabs{margin:0;} .bar > .wallet-chip{margin-right:0;} }
  .brand{display:flex;align-items:center;gap:10px} .brand .hdr-lang{display:inline-flex}
  /* écrans moyens (Pixel Fold déplié, tablettes) : marque | tirelire | cloche + profil restent sur UNE ligne, les onglets passent dessous */
  @media (min-width:561px) and (max-width:900px){
    .bar{flex-wrap:wrap; align-items:center;}
    .bar > .brand{flex:1 1 0; min-width:0; overflow:hidden;}
    .bar > .wallet-chip, .bar > #amAcct{flex:0 0 auto; margin-left:0;}
    .bar > #amAcct{flex-wrap:nowrap; min-width:0;}
    .bar > #amAcct .am-mt{display:none;} .bar > #amAcct .am-mode{padding:5px 9px;}
    .bar > #amAcct #amUser{max-width:130px; overflow:hidden; white-space:nowrap;} .bar > #amAcct #amUser .am-lbl{overflow:hidden; text-overflow:ellipsis; max-width:84px;}
    .bar > nav.tabs{order:10; flex:1 1 100%; width:100%; margin:0; overflow-x:auto; scrollbar-width:none;}
  }
  .logo{font-family:'Fraunces',serif; font-size:22px; font-weight:560; letter-spacing:0.2px; display:flex; align-items:baseline; gap:8px;}
  *{scrollbar-width:none; -ms-overflow-style:none;} *::-webkit-scrollbar{display:none; width:0; height:0;}
  .logo{display:block;} .ag-wk .two{display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:420px;} .ag-wk label{font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); display:block; margin-bottom:4px;} .ag-wk input[type=time]{width:100%; background:var(--ink-2); border:1px solid var(--line-strong); color:var(--paper); border-radius:8px; padding:9px 11px; font:14px 'Work Sans',sans-serif;}
  .logo .ia-mark{padding-right:.04em;} .onb-logo .ia-mark{padding-right:.04em;} footer .ia-mark,.hist-head .ia-mark{font-weight:560;}
  .logo .dot{width:7px;height:7px;border-radius:50%;background:var(--amber); display:inline-block; transform:translateY(-9px);}
  nav.tabs{display:flex; gap:6px; background:var(--ink-2); padding:4px; border-radius:999px; border:1px solid var(--line);}
  nav.tabs button{
    font-family:'Work Sans'; font-size:13.5px; font-weight:500; color:var(--text-dim);
    background:transparent; border:none; padding:9px 16px; border-radius:999px; cursor:pointer;
    transition: background .2s, color .2s;
  }
  nav.tabs button.active{background:var(--amber); color:#1A140A;}
  .selection-flag{font-size:12.5px; color:var(--text-dim); display:flex; align-items:center; gap:8px;}
  .selection-flag b{color:var(--paper); font-weight:600;}
  .selection-flag .pulse{width:6px;height:6px;border-radius:50%;background:var(--teal); box-shadow:0 0 0 0 rgba(62,142,130,.6); animation:pulse 2s infinite;}
  @keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(62,142,130,.55)} 70%{box-shadow:0 0 0 8px rgba(62,142,130,0)} 100%{box-shadow:0 0 0 0 rgba(62,142,130,0)} }

  main{max-width:1180px; margin:0 auto; padding:40px 28px 100px;}
  section.view{display:none;}
  section.view.active{display:block; animation:fade .35s ease;}
  @keyframes fade{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:translateY(0)}}

  /* ---- Decouvrir ---- */
  .hero{display:grid; grid-template-columns:1fr; gap:10px; align-items:end; margin-bottom:18px;}
  #view-decouvrir .hero h1{font-size:clamp(24px,2.6vw,32px); line-height:1.1; margin:0 0 6px;} #view-decouvrir .hero h1 br{display:none;}
  #view-decouvrir .hero p{font-size:14px; line-height:1.5; max-width:none; color:var(--text-dim);}
  #view-decouvrir .hero-side{border:none; padding:0; display:flex; flex-wrap:wrap; gap:4px 22px; opacity:.75;}
  #view-decouvrir .hero-stat{border:none; padding:0; gap:6px; font-size:12px;} #view-decouvrir .hero-stat b{font-size:12.5px;} #view-decouvrir .hero-stat b::before{content:'· '; opacity:.5;}
  #discTools{position:relative;} .dt-btn{display:inline-flex; align-items:center; gap:7px;} .dt-btn .n{background:var(--amber); color:#1A140A; border-radius:999px; font:700 11px 'Work Sans'; min-width:18px; line-height:18px; text-align:center;}
  .dt-panel{flex:1 0 100%; display:none; background:var(--ink-2); border:1px solid var(--line-strong); border-radius:14px; padding:14px 16px; gap:12px; flex-direction:column;} .dt-panel.open{display:flex;}
  .dt-panel .dt-row{display:flex; flex-wrap:wrap; gap:8px; align-items:center;} .dt-panel .dt-lbl{font:600 11px 'Work Sans'; letter-spacing:.07em; text-transform:uppercase; color:var(--text-dim); width:100%;}
  .dt-panel .chip{padding:6px 12px; font-size:12.5px;} .dt-panel .chip.on{background:var(--amber); color:#1A140A; border-color:var(--amber);} #filters{display:none;}
  @media (max-width:820px){.hero{grid-template-columns:1fr;}}
  @media (max-width:600px){
    .hero{gap:12px !important; margin-bottom:20px !important;}
    .hero .hero-side{border:none !important; padding:4px 0 0 !important; display:flex !important; flex-wrap:wrap; gap:2px 14px !important; opacity:.5;}
    .hero .hero-stat{border:none !important; padding:0 !important; gap:4px; font-size:10.5px !important; justify-content:flex-start !important;}
    .hero .hero-stat b{font-size:10.5px !important; font-weight:500 !important;} .hero .hero-stat b::before{content:'· '; opacity:.5;}
    .hero .hero-stat span:first-child{font-size:10.5px !important;}
  }
  .hero h1{font-size:clamp(34px,5vw,54px); line-height:1.04; font-weight:560; margin:0 0 16px;}
  .hero p{color:var(--text-dim); font-size:16px; line-height:1.6; max-width:46ch; margin:0;}
  .hero-side{border-left:1px solid var(--line); padding-left:28px;}
  .hero-stat{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
  .hero-stat span:first-child{color:var(--text-dim);}
  .hero-stat b{font-family:'Fraunces'; font-weight:560; font-size:15px;}

  .filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px;}
  .chip{
    font-size:13px; font-family:'Work Sans'; font-weight:500; padding:8px 14px; border-radius:999px;
    border:1px solid var(--line-strong); background:transparent; color:var(--text-dim); cursor:pointer;
    transition: all .15s;
  }
  .chip:hover{border-color:var(--amber);}
  .chip.on{background:var(--paper); color:var(--ink); border-color:var(--paper);}

  .grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  @media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:600px){.grid{grid-template-columns:1fr;}}
  .card{
    background:var(--ink-2); border:1px solid var(--line); border-radius:10px; overflow:hidden;
    cursor:pointer; transition: border-color .15s, transform .15s, box-shadow .15s;
  }
  .card:hover{border-color:var(--amber-dim); transform:translateY(-3px); box-shadow:0 16px 32px -14px rgba(0,0,0,.6);}
  .badge{font-size:10.5px; text-transform:none; letter-spacing:.02em; padding:4px 9px; border-radius:999px; border:1px solid var(--teal); color:var(--teal);}
  .card-photo{position:relative; aspect-ratio:4/3.1; overflow:hidden; display:flex; align-items:flex-end;}
  .card-photo::before{content:''; position:absolute; inset:0; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>"); mix-blend-mode:overlay; opacity:.5; pointer-events:none;}
  .card-photo::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,9,13,.85) 0%, rgba(10,9,13,.04) 58%);}
  .card-initial{position:absolute; right:-10px; bottom:-28px; font-family:'Fraunces'; font-style:italic; font-weight:500; font-size:150px; line-height:1; color:rgba(255,255,255,.16); z-index:1; pointer-events:none;}
  .card-photo .badge{position:absolute; top:12px; left:12px; z-index:2; background:rgba(10,9,13,.45); backdrop-filter:blur(2px);}
  .rate-pill{position:absolute; top:12px; right:12px; z-index:2; background:rgba(10,9,13,.45); backdrop-filter:blur(2px); font-size:11.5px; padding:4px 9px; border-radius:999px; color:var(--amber); font-weight:600;}
  .card-photo .who{position:relative; z-index:2; padding:16px; width:100%;}
  .card-photo .who h3{font-size:20px; margin:0 0 3px; font-weight:560; color:#fff;}
  .card-photo .who .role{font-size:12px; color:rgba(255,255,255,.72); margin:0;}
  .card-info{padding:14px 16px 18px;}
  .tags{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px;}
  .tag{font-size:11.5px; color:var(--text-dim); border:1px solid var(--line); padding:3px 9px; border-radius:4px;}
  .card-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:12px; border-top:1px solid var(--line); font-size:13px;}
  .price{font-family:'Fraunces'; font-weight:560;}
  .rate{color:var(--amber); font-size:12.5px;}

  /* profile panel */
  .overlay{position:fixed; inset:0; background:rgba(10,9,13,.6); display:none; align-items:flex-end; justify-content:center; z-index:50;}
  .overlay.open{display:flex;}
  .sheet{
    width:100%; max-width:620px; max-height:94vh; overflow:hidden; background:var(--paper); color:var(--ink);
    border-radius:14px 14px 0 0; position:relative;
  }
  .sheet-close{position:absolute; top:16px; right:18px; z-index:3; background:rgba(10,9,13,.42); border:none; width:30px; height:30px; border-radius:50%; font-size:19px; color:#fff; cursor:pointer; line-height:1;}
  .sheet-photo{position:relative; aspect-ratio:16/6.5; max-height:30vh; min-height:120px; overflow:hidden; border-radius:14px 14px 0 0; display:flex; align-items:flex-end;}
  .sheet-photo::before{content:''; position:absolute; inset:0; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>"); mix-blend-mode:overlay; opacity:.5;}
  .sheet-photo::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,9,13,.82) 5%, rgba(10,9,13,0) 62%);}
  .sheet-initial{position:absolute; right:-14px; bottom:-40px; font-family:'Fraunces'; font-style:italic; font-size:220px; color:rgba(255,255,255,.17); z-index:1;}
  .sheet-photo .who{position:relative; z-index:2; padding:22px 26px;}
  .sheet-photo .who h2{font-size:32px; margin:0 0 4px; color:#fff; font-weight:560;}
  .sheet-photo .who .sub{color:rgba(255,255,255,.75); font-size:13.5px; margin:0;}
  .sheet-content{padding:20px 28px 24px;}
  .sheet-content p.bio{font-size:14.5px; line-height:1.6; color:#3a362e; margin:0 0 14px; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden;}
  .avail{display:flex; gap:8px; margin-bottom:16px; flex-wrap:wrap;}
  .avail span{font-size:12px; border:1px solid #d8d1bf; padding:6px 11px; border-radius:6px; color:#5c5646;}
  .avail span.free{border-color:var(--teal); color:var(--teal); font-weight:600;}
  .sheet-actions{display:flex; gap:10px; flex-wrap:wrap;}
  .btn{font-family:'Work Sans'; font-weight:600; font-size:14px; padding:13px 20px; border-radius:6px; border:none; cursor:pointer;}
  .btn-primary{background:var(--ink); color:var(--paper);}
  .btn-ghost{background:transparent; border:1px solid #cfc8b6; color:var(--ink);}

  /* ---- Timeline ---- */
  .timeline-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:8px; gap:20px; flex-wrap:wrap;}
  .timeline-eyebrow{font-size:13px; color:var(--text-dim); letter-spacing:.02em; margin-bottom:12px;}
  .timeline-head h2{font-size:36px; font-weight:560; margin:0 0 10px; font-style:italic;}
  .timeline-head p{color:var(--text-dim); font-size:14.5px; margin:0; max-width:52ch; line-height:1.55;}
  .add-row{display:flex; justify-content:center; margin:14px 0 4px;}
  .add-block.plus{width:46px; height:46px; padding:0; justify-content:center; font-size:26px; font-weight:400; line-height:1; transition:transform .15s;}
  .add-block.plus:hover{transform:scale(1.08);}
  .add-block{display:flex; align-items:center; gap:10px; background:var(--amber); color:#1A140A; border:none; padding:12px 18px; border-radius:999px; font-weight:600; font-size:13.5px; cursor:pointer; white-space:nowrap; box-shadow:0 10px 24px -10px rgba(231,162,59,.5);}

  .tl{position:relative; padding-left:32px; margin-top:34px;}
  .tl::before{content:''; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:linear-gradient(180deg, var(--amber-dim), var(--line-strong) 85%);}
  .tl-item{position:relative; margin-bottom:18px; background:linear-gradient(150deg, var(--ink-2) 0%, rgba(255,255,255,.025) 130%); border:1px solid var(--line); border-left:3px solid var(--accent, var(--amber)); border-radius:8px; padding:18px 20px;}
  .tl-item::before{content:''; position:absolute; left:-33px; top:24px; width:12px; height:12px; border-radius:50%; background:var(--accent, var(--amber)); border:2px solid var(--ink); box-shadow:0 0 12px -1px var(--accent, var(--amber));}
  .tl-row{display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
  .tl-row input, .tl-row select{
    background:var(--ink); border:1px solid var(--line-strong); color:var(--paper);
    font-family:'Work Sans'; font-size:13.5px; padding:8px 10px; border-radius:4px;
  }
  .tl-row input[type=time]{width:98px; font-family:'Fraunces'; font-weight:560; font-size:14px;}
  .tl-row input.title{flex:1; min-width:160px;}
  .tl-controls{display:flex; gap:4px; margin-left:auto;}
  .icon-btn{background:transparent; border:1px solid var(--line-strong); color:var(--text-dim); width:30px; height:30px; border-radius:4px; cursor:pointer; font-size:14px;}
  .icon-btn:hover{color:var(--paper); border-color:var(--paper);}

  .tl-tracks{margin-top:14px; padding-top:14px; border-top:1px dashed var(--line);}
  .tl-track-chips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px;}
  .tl-empty{font-size:11.5px; color:var(--text-dim); font-style:italic;}
  .tl-chip{font-size:11.5px; background:var(--ink); border:1px solid var(--line-strong); padding:5px 6px 5px 11px; border-radius:999px; display:inline-flex; align-items:center; gap:7px; color:var(--text-dim);}
  .tl-chip b{color:var(--paper); font-weight:600;}
  .tl-chip button{background:none; border:none; color:var(--text-dim); cursor:pointer; font-size:14px; line-height:1; padding:0 2px;}
  .tl-chip button:hover{color:var(--coral);}
  .tl-track-add{position:relative;}
  .tl-track-add input{width:100%; background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); padding:8px 10px; border-radius:5px; font-family:'Work Sans'; font-size:12.5px;}
  .wish-block{padding:12px 0; border-bottom:1px solid var(--line); max-height:600px; overflow:hidden; transition:opacity .45s ease, transform .45s ease, max-height .55s ease, padding .55s ease, border-color .45s ease;}
  .wish-block.gone{opacity:0; transform:translateY(-18px); max-height:0; padding-top:0; padding-bottom:0; border-color:transparent; pointer-events:none;}
  .wish-block.next{box-shadow:inset 3px 0 0 var(--amber); padding-left:12px;}
  .wishes-clock{position:sticky; top:-14px; z-index:2; background:var(--ink-2); font-size:12px; color:var(--text-dim); padding:2px 0 10px; margin-bottom:2px; border-bottom:1px solid var(--line);}
  .wishes-clock b{color:var(--amber); font-family:'Fraunces'; font-weight:560; font-size:13.5px;}
  .wish-block:last-child{border:none;}
  .wish-head{font-size:12.5px; margin-bottom:8px;}
  .wish-head b{font-family:'Fraunces'; font-weight:560; color:var(--amber);}
  .wish-head .tag{margin-left:4px;}

  /* ---- Session live ---- */
  .live-grid{display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:20px;}
  @media (max-width:900px){.live-grid{grid-template-columns:minmax(0,1fr);}}
  .stage-col{min-width:0;}
  body{max-width:100%; overflow-x:hidden;}
  .stage{width:100%; max-height:calc(100vh - 230px);}
  .av-dock{flex-wrap:wrap; max-width:calc(100% - 150px);}

  .stage-card{background:#0B0A0E; border:1px solid var(--line); border-radius:6px; overflow:hidden;}
  .stage{background:#0B0A0E; overflow:hidden; position:relative; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center;}
  .stage-label{position:absolute; top:14px; left:14px; display:flex; align-items:center; gap:8px; background:rgba(0,0,0,.4); padding:6px 12px; border-radius:999px; font-size:12px;}
  .live-dot{width:7px;height:7px;border-radius:50%; background:var(--coral); animation:blink 1.4s infinite;}
  @keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
  .pip{position:absolute; bottom:14px; right:14px; width:120px; aspect-ratio:4/3; background:#17151d; border:1px solid var(--line-strong); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;}
  .pip video{width:100%; height:100%; object-fit:cover; display:none; position:absolute; inset:0;}
  .pip video.on{display:block;}
  .pip-btn{background:rgba(231,162,59,.92); color:#1A140A; border:none; font-size:10px; font-weight:700; padding:6px 8px; border-radius:5px; cursor:pointer; z-index:2;}
  @keyframes vlP{0%,100%{opacity:.3}50%{opacity:1}}
  .pip-btn-off{background:rgba(225,87,61,.92); color:#fff; display:none;}
  .pip-status{position:absolute; bottom:4px; left:5px; right:5px; font-size:8.5px; color:var(--text-dim); text-align:center; z-index:2;}
  .role-flag{position:absolute; right:14px; bottom:12px; display:flex; align-items:center;}
  .role-flag b{color:var(--paper);}
  .role-switch{background:none; border:1px solid var(--line-strong); color:var(--text-dim); font-size:13px; padding:3px 5px; border-radius:999px; cursor:pointer; display:flex; gap:2px; opacity:.6; transition:opacity .2s;} .role-switch:hover{opacity:1;} .role-switch .ri{width:24px; height:22px; display:grid; place-items:center; border-radius:999px; filter:grayscale(1) opacity(.55);} html.is-dj .role-switch .ri-dj, html.is-client .role-switch .ri-cl{background:rgba(231,162,59,.25); filter:none;}
  .role-switch:hover{color:var(--paper); border-color:var(--amber);}
  #remoteVideo{position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:none;}
  #remoteVideo.on{display:block;}
  .bars{display:flex; align-items:flex-end; gap:4px; height:70px;}
  .bars{contain:layout paint;} .bars i{width:5px; height:60px; background:var(--amber); border-radius:2px; transform-origin:50% 100%; will-change:transform; animation:wave 1.1s ease-in-out infinite;}
  @keyframes wave{0%,100%{transform:scaleY(.2)} 50%{transform:scaleY(1)}}
  .stage-meta{display:flex; justify-content:space-between; padding:14px 4px; font-size:13px; color:var(--text-dim);}
  .stage-meta b{color:var(--paper); font-family:'Fraunces'; font-weight:560;}
  .role-hidden{display:none !important;}
  .mixer-device{background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); font-size:11.5px; padding:6px 8px; border-radius:5px; width:100%;}

  /* Barre d'icônes audio DJ, superposée au stage */
  .av-dock{position:absolute; bottom:14px; left:14px; display:flex; gap:10px; z-index:5;}
  .av-btn-wrap{position:relative;}
  .av-btn{width:38px; height:38px; border-radius:50%; background:rgba(20,18,26,.75); border:1.5px solid var(--line-strong); color:var(--text-dim); font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.15s; backdrop-filter:blur(2px);}
  .av-btn:hover{border-color:var(--paper); color:var(--paper);}
  .av-btn.on{background:rgba(231,162,59,.22); border-color:var(--amber); color:var(--amber); animation:av-pulse 1.8s ease-in-out infinite;}
  @keyframes av-pulse{0%,100%{box-shadow:0 0 0 0 rgba(231,162,59,.35);} 50%{box-shadow:0 0 0 7px rgba(231,162,59,0);}}
  .av-gear{position:absolute; top:-3px; right:-3px; width:15px; height:15px; border-radius:50%; background:var(--ink-2); border:1px solid var(--line-strong); color:var(--text-dim); font-size:9px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; z-index:2;}
  .av-gear:hover{color:var(--paper); border-color:var(--amber);}
  .av-pop{position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%); background:var(--ink-2); border:1px solid var(--line-strong); border-radius:8px; padding:12px; width:190px; display:none; flex-direction:column; gap:8px; z-index:10; box-shadow:0 14px 28px -10px rgba(0,0,0,.6);}
  .av-pop.open{display:flex;}
  .av-pop-label{font-size:11px; font-weight:600; color:var(--paper);}
  .av-fader{width:100%; accent-color:var(--amber);}
  .av-pop audio{width:100%; height:30px;}
  .av-hint{font-size:10.5px; color:var(--text-dim); line-height:1.4; margin:0;}
  .connect-box{margin-top:14px; padding:14px 16px; background:var(--ink-2); border:1px solid var(--line); border-radius:8px;}
  .connect-step{font-size:12px; color:var(--text-dim); line-height:1.5; margin:10px 0 6px;}
  .connect-step:first-child{margin-top:0;}
  .sdp-box{width:100%; background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); font-family:monospace; font-size:10px; padding:8px; border-radius:5px; resize:vertical; margin-bottom:8px;}
  .connect-box .btn{font-size:12.5px; padding:9px 14px; margin-right:8px;}

  /* Bandeau visualiseur synchro avec la musique (côté client) */
  .viz-band{position:relative; height:56px; margin-top:10px; background:linear-gradient(180deg,#0B0A0E,#15121B); border:1px solid var(--line); border-radius:12px; overflow:hidden;}
  .viz-band canvas{width:100%; height:100%; display:block;}
  .viz-band .viz-tag{position:absolute; left:12px; top:6px; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted,#8b8697); pointer-events:none; opacity:.8;}
  @media (max-width:560px){ .viz-band{height:48px;} }
  /* Pastille qualité réseau */
  .qdot{position:relative; display:inline-block; width:11px; height:11px; border-radius:50%; background:#7d7889; box-shadow:0 0 0 3px rgba(125,120,137,.18); cursor:help; flex:none; outline:none; transition:background .3s, box-shadow .3s;}
  .qdot.good{background:#4CC38A; box-shadow:0 0 0 3px rgba(76,195,138,.22);}
  .qdot.mid{background:#F5A524; box-shadow:0 0 0 3px rgba(245,165,36,.22);}
  .qdot.bad{background:#E5484D; box-shadow:0 0 0 3px rgba(229,72,77,.25);}
  .qtip{position:fixed; z-index:90; min-width:230px; max-width:min(300px, calc(100vw - 20px)); background:#1D1A24; border:1px solid var(--line-strong); border-radius:10px; padding:12px 14px; box-shadow:0 16px 40px -10px rgba(0,0,0,.7); color:var(--text-dim); font-size:12px; line-height:1.55; display:none; pointer-events:none; cursor:default;}
  .qtip.show{display:block;}
  .qtip h4{margin:0 0 6px; font-size:13px; color:var(--paper); display:flex; align-items:center; gap:7px; font-family:'Work Sans'; font-weight:700;}
  .qtip h4 i{width:9px; height:9px; border-radius:50%; display:inline-block; background:currentColor;}
  .qtip table{border-collapse:collapse; width:100%;}
  .qtip td{padding:1px 0; vertical-align:top;}
  .qtip td:last-child{text-align:right; color:var(--paper); font-weight:600; padding-left:14px; white-space:nowrap;}
  .qtip .hint{margin-top:7px; font-size:11px; opacity:.8;}
  /* Souhaits : nouveau titre ajouté par le client */
  .tl-chip.fresh{animation:freshChip 7s ease-out 1; border-color:var(--amber);}
  @keyframes freshChip{0%{background:rgba(231,162,59,.55); box-shadow:0 0 0 3px rgba(231,162,59,.35);} 100%{background:transparent; box-shadow:none;}}
  .panel-tabs button.flash{box-shadow:inset 0 -3px 0 var(--amber);}
  /* Éditeur de timeline du client pendant le live */
  #panel-mytl .tl-item{margin-bottom:8px;}
  #panel-mytl .tl-row{flex-wrap:wrap; gap:6px;}
  #panel-mytl .tl-row input.title{flex:1 1 140px; min-width:0;}

  /* ---- Mon projet (client) & Mes réservations (DJ) ---- */
  .nbadge{display:none; min-width:17px; height:17px; padding:0 5px; margin-left:6px; border-radius:999px; background:var(--coral); color:#fff; font-size:10.5px; font-weight:700; line-height:17px; text-align:center; vertical-align:middle;}
  .nbadge.on{display:inline-block;}
  .proj-grid{display:block; margin-bottom:26px;}
  .pj-statebox{margin-top:26px;}
  #pjDetail{display:flex; flex-direction:column;} #pjDetail > *{min-width:0;}
  @media (max-width:900px){ .proj-grid{grid-template-columns:minmax(0,1fr);} }
  .pj-box{background:var(--ink-2); border:1px solid var(--line); border-radius:10px; padding:20px 22px;}
  .pj-box h3{margin:0 0 14px; font-family:'Fraunces'; font-weight:560; font-size:19px;}
  .pj-fields{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px 14px;}
  .pj-field{display:flex; flex-direction:column; gap:5px; grid-column:span 6; min-width:0;}
  .pj-field.s2{grid-column:span 2;} .pj-field.s3{grid-column:span 3;} .pj-field.s4{grid-column:span 4;}
  @media (max-width:560px){ .pj-field.s2,.pj-field.s3,.pj-field.s4{grid-column:span 6;} .pj-field.s2.sm{grid-column:span 3;} .pj-box{padding:16px 14px;} }
  .pj-field label{font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-dim);}
  .pj-field input,.pj-field select,.pj-field textarea{background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); font-family:'Work Sans'; font-size:14px; padding:10px 11px; border-radius:6px; width:100%; min-width:0; color-scheme:dark;}
  .pj-field textarea{min-height:92px; resize:vertical; line-height:1.45;}
  .pj-field input:focus,.pj-field select:focus,.pj-field textarea:focus{outline:none; border-color:var(--amber);}
  .pj-styles{display:flex; flex-wrap:wrap; gap:7px;}
  .pj-chip{background:transparent; border:1px solid var(--line-strong); color:var(--text-dim); border-radius:999px; padding:6px 12px; font-size:12.5px; cursor:pointer; font-family:'Work Sans';}
  .pj-chip.on{background:rgba(231,162,59,.16); border-color:var(--amber); color:var(--paper);}
  .pj-state{margin-bottom:16px;}
  .pj-state .pill{display:inline-block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:4px 10px; border-radius:999px; margin-bottom:10px;}
  .pill.draft{background:rgba(246,242,234,.1); color:var(--text-dim);}
  .pill.wait{background:rgba(245,165,36,.18); color:#F5A524;}
  .pill.ok{background:rgba(76,195,138,.18); color:#4CC38A;}
  .pill.ko{background:rgba(229,72,77,.18); color:#E5484D;}
  .pj-state p{margin:0 0 12px; color:var(--text-dim); font-size:13.5px; line-height:1.5;}
  .pj-state .btns{display:flex; gap:8px; flex-wrap:wrap;}
  .big-cta{background:var(--amber); color:#1A140A; border:none; border-radius:999px; padding:13px 22px; font-weight:700; font-size:14.5px; cursor:pointer; font-family:'Work Sans'; box-shadow:0 12px 26px -12px rgba(231,162,59,.6);}
  .ghost-btn{background:transparent; border:1px solid var(--line-strong); color:var(--text-dim); border-radius:999px; padding:11px 18px; font-weight:600; font-size:13px; cursor:pointer; font-family:'Work Sans';}
  .ghost-btn:hover{border-color:var(--amber); color:var(--amber);}
  .small-btn{padding:8px 14px; font-size:12.5px;}
  .pj-h{font-family:'Fraunces'; font-weight:560; font-size:22px; margin:6px 0 4px;}
  .pj-sub{margin:0 0 16px; color:var(--text-dim); font-size:13.5px;}
  .pj-tl-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:6px;}
  /* fil de discussion */
  .thr{background:var(--ink); border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; overflow:hidden;}
  .thr-title{font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); padding:10px 14px; border-bottom:1px solid var(--line);}
  .thr-msgs{display:flex; flex-direction:column; gap:8px; padding:12px 14px; height:230px; overflow-y:auto; scrollbar-width:thin; -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 22px); mask-image:linear-gradient(to bottom, transparent 0, #000 22px);}
  .thr-msgs > :first-child{margin-top:auto;}
  .thr-empty{color:var(--text-dim); font-size:12.5px; font-style:italic; text-align:center; margin:auto 0;}
  .bub{max-width:84%; font-size:13px; line-height:1.4; padding:8px 11px; border-radius:12px; background:rgba(246,242,234,.08); align-self:flex-start; word-wrap:break-word;}
  .bub b{display:block; font-size:10.5px; color:var(--amber); margin-bottom:2px; letter-spacing:.03em;}
  .bub.me{align-self:flex-end; background:rgba(62,142,130,.28);}
  .bub.me b{color:#7fd0c2;}
  .bub i{display:block; font-size:10px; opacity:.55; font-style:normal; margin-top:3px; text-align:right;}
  .thr-in{display:flex; gap:8px; padding:10px 12px; border-top:1px solid var(--line);}
  .thr-in input{flex:1; min-width:0; background:var(--ink-2); border:1px solid var(--line-strong); color:var(--paper); padding:9px 11px; border-radius:6px; font-family:'Work Sans'; font-size:13px;}
  .thr-in button{background:var(--amber); border:none; color:#1A140A; font-weight:700; padding:0 14px; border-radius:6px; cursor:pointer;}
  /* Mes réservations */
  .resa-grid{display:grid; grid-template-columns:minmax(0,340px) minmax(0,1fr); gap:22px; align-items:start;}
  @media (max-width:900px){ .resa-grid{grid-template-columns:minmax(0,1fr);} }
  .resa-group{margin-bottom:20px;}
  .resa-group h4{margin:0 0 9px; font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--text-dim); display:flex; align-items:center; gap:8px;}
  .resa-group h4 .n{background:rgba(246,242,234,.1); border-radius:999px; padding:1px 8px; font-size:11px;}
  .resa-card{position:relative; background:var(--ink-2); border:1px solid var(--line); border-left:3px solid var(--line-strong); border-radius:8px; padding:12px 14px; margin-bottom:9px; cursor:pointer; transition:border-color .15s, transform .15s;}
  .resa-card:hover{transform:translateX(2px); border-color:var(--amber-dim);}
  .resa-card.sel{border-color:var(--amber); background:rgba(231,162,59,.07);}
  .resa-card.pending{border-left-color:#F5A524;} .resa-card.accepted{border-left-color:#4CC38A;} .resa-card.archived{opacity:.6;}
  .resa-card .t{font-weight:600; font-size:14px; display:flex; justify-content:space-between; gap:8px; align-items:center;}
  .resa-card .m{font-size:12px; color:var(--text-dim); margin-top:3px;}
  .resa-card .dotn{background:var(--coral); color:#fff; border-radius:999px; font-size:10.5px; font-weight:700; padding:1px 7px;}
  .resa-empty{color:var(--text-dim); font-size:13px; font-style:italic; padding:6px 2px 12px;}
  .resa-detail .pj-box{margin-bottom:16px;}
  .rd-head{display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap; margin-bottom:6px;}
  .rd-head h3{margin:0; font-size:23px;}
  .rd-facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px 18px; margin:14px 0;}
  .rd-facts div{font-size:13.5px;} .rd-facts span{display:block; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); margin-bottom:2px;}
  .rd-desc{background:var(--ink); border-radius:8px; padding:11px 13px; font-size:13.5px; line-height:1.5; color:var(--paper-dim); margin:0 0 6px; white-space:pre-wrap;}
  .rd-actions{display:flex; gap:9px; flex-wrap:wrap; margin-top:16px;}
  .rd-tl{list-style:none; margin:0; padding:0;}
  .rd-tl li{display:flex; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
  .rd-tl li:last-child{border:none;}
  .rd-tl .tm{font-family:'Fraunces'; font-weight:560; color:var(--amber); min-width:46px;}
  .rd-tl .tr{color:var(--text-dim); font-size:12.5px; margin-top:3px;}
  .ex-tag{font-size:10px; letter-spacing:.06em; text-transform:uppercase; border:1px dashed var(--line-strong); color:var(--text-dim); border-radius:4px; padding:1px 6px; margin-left:6px;}
  .tl-blank{border:1px dashed var(--line-strong); border-radius:10px; padding:26px 20px; text-align:center; color:var(--text-dim); font-size:14px; line-height:1.6;}
  .tl-blank b{color:var(--amber);}
  .tl-item.is-draft{border-style:dashed; border-color:var(--amber); background:rgba(231,162,59,.05);}
  .tl-draft{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin:-4px 0 12px; font-size:12.5px; color:var(--amber); font-weight:600;}
  .tl-draft div{display:flex; gap:8px; flex-wrap:wrap;}
  .tl-draft button{border-radius:999px; padding:6px 13px; font-size:12px; font-weight:700; cursor:pointer; font-family:'Work Sans'; border:1px solid var(--amber); background:transparent; color:var(--amber);}
  .tl-draft .dr-ok{background:var(--amber); color:#1A140A;}
  #panel-mytl .tl-draft{font-size:11.5px;}
  .pj-field input:disabled{opacity:.55; cursor:not-allowed; background:rgba(246,242,234,.05);}
  .pj-hint{grid-column:span 6; margin:-4px 0 0; font-size:12px; color:var(--text-dim); line-height:1.5;}
  .pj-hint b{color:var(--amber);}

  /* ---- DJ : l'interface tient toujours dans la fenêtre (pas de défilement), les éléments s'ajustent ---- */
  html.dj-fit, html.dj-fit body{height:100%; overflow:hidden;}
  html.dj-fit body{display:flex; flex-direction:column; height:100dvh;}
  html.dj-fit header{flex:none;}
  html.dj-fit main{flex:1 1 auto; min-height:0; overflow:hidden; max-width:1560px; width:100%; padding:12px 24px 12px; position:relative;}
  html.dj-fit footer{display:none;}
  html.dj-fit .connect-box{display:none;}
  /* fenêtre vidéo : format large 16/9, identique côté client et artiste ; les cadres au-dessus et en dessous suivent sa largeur */
  html.dj-fit .stage{max-height:none; aspect-ratio:16/9; width:100%;}
  html.dj-fit .stage-card, html.dj-fit #djPanel, html.dj-fit #pfTools, html.dj-fit #djInfo{width:min(100%, calc((100vh - 290px) * 1.7778 + 2px)); margin-left:auto !important; margin-right:auto !important;}
  @media (max-width:900px){ html.dj-fit .stage{aspect-ratio:4/3;} html.dj-fit .stage-card, html.dj-fit #djPanel, html.dj-fit #pfTools, html.dj-fit #djInfo{width:100%;} }
  html.dj-fit .bar{padding:10px 0;}
  html.dj-fit .home-hero{padding:18px 0 16px;}
  html.dj-fit .home-title{font-size:clamp(34px,5vw,60px);}
  html.dj-fit .timeline-head{margin-bottom:12px;}
  html.dj-fit .timeline-head h2{margin:2px 0 4px;}


  /* ---- arrivée fluide ---- */
  html.am-boot header, html.am-boot main{opacity:0; animation:amSafe .01s 1.9s forwards;} @keyframes amSafe{to{opacity:1;}}
  html.am-in header{animation:amHd .45s cubic-bezier(.2,.8,.2,1) both;} @keyframes amHd{from{opacity:0; transform:translateY(-12px);}to{opacity:1; transform:none;}}
  html.am-in header nav.tabs button{animation:amUp .4s cubic-bezier(.2,.8,.2,1) both;}
  html.am-in header nav.tabs button:nth-child(1){animation-delay:.05s;} html.am-in header nav.tabs button:nth-child(2){animation-delay:.1s;} html.am-in header nav.tabs button:nth-child(3){animation-delay:.15s;} html.am-in header nav.tabs button:nth-child(4){animation-delay:.2s;} html.am-in header nav.tabs button:nth-child(5){animation-delay:.25s;} html.am-in header nav.tabs button:nth-child(6){animation-delay:.3s;}
  html.am-in .view.active > *, html.am-in .view.active .dd-grid > *{animation:amUp .5s cubic-bezier(.2,.8,.2,1) both;}
  html.am-in .view.active > *:nth-child(1){animation-delay:.08s;} html.am-in .view.active > *:nth-child(2){animation-delay:.14s;} html.am-in .view.active > *:nth-child(3){animation-delay:.2s;} html.am-in .view.active > *:nth-child(4){animation-delay:.26s;} html.am-in .view.active > *:nth-child(5){animation-delay:.32s;} html.am-in .view.active > *:nth-child(n+6){animation-delay:.38s;}
  html.am-in .view.active .dd-grid > *:nth-child(2){animation-delay:.3s;} html.am-in .view.active .dd-grid > *:nth-child(3){animation-delay:.38s;} html.am-in .view.active .dd-grid > *:nth-child(n+4){animation-delay:.44s;}
  @keyframes amUp{from{opacity:0; transform:translateY(14px) scale(.985);}to{opacity:1; transform:none;}}
  @media (prefers-reduced-motion:reduce){ html.am-in *{animation:none !important;} }
  /* ---- onboarding ---- */
  .onb{position:fixed; inset:0; z-index:300; background:radial-gradient(1200px 700px at 20% 0%, #3a2a12 0%, transparent 60%), radial-gradient(900px 600px at 100% 100%, #2a1740 0%, transparent 60%), var(--ink); overflow-y:auto; display:none; padding:14px 20px 28px; -webkit-overflow-scrolling:touch;}
  .onb-first{display:flex; flex-direction:column; justify-content:space-between; gap:18px;} .onb-first .onb-mid{display:flex; flex-direction:column; gap:22px; justify-content:space-between; flex:1;} .onb-first .onb-cards{margin-top:auto;} .onb-rest{display:flex; flex-direction:column; gap:26px; padding:8px 0 12px;}
  .onb-first.compact .onb-card ul{display:none;} .onb-first.tight .onb-eq{display:none;} .onb-first.compact .onb-mid{gap:14px;} .onb-first.compact h1{font-size:clamp(26px,4.6vw,46px);} .onb-first.compact .onb-sub{font-size:14px; line-height:1.45;} .onb-first.compact .onb-card{padding:18px;} .onb-first.compact .onb-card h2{font-size:22px;} .onb-first.compact .onb-card p{font-size:13.5px; line-height:1.45;} .onb-first.compact .onb-card .gd-ic{width:48px; height:48px;} .onb-first.compact .onb-card .gd-ic svg{width:26px; height:26px;}
  .onb.show{display:block; animation:onbIn .5s ease;}
  @keyframes onbIn{from{opacity:0; transform:scale(1.02);}to{opacity:1; transform:none;}}
  .onb-in{max-width:980px; margin:0 auto; min-height:100%; display:flex; flex-direction:column; justify-content:center; gap:26px; text-align:center; position:relative;}
  .onb-top{display:flex; justify-content:space-between; align-items:center;}
  .onb-langs{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:14px;} .onb-langs button{border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.05); color:inherit; border-radius:999px; padding:7px 14px; font:600 13px inherit; cursor:pointer;} .onb-langs button b{opacity:.6; font-size:11px; margin-right:4px;} .onb-langs button.on{background:var(--amber,#E7A23B); color:#1a1208; border-color:transparent;} .onb-langs button.on b{opacity:.8;}
  .onb-logo{font-family:'Fraunces'; font-size:26px; font-weight:560;} .onb-logo i{color:var(--amber); font-style:normal;}
  .onb-eq{display:flex; gap:4px; align-items:flex-end; height:46px; justify-content:center; margin:6px 0 -6px;}
  .onb-eq i{width:6px; border-radius:3px; background:linear-gradient(0deg,var(--amber),#f6d28a); animation:onbEq 1.1s ease-in-out infinite;}
  @keyframes onbEq{0%,100%{height:8px;}50%{height:44px;}}
  .onb h1{font-family:'Fraunces'; font-weight:500; font-size:clamp(34px,6vw,64px); line-height:1.05; margin:0;}
  .onb h1 em{color:var(--amber); font-style:italic;}
  .onb-sub{color:var(--paper-dim); font-size:clamp(15px,2vw,18px); line-height:1.55; max-width:60ch; margin:0 auto;}
  .onb-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; text-align:left;}
  .onb-card{position:relative; overflow:hidden; border:1px solid var(--line-strong); border-radius:22px; padding:24px; background:linear-gradient(155deg, rgba(231,162,59,.14), rgba(29,26,36,.9) 55%); cursor:pointer; transition:transform .2s, border-color .2s, box-shadow .2s; display:flex; flex-direction:column; gap:10px; color:var(--paper); font-family:'Work Sans'; text-align:left;}
  .onb-card:hover, .onb-card:focus-visible{transform:translateY(-4px); border-color:var(--amber); box-shadow:0 24px 50px -24px rgba(231,162,59,.55); outline:none;}
  .onb-card.cli{background:linear-gradient(155deg, rgba(62,142,130,.2), rgba(29,26,36,.9) 55%);}
  .onb-card .gd-ic{width:64px; height:64px; border-radius:18px;} .onb-card .gd-ic svg{width:34px; height:34px;}
  .onb-card h2{font-family:'Fraunces'; font-weight:560; font-size:26px; margin:6px 0 0;}
  .onb-card p{margin:0; color:var(--paper-dim); line-height:1.55; font-size:14.5px;}
  .onb-card ul{margin:4px 0 0; padding:0; list-style:none; display:grid; gap:5px; font-size:13px; color:var(--text-dim);} .onb-card li::before{content:'✓ '; color:var(--amber);}
  .onb-go{margin-top:auto; padding-top:10px; font-weight:700; color:var(--amber); font-size:14.5px;}
  .onb-foot{display:flex; gap:12px; flex-wrap:wrap; justify-content:center; align-items:center;}
  .onb-foot button{background:none; border:1px solid var(--line-strong); color:var(--paper); border-radius:999px; padding:10px 18px; font:600 13.5px 'Work Sans'; cursor:pointer;} .onb-foot button:hover{border-color:var(--amber); color:var(--amber);}
  .onb-test{font-size:11.5px; color:var(--text-dim); letter-spacing:.05em;}
  /* onboarding v3 : tout tient dans l'écran, sans défilement */
  .onb.show{display:flex; flex-direction:column; height:100vh; height:100dvh; overflow:hidden; padding:max(10px,1.8vh) clamp(14px,3vw,28px) max(10px,1.6vh);}
  .onb .onb-in{flex:1; min-height:0; width:100%; max-width:1040px; margin:0 auto; display:flex; flex-direction:column; justify-content:center; gap:clamp(8px,2.2vh,24px); text-align:center; position:relative;}
  .onb .onb-first{display:flex; flex-direction:column; gap:clamp(8px,2vh,22px); min-height:0; flex:1; zoom:1!important; height:auto!important; min-height:0!important; justify-content:center;}
  .onb .onb-mid{display:flex; flex-direction:column; gap:clamp(8px,2.2vh,22px); justify-content:center; flex:1; min-height:0;}
  .onb .onb-eq{height:clamp(16px,5vh,44px); margin:0;} .onb .onb-eq i{width:clamp(3px,.5vw,6px);}
  .onb h1{font-size:clamp(24px,min(5.6vw,7.4vh),58px);}
  .onb .onb-sub{font-size:clamp(12.5px,min(2vw,2.1vh),17px); line-height:1.45;}
  .onb .onb-cards{display:grid; grid-template-columns:1fr 1fr; gap:clamp(10px,1.6vw,18px); margin-top:0;}
  .onb .onb-card{padding:clamp(12px,2.2vh,22px) clamp(14px,2vw,22px); gap:clamp(4px,.8vh,8px); border-radius:20px;}
  .onb .onb-card .gd-ic{width:clamp(36px,6.5vh,56px); height:clamp(36px,6.5vh,56px); border-radius:14px;} .onb .onb-card .gd-ic svg{width:55%; height:55%;}
  .onb .onb-card h2{font-size:clamp(18px,3.2vh,25px); margin:2px 0 0;}
  .onb .onb-card p{font-size:clamp(12px,1.8vh,14.5px); line-height:1.4;}
  .onb .onb-card ul{display:none;} .onb .onb-go{padding-top:2px; font-size:clamp(12.5px,1.8vh,14.5px);}
  .onb-rest{display:flex; flex-direction:column; gap:6px; padding:0; flex:none; margin:0 auto;}
  .onb-foot button{padding:clamp(6px,1.2vh,10px) 16px; font-size:clamp(12px,1.7vh,13.5px);}
  @media(max-width:560px){ .onb .onb-cards{grid-template-columns:1fr;} .onb .onb-card{display:grid; grid-template-columns:auto 1fr; column-gap:12px; align-items:center;} .onb .onb-card .gd-ic{grid-row:1 / span 3;} .onb .onb-card .onb-go{padding-top:0;} }
  @media(max-height:640px){ .onb .onb-eq{display:none;} .onb-test{display:none;} }
  @media(max-height:520px){ .onb .onb-sub{display:none;} }
  .onb-reg{align-self:center; margin-top:clamp(8px,1.8vh,16px); background:none; border:0; color:var(--paper); font:500 clamp(12.5px,1.9vh,14.5px) 'Work Sans'; cursor:pointer; opacity:.9;} .onb-reg b{color:var(--amber); border-bottom:1px solid transparent;} .onb-reg:hover b{border-bottom-color:var(--amber);}
  .onb-back{align-self:flex-start; margin-top:6px; background:none; border:1px solid var(--line-strong); color:var(--paper); border-radius:999px; padding:6px 14px; font:600 12.5px 'Work Sans'; cursor:pointer;} .onb-back:hover{border-color:var(--amber); color:var(--amber);}
  .onb-pick{margin-bottom:10px; display:grid; grid-template-columns:1fr 1fr; gap:clamp(10px,1.6vw,18px); flex:1; min-height:0; transition:grid-template-columns .45s cubic-bezier(.2,.8,.2,1);}
  .onb-pick:has(.mus:hover), .onb-pick:has(.mus:focus-visible){grid-template-columns:1.35fr 1fr;} .onb-pick:has(.org:hover), .onb-pick:has(.org:focus-visible){grid-template-columns:1fr 1.35fr;}
  .onb-door{position:relative; overflow:hidden; border:1px solid var(--line-strong); border-radius:24px; color:var(--paper); font-family:'Work Sans'; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(4px,1.2vh,12px); padding:clamp(10px,2vh,24px); min-height:0; text-align:center; animation:odIn .6s cubic-bezier(.2,.8,.2,1) backwards; transition:border-color .25s, box-shadow .3s, transform .3s;}
  .onb-door.mus{background:radial-gradient(120% 90% at 50% 0%, rgba(231,162,59,.30), rgba(29,26,36,.95) 62%);} .onb-door.org{background:radial-gradient(120% 90% at 50% 0%, rgba(62,142,130,.34), rgba(29,26,36,.95) 62%); animation-delay:.12s;}
  @keyframes odIn{from{opacity:0; transform:translateY(24px) scale(.96);}}
  .onb-door:hover, .onb-door:focus-visible{border-color:var(--amber); box-shadow:0 26px 60px -26px rgba(231,162,59,.6); outline:none; transform:translateY(-3px);}
  .onb-door h2{font-family:'Fraunces'; font-weight:560; font-size:clamp(20px,4.2vh,34px); margin:0; position:relative; z-index:2;}
  .onb-door p{margin:0; color:var(--paper-dim); font-size:clamp(12px,1.9vh,15px); line-height:1.4; max-width:34ch; position:relative; z-index:2;}
  .onb-door .onb-go{margin:0; padding:clamp(5px,.9vh,8px) 16px; border-radius:999px; background:rgba(231,162,59,.16); position:relative; z-index:2; transition:background .2s, transform .2s;} .onb-door:hover .onb-go{background:var(--amber); color:#1a1208; transform:translateX(4px);}
  .od-art{position:relative; width:clamp(64px,22vh,170px); height:clamp(64px,22vh,170px); flex:none; z-index:1;}
  .od-vinyl{position:absolute; inset:0; border-radius:50%; background:repeating-radial-gradient(circle at 50% 50%, #15121c 0 3px, #221d2c 3px 5px); box-shadow:0 0 0 2px rgba(231,162,59,.5), 0 0 40px rgba(231,162,59,.35); animation:odSpin 3.2s linear infinite;} .onb-door:hover .od-vinyl{animation-duration:1.1s;}
  .od-vinyl::before{content:''; position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, transparent 0 20%, rgba(255,255,255,.14) 25%, transparent 32% 70%, rgba(255,255,255,.1) 75%, transparent 82%);}
  .od-vinyl::after{content:''; position:absolute; inset:34%; border-radius:50%; background:radial-gradient(circle, #1a1208 0 12%, var(--amber) 13%); }
  @keyframes odSpin{to{transform:rotate(360deg);}}
  .od-notes i{position:absolute; bottom:10%; font-style:normal; color:var(--amber); font-size:clamp(14px,3vh,24px); opacity:0; animation:odNote 3.4s ease-in infinite;} .od-notes i:nth-child(1){left:-10%; animation-delay:0s;} .od-notes i:nth-child(2){left:100%; animation-delay:1.1s;} .od-notes i:nth-child(3){left:60%; animation-delay:2.2s; color:#f6d28a;} .od-notes i:nth-child(4){left:-30%; animation-delay:1.7s; color:#f6d28a;}
  @keyframes odNote{0%{transform:translateY(0) rotate(-10deg); opacity:0;}15%{opacity:1;}100%{transform:translateY(-190%) rotate(18deg); opacity:0;}}
  .od-bars{position:absolute; right:-16%; bottom:4%; display:flex; gap:3px; align-items:flex-end; height:38%;} .od-bars i{width:5px; border-radius:3px; background:var(--amber); animation:onbEq 1s ease-in-out infinite;}
  .od-ring{position:absolute; inset:14%; border-radius:50%; border:2px solid rgba(62,142,130,.9); animation:odRing 2.6s ease-out infinite;} .od-ring:nth-child(2){animation-delay:.9s;} .od-ring:nth-child(3){animation-delay:1.8s;}
  @keyframes odRing{0%{transform:scale(.4); opacity:.9;}100%{transform:scale(1.5); opacity:0;}}
  .od-core{position:absolute; inset:22%; border-radius:50%; display:grid; place-items:center; font-size:clamp(26px,9vh,64px); background:radial-gradient(circle, rgba(62,142,130,.55), rgba(62,142,130,.12)); box-shadow:0 0 40px rgba(62,142,130,.5); animation:odPulse 2s ease-in-out infinite;}
  @keyframes odPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.1);}}
  .od-conf{position:absolute; inset:0; pointer-events:none;} .od-conf i{position:absolute; top:-6%; width:7px; height:11px; border-radius:2px; animation:odConf 3.2s linear infinite; opacity:0;}
  @keyframes odConf{0%{transform:translateY(0) rotate(0); opacity:0;}10%{opacity:1;}100%{transform:translateY(900%) rotate(540deg); opacity:0;}}
  @media(max-width:560px){ .onb-pick{grid-template-columns:1fr; grid-template-rows:1fr 1fr;} .onb-pick:has(.mus:hover), .onb-pick:has(.org:hover){grid-template-columns:1fr;} .onb-door{display:grid; grid-template-columns:auto 1fr; grid-template-rows:1fr auto auto 1fr; column-gap:16px; row-gap:6px; justify-items:start; align-items:center; padding:10px 16px;} .onb-door .od-art{grid-row:1 / span 4; grid-column:1;} .onb-door h2{grid-column:2; grid-row:2;} .onb-door .onb-go{grid-column:2; grid-row:3;} .onb-door h2{font-size:clamp(17px,3.2vh,24px);} .od-art{width:clamp(56px,14vh,100px); height:clamp(56px,14vh,100px);} .onb-door h2, .onb-door p{text-align:left;} .onb-door p{display:none;} }
  .lang-dd{position:relative;display:inline-block} .lang-btn{display:flex;align-items:center;gap:7px;background:rgba(29,26,36,.8);color:var(--paper);border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;font:600 12.5px 'Work Sans';cursor:pointer;transition:border-color .2s,background .2s} .lang-btn:hover{border-color:var(--amber)} .lang-btn svg{opacity:.8} .lang-btn .car{width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s;opacity:.7;margin-left:2px} .lang-dd.open .car{transform:rotate(225deg) translate(-1px,-1px)}
  .lang-list{position:absolute;top:calc(100% + 8px);left:0;z-index:400;min-width:170px;margin:0;padding:6px;list-style:none;background:rgba(24,21,32,.97);backdrop-filter:blur(14px);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top left;transition:opacity .16s,transform .16s,visibility .16s} .lang-dd.open .lang-list{opacity:1;visibility:visible;transform:none}
  .lang-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer;font-size:13.5px;color:var(--paper)} .lang-list li:hover,.lang-list li:focus{background:rgba(231,162,59,.14);outline:none} .lang-list li .cd{font:700 10.5px 'Work Sans';letter-spacing:.06em;width:26px;text-align:center;padding:3px 0;border-radius:6px;background:rgba(255,255,255,.07);color:var(--text-dim)} .lang-list li em{margin-left:auto;font-style:normal;color:var(--amber);opacity:0} .lang-list li.on em{opacity:1} .lang-list li.on{font-weight:600} .lang-list li.on .cd{background:var(--amber);color:#1A140A}
  header .lang-btn{background:transparent;border-color:transparent;color:var(--text-dim);padding:5px 8px;font-size:11.5px} header .lang-btn:hover,header .lang-dd.open .lang-btn{color:var(--paper);border-color:var(--line-strong)}
  .lang-sel{background:rgba(29,26,36,.8); color:var(--paper); border:1px solid var(--line-strong); border-radius:999px; padding:6px 10px; font:600 12.5px 'Work Sans'; cursor:pointer;}
  header .lang-sel{padding:3px 4px; font-size:11px; background:transparent; border-color:transparent; color:var(--text-dim); opacity:.7; appearance:none; -webkit-appearance:none; text-align:center;} header .lang-sel:hover, header .lang-sel:focus{opacity:1; border-color:var(--line-strong);} header .lang-sel option{background:#1d1a24; color:var(--paper);} .hdr-lang{margin-left:4px;}
  .tl-models{display:flex; flex-wrap:wrap; gap:6px; justify-content:center; align-items:center; margin:6px 0 2px; font-size:12px; color:var(--text-dim);}
  .tl-models button{background:none; border:1px dashed var(--line-strong); color:var(--text-dim); font:500 12px 'Work Sans'; padding:4px 11px; border-radius:999px; cursor:pointer; transition:all .15s;}
  .tl-models button:hover{border-color:var(--amber); color:var(--amber); border-style:solid;}
  .disc-tools{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:14px;}
  .disc-tools input[type=search], .disc-tools select{background:var(--ink-2); border:1px solid var(--line-strong); color:var(--paper); border-radius:999px; padding:9px 14px; font:500 13px 'Work Sans'; min-width:0;}
  .disc-tools input[type=search]{flex:1 1 220px; max-width:340px;}
  .disc-tools .chip.on{background:var(--amber); color:#1A140A; border-color:var(--amber);}
  .disc-count{font-size:12.5px; color:var(--text-dim); margin:0 0 14px;}
  .fav-btn{position:absolute; top:46px; right:10px; left:auto; z-index:3; width:32px; height:32px; border-radius:50%; border:none; background:rgba(10,9,13,.5); color:#fff; font-size:17px; cursor:pointer; backdrop-filter:blur(2px);} .fav-btn.on{color:#ff6b81;}
  .promo-card{width:min(1040px,100%); max-height:94vh;} .promo-card canvas{width:100%; height:auto; aspect-ratio:16/9; background:#000; display:block; cursor:pointer;} .promo-bar{display:flex; gap:12px; align-items:center; padding:12px 16px;} .promo-bar .big-cta{width:52px; height:52px; padding:0; border-radius:50%; font-size:20px;}

  /* ---- calendrier, cadeaux, tirelire ---- */
  .wallet-chip{background:rgba(231,162,59,.14); border:1px solid rgba(231,162,59,.45); color:var(--paper); border-radius:999px; padding:5px 11px; font:600 12.5px 'Work Sans'; cursor:pointer;} .wallet-chip b{color:var(--amber);}
  .wl-bal{font-family:'Fraunces'; font-size:44px; color:var(--amber); margin:6px 0;} .wl-add{display:flex; gap:8px; margin-bottom:10px;} .wl-ops{max-height:150px; overflow-y:auto; font-size:12.5px; color:var(--text-dim); display:grid; gap:4px;}
  .ag-layout{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:24px; align-items:start;}
  @media (max-width:900px){ .ag-layout{grid-template-columns:minmax(0,1fr);} }
  .ag-box{background:var(--ink-2); border:1px solid var(--line); border-radius:16px; padding:16px;}
  .cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;} .cal-head h3{margin:0; font-family:'Fraunces'; font-size:21px; font-weight:560; text-transform:capitalize;}
  .cal-head button{background:none; border:1px solid var(--line-strong); color:var(--paper); border-radius:50%; width:34px; height:34px; cursor:pointer; font-size:16px;}
  .cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:5px;} .cal-dow{font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); text-align:center; padding:4px 0;}
  .cal-c{aspect-ratio:1/.92; border-radius:9px; border:1px solid var(--line); background:rgba(246,242,234,.03); display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding:5px 2px 3px; font-size:13px; cursor:pointer; position:relative; color:var(--paper); font-family:'Work Sans';}
  .cal-c:hover{border-color:var(--amber);} .cal-c.out{opacity:.3; pointer-events:none;} .cal-c.today{outline:1.5px solid var(--teal);} .cal-c.sel{background:rgba(231,162,59,.2); border-color:var(--amber);}
  .cal-c.off{background:repeating-linear-gradient(135deg, rgba(246,242,234,.06) 0 5px, transparent 5px 10px); color:var(--text-dim);} .cal-c.part::after{content:''; position:absolute; right:4px; top:4px; width:7px; height:7px; border-radius:50%; background:repeating-linear-gradient(135deg,#777 0 2px,#444 2px 4px);}
  .cal-c.past{opacity:.45;}
  .cal-dots{display:flex; gap:3px; margin-top:auto; padding-bottom:2px;} .cal-dots i{width:7px; height:7px; border-radius:50%; display:block;} .d-bk{background:var(--teal);} .d-pub{background:var(--amber);} .d-prv{background:#9a78e0;}
  .cal-leg{display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; font-size:12px; color:var(--text-dim);} .cal-leg span{display:inline-flex; align-items:center; gap:6px;} .cal-leg i{width:9px; height:9px; border-radius:50%; display:inline-block;} .cal-leg .hatch{width:14px; height:10px; border-radius:3px; background:repeating-linear-gradient(135deg, #777 0 2px, #333 2px 4px);}
  .ag-day h3{margin:0 0 4px; font-family:'Fraunces'; font-size:21px; font-weight:560; text-transform:capitalize;}
  .ag-items{display:grid; gap:8px; margin:12px 0;} .ag-it{display:flex; gap:10px; align-items:flex-start; background:var(--ink); border:1px solid var(--line); border-left:4px solid var(--amber); border-radius:10px; padding:10px 12px; font-size:13.5px;}
  .ag-it.bk{border-left-color:var(--teal);} .ag-it.prv{border-left-color:#9a78e0;} .ag-it.off{border-left-color:#777;}
  .ag-it .sp{flex:1; min-width:0;} .ag-it small{color:var(--text-dim); display:block; margin-top:2px;} .ag-it .x{background:none; border:none; color:var(--text-dim); cursor:pointer; font-size:15px;}
  .ag-att{margin-top:8px; display:grid; gap:5px;} .ag-att div{display:flex; gap:8px; align-items:center; font-size:12.5px;} .ag-att button{font-size:11.5px; padding:3px 9px; border-radius:999px; border:1px solid var(--line-strong); background:none; color:var(--paper); cursor:pointer;}
  .ag-actions{display:flex; gap:8px; flex-wrap:wrap;}
  /* calendrier artiste compact : le calendrier et « disponibilités habituelles » tiennent dans la même fenêtre */
  #view-agenda .timeline-head{margin-bottom:14px;} #view-agenda .timeline-head h2{font-size:34px;} #view-agenda .timeline-head p{display:none;}
  #view-agenda .ag-layout{gap:18px;} #view-agenda .ag-cal.ag-box{padding:12px 14px;}
  #view-agenda .ag-cal .cal-head{margin-bottom:6px;} #view-agenda .ag-cal .cal-head h3{font-size:18px;} #view-agenda .ag-cal .cal-head button{width:28px; height:28px; font-size:14px;}
  #view-agenda .ag-cal .cal-grid{gap:3px;} #view-agenda .ag-cal .cal-c{aspect-ratio:auto; height:36px; border-radius:7px; font-size:12.5px; padding-top:3px;} #view-agenda .ag-cal .cal-dots{padding-bottom:1px;} #view-agenda .ag-cal .cal-dots i{width:5px; height:5px;}
  #view-agenda .ag-cal .cal-leg{margin-top:8px; font-size:11px; gap:10px;}
  #view-agenda .ag-day.ag-box{padding:12px 14px;} #view-agenda .ag-day h3{font-size:18px;} #view-agenda .ag-items{margin:8px 0; gap:6px;}
  #view-agenda .ag-week{margin-top:12px; max-width:none; padding:10px 14px; display:flex; flex-wrap:wrap; align-items:center; gap:8px 22px;}
  #view-agenda .ag-week > h3{margin:0; font-size:17px; flex:none;} #view-agenda .ag-week > p{order:5; flex:1 0 100%; margin:0 !important; font-size:12px !important; line-height:1.4;} #view-agenda .ag-week .ag-sw{font-size:13px; flex:none;}
  #view-agenda .ag-week .ag-wk{margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; flex:1 1 auto;} #view-agenda .ag-week .ag-dchip{padding:4px 10px; font-size:12px;}
  #view-agenda .ag-week .ag-wk .two{display:flex; gap:8px; max-width:none; align-items:center;} #view-agenda .ag-week .ag-wk .two label{margin:0; font-size:11px;} #view-agenda .ag-week .ag-wk .two > div{display:flex; align-items:center; gap:6px;} #view-agenda .ag-week .ag-wk input[type=time]{padding:4px 8px; width:auto;} #view-agenda .ag-week small{font-size:11px;}
  .ag-week{margin-top:18px; max-width:1100px;} .ag-sw{display:flex; gap:8px; align-items:center; font-size:14px; cursor:pointer;} .ag-sw input[type=checkbox]{width:auto !important; flex:none; margin:0; padding:0;} .ag-wk{margin-top:12px; display:grid; gap:10px;} .ag-wk.dim{opacity:.45;}
  .ag-days{display:flex; gap:6px; flex-wrap:wrap;} .ag-dchip{background:var(--ink-2); border:1px solid var(--line-strong); color:var(--text-dim); border-radius:999px; padding:7px 14px; cursor:pointer; font:inherit; font-size:13px;} .ag-dchip.on{background:var(--amber); color:#1A140A; border-color:var(--amber); font-weight:600;}
  .ag-it .x{margin-left:2px;}
  .ag-form{display:grid; gap:10px; margin-top:12px; background:var(--ink); border:1px solid var(--line); border-radius:12px; padding:14px;} .ag-form label{font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); display:block; margin-bottom:4px;}
  .ag-form input, .ag-form select, .ag-form textarea{width:100%; background:var(--ink-2); border:1px solid var(--line-strong); color:var(--paper); border-radius:8px; padding:9px 11px; font:14px 'Work Sans';} .ag-form .two{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .badge-acc{font-size:10.5px; padding:2px 8px; border-radius:999px; border:1px solid var(--line-strong); color:var(--text-dim); margin-left:6px; white-space:nowrap;} .badge-acc.free{color:#7fd1c3; border-color:var(--teal);} .badge-acc.paid{color:var(--amber); border-color:var(--amber);}
  .pf-lives{display:grid; gap:10px; margin-top:16px;} .pf-live{display:flex; gap:14px; align-items:center; flex-wrap:wrap; background:var(--ink-2); border:1px solid var(--line); border-radius:14px; padding:12px 14px;} .pf-live .when{min-width:110px; font-family:'Fraunces'; color:var(--amber);} .pf-live .sp{flex:1; min-width:160px;} .pf-live small{display:block; color:var(--text-dim);}
  .pf-fav{background:none; border:1px solid var(--line-strong); color:var(--paper); border-radius:999px; padding:6px 14px; font:600 13px 'Work Sans'; cursor:pointer;} .pf-fav.on{border-color:#ff6b81; color:#ff6b81;}
  /* effets live */
  .fs-btn{position:absolute; top:12px; right:72px; z-index:8; width:28px; height:24px; display:grid; place-items:center; font-size:14px; line-height:1; color:var(--text-dim); background:rgba(10,9,13,.4); border:1px solid var(--line); border-radius:8px; cursor:pointer; opacity:.55; transition:opacity .2s;} .fs-btn:hover{opacity:1; color:var(--paper);}
  .fs-top,.fs-bar{display:none;} .stage.fs .fs-top{display:flex;} .stage.fs .fs-bar{display:flex;}
  .fs-top{position:absolute; top:14px; left:50%; transform:translateX(-50%); z-index:9; align-items:center; gap:8px; font:500 12.5px 'Work Sans',sans-serif; color:rgba(255,255,255,.9); background:rgba(10,9,13,.35); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:5px 13px; pointer-events:none;}
  .fs-dot{width:10px; height:10px; border-radius:50%; background:#7d7889; box-shadow:0 0 0 3px rgba(125,120,137,.2);}
  .fs-bar{position:absolute; left:50%; bottom:14px; transform:translateX(-50%); width:min(520px, calc(100% - 190px)); z-index:9; gap:8px;}
  .fs-bar input{flex:1; min-width:0; background:rgba(10,9,13,.32); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.2); border-radius:999px; color:#fff; padding:9px 15px; font:inherit; font-size:14px;} .fs-bar input::placeholder{color:rgba(255,255,255,.55);} .fs-bar input:focus{outline:none; border-color:var(--amber); background:rgba(10,9,13,.55);}
  .fs-bar button{width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.2); background:rgba(10,9,13,.4); color:#fff; font-size:15px; cursor:pointer;} .fs-bar button:hover{border-color:var(--amber);}
  .stage:fullscreen, .stage.pfs{width:100vw !important; height:100vh !important; max-height:none !important; aspect-ratio:auto !important; border-radius:0 !important;} .stage.pfs{position:fixed !important; inset:0; z-index:9998;}
  .stage.fs .react-bar{bottom:84px;} .stage.fs .gift-tray{bottom:128px;}
  .stage.fs .chat-ov{bottom:68px; height:44%; width:min(46%, 460px);} .stage.fs .stage-label{top:14px;}
  #djPanel{padding:6px 12px; margin-bottom:8px; gap:6px 12px;} #djPanel .link-bar{margin-top:0; font-size:12px;} #djPanel .dj-panel-main{flex-basis:200px;}
  .dj-ctl{display:flex; align-items:center; gap:8px;} #djPanel .live-toggle{padding:6px 13px; font-size:12px; gap:7px; border-width:1px;} #djPanel .live-toggle .led{width:7px; height:7px;} #djPanel .pub-toggle{font-size:11px; padding:5px 10px;}
  .dj-info{margin-top:8px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:var(--ink-2);} .dj-info .dj-panel-title{margin-bottom:3px; font-size:10.5px;} .dj-info .dj-panel-text{font-size:12.5px; line-height:1.45; color:var(--text-dim);} .dj-info .dj-panel-text b{color:var(--paper);} .dj-info .dj-panel-actions{margin-top:6px;} .dj-info .btn{font-size:12px; padding:6px 13px;}
  .dj-info.attn{border-color:var(--amber); box-shadow:0 0 0 1px rgba(231,162,59,.35);}
  .pub-toggle{font-size:11.5px; padding:6px 11px; border-radius:999px; border:1px solid var(--line-strong); background:transparent; color:var(--text-dim); cursor:pointer;} .pub-toggle.on{background:var(--amber); color:#1A140A; border-color:var(--amber);}
  html.pub-live [data-panel="mytl"], html.pub-live #panel-mytl, html.pub-live [data-panel="wishes"], html.pub-live #panel-wishes, html.pub-live .live-tl-strip{display:none !important;}
  .holding{position:relative; z-index:30;} .hold-big{transform-origin:center bottom; filter:drop-shadow(0 6px 14px rgba(231,162,59,.55)); transition:none !important; will-change:transform;} .gift-tray button .e.hold-big, .rx-row button.hold-big{display:inline-block;}
  .tl-item.tl-flash{animation:tlFlash 1.4s ease;} @keyframes tlFlash{0%,60%{box-shadow:0 0 0 2px var(--amber), 0 0 26px rgba(231,162,59,.45)} 100%{box-shadow:0 0 0 0 transparent}}
  .ai-btn{position:absolute; top:12px; right:12px; z-index:8; display:flex; align-items:center; gap:6px; font:600 11px 'Work Sans',sans-serif; letter-spacing:.08em; color:var(--text-dim); background:rgba(10,9,13,.4); border:1px solid var(--line); border-radius:999px; padding:4px 10px; cursor:pointer; opacity:.55; transition:opacity .2s;} .ai-btn:hover{opacity:1; color:var(--paper);} .ai-btn .ai-dot{width:6px; height:6px; border-radius:50%; background:var(--text-dim);} .ai-btn.on{opacity:1; color:#1A140A; background:var(--amber); border-color:var(--amber);} .ai-btn.on .ai-dot{background:#1A140A; animation:aiBlink 1s infinite;} @keyframes aiBlink{50%{opacity:.2}}
  .ai-banner{position:absolute; left:50%; bottom:18px; transform:translate(-50%,30px); opacity:0; pointer-events:none; z-index:9; display:flex; align-items:center; gap:14px; max-width:calc(100% - 28px); background:rgba(14,12,20,.88); backdrop-filter:blur(6px); border:1px solid var(--amber); border-radius:16px; padding:10px 14px; transition:all .35s;} .ai-banner.show{opacity:1; transform:translate(-50%,0); pointer-events:auto;}
  .ai-txt{display:grid; gap:1px;} .ai-txt b{font-size:13.5px; color:var(--paper);} .ai-txt small{font-size:12px; color:var(--text-dim);} .ai-eq{display:flex; align-items:flex-end; gap:3px; height:22px;} .ai-eq i{width:4px; background:var(--amber); border-radius:2px; animation:aiEq .8s ease-in-out infinite;} .ai-eq i:nth-child(2){animation-delay:.15s} .ai-eq i:nth-child(3){animation-delay:.3s} .ai-eq i:nth-child(4){animation-delay:.45s} .ai-eq i:nth-child(5){animation-delay:.6s} @keyframes aiEq{0%,100%{height:5px}50%{height:22px}}
  .ai-back{font-size:11.5px; padding:6px 11px; border-radius:999px; border:1px solid var(--line-strong); background:transparent; color:var(--paper); cursor:pointer; white-space:nowrap;} .ai-back:hover{border-color:var(--amber);}
  .nav-count{display:none; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; margin-left:7px; border-radius:9px; background:#E1573D; color:#fff; font:700 11px 'Work Sans'; vertical-align:middle;}
  .ag-inbox{border:1px solid var(--amber); border-radius:12px; padding:12px 14px; margin:0 0 14px; background:rgba(231,162,59,.08);} .ag-inbox .hd{display:flex; gap:10px; align-items:center; margin-bottom:6px;} .ag-inbox .gt{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:8px 0 4px; font-size:13.5px;} .ag-inbox .gt .all{margin-left:auto; display:flex; gap:6px;} .ag-inbox .row{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:5px 0; border-top:1px solid var(--line, #34303f); font-size:14px;} .ag-inbox .bt{display:flex; gap:6px;}
  #castBtn.on{border-color:#6fd3a0; color:#6fd3a0;}
  .live-dot{display:none; width:9px; height:9px; margin-left:7px; border-radius:50%; background:#E1573D; box-shadow:0 0 0 2px rgba(255,255,255,.85), 0 0 8px rgba(225,87,61,.9); vertical-align:middle; animation:ldp 1.4s infinite;} .live-dot.on{display:inline-block;} @keyframes ldp{50%{opacity:.4; transform:scale(.8);}}
  #fxLayer{position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:6;}
  .fx-e{position:absolute; bottom:8%; font-size:22px; opacity:.85; animation:fxUp 2.6s ease-out forwards; filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));}
  html.is-dj .fx-e{bottom:22%;} html.is-dj .fx-gift{left:0; right:0; margin:0 auto; width:max-content; top:18%;}
  @keyframes fxUp{0%{transform:translate(0,0) scale(.5); opacity:0;}12%{opacity:1; transform:translate(calc(var(--dx)*.1),-30px) scale(1.1);}100%{transform:translate(var(--dx),-200px) scale(.9); opacity:0;}}
  .fx-gift{position:absolute; right:14px; top:56px; display:flex; align-items:center; gap:8px; background:rgba(10,9,13,.72); border:1px solid rgba(231,162,59,.6); border-radius:999px; padding:5px 12px 5px 8px; animation:fxGift 2.6s ease-out forwards; max-width:70%;} .fx-gift .big{font-size:26px; line-height:1;} .fx-gift .lbl{color:var(--paper); font:600 12.5px 'Work Sans'; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  @keyframes fxGift{0%{opacity:0; transform:translateX(20px);}12%{opacity:1; transform:none;}80%{opacity:1;}100%{opacity:0; transform:translateY(-10px);}}
  .react-bar{position:absolute; left:50%; transform:translateX(-50%); bottom:14px; z-index:9; display:none; gap:6px; align-items:center;} .react-bar.show{display:flex;}
  .react-bar button{width:42px; height:42px; border-radius:50%; border:1px solid var(--line-strong); background:rgba(10,9,13,.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); font-size:20px; cursor:pointer; transition:transform .12s;} .react-bar button:active{transform:scale(1.25);} .react-bar .gift-tog{width:auto; border-radius:999px; padding:0 14px; font:700 13px 'Work Sans'; color:var(--amber); border-color:var(--amber);}
  .gift-tray{position:absolute; left:50%; transform:translateX(-50%); bottom:58px; z-index:9; display:none; grid-template-columns:repeat(3,1fr); gap:6px; background:rgba(10,9,13,.97); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid var(--line-strong); border-radius:16px; padding:10px; max-width:min(330px,80%);} .gift-tray.show{display:grid;}
  @media (max-width:900px), (max-height:520px){
    .gift-tray{position:fixed; left:50%; bottom:max(12px, env(safe-area-inset-bottom)); z-index:9000; max-width:min(360px,94vw); max-height:min(72vh,460px); overflow-y:auto; overscroll-behavior:contain;}   /* téléphone : plateau cadeaux / pourboires toujours entier, hors de la fenêtre vidéo */
  }
  .gift-tray button{background:rgba(246,242,234,.05); border:1px solid var(--line); border-radius:12px; padding:8px 4px; color:var(--paper); cursor:pointer; font:500 11.5px 'Work Sans'; display:flex; flex-direction:column; align-items:center; gap:2px;} .gift-tray button:hover{border-color:var(--amber);} .gift-tray .e{font-size:26px;} .gift-tray b{color:var(--amber);}
  .react-bar .react-tog{width:34px; height:34px; font-size:16px; opacity:.75;} .react-bar .react-tog:hover{opacity:1;}
  .gift-tray .rx-row{grid-column:1/-1; display:flex; gap:4px; justify-content:space-between; flex-wrap:wrap;} .gift-tray .rx-row button{width:36px; height:36px; padding:0; border-radius:50%; font-size:18px; display:grid; place-items:center;}
  .gift-tray .hd{grid-column:1/-1; font-size:11px; color:var(--text-dim); letter-spacing:.06em; text-transform:uppercase;}
  .gift-tally{position:absolute; left:0; right:0; margin:0 auto; width:max-content; bottom:14px; z-index:7; background:rgba(10,9,13,.55); border:1px solid var(--line); border-radius:999px; padding:3px 10px; font:600 11.5px 'Work Sans'; opacity:.8; color:var(--paper);} .gift-tally b{color:var(--amber);}
  .tip-box{margin:12px 0 4px; text-align:left;} .tip-h{font-size:13px; margin-bottom:8px;} .tip-h small{color:var(--text-dim);}
  .tip-row{display:flex; gap:6px; flex-wrap:wrap;} .tip-row button{border:1px solid var(--line-strong); background:none; color:var(--paper); border-radius:999px; padding:7px 13px; font:600 13px 'Work Sans'; cursor:pointer;} .tip-row button.on{background:var(--amber); color:#1A140A; border-color:var(--amber);}
  .tip-mode{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; font-size:12.5px; color:var(--text-dim);} .tip-mode label{display:flex; gap:5px; align-items:center; cursor:pointer;}
  /* ---- fiche musicien ---- */
  .pf-back{background:none; border:none; color:var(--text-dim); font-family:'Work Sans'; font-size:13.5px; cursor:pointer; padding:6px 0; margin-bottom:10px;}
  .pf-back:hover{color:var(--amber);}
  .pf-hero{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:26px; align-items:start;}
  .pf-video{position:relative; border-radius:16px; overflow:hidden; background:#000; aspect-ratio:16/9; border:1px solid var(--line);}
  .pf-video canvas, .pf-video video{width:100%; height:100%; display:block; object-fit:cover;}
  .pf-play{position:absolute; left:50%; top:50%; width:68px; height:68px; margin:-34px 0 0 -34px; border-radius:50%; border:none; background:rgba(231,162,59,.92); color:#1A140A; font-size:26px; cursor:pointer; box-shadow:0 10px 30px rgba(0,0,0,.5); transition:opacity .25s, transform .15s;}
  .pf-play:hover{transform:scale(1.07);}
  .pf-video.playing .pf-play{opacity:0; pointer-events:none;}
  .pf-video.playing:hover .pf-play{opacity:.85; pointer-events:auto; width:44px; height:44px; margin:-22px 0 0 -22px; font-size:17px;}
  .pf-vbar{position:absolute; left:0; right:0; bottom:0; padding:22px 14px 10px; background:linear-gradient(0deg, rgba(0,0,0,.7), transparent); display:flex; align-items:center; gap:10px; font-size:11.5px; color:#ddd;}
  .pf-vbar .trk{flex:1; height:3px; background:rgba(255,255,255,.25); border-radius:2px; overflow:hidden;} .pf-vbar .trk i{display:block; height:100%; width:0; background:var(--amber);}
  .pf-vtag{position:absolute; top:10px; left:10px; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; background:rgba(0,0,0,.55); color:#ddd; padding:3px 9px; border-radius:999px;}
  .pf-id{display:flex; gap:16px; align-items:center; margin-bottom:12px;}
  .pf-portrait{flex:none; width:104px; height:104px; border-radius:50%; overflow:hidden; border:2px solid var(--amber); box-shadow:0 10px 30px -10px rgba(231,162,59,.5);}
  .pf-portrait svg{display:block; width:100%; height:100%;}
  .pf-id h1{font-family:'Fraunces'; font-weight:560; font-size:clamp(28px,4vw,40px); margin:0 0 2px; line-height:1.05;}
  .pf-id .role{color:var(--text-dim); font-size:14px;}
  .pf-score{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:6px 0 14px; font-size:14px;}
  .pf-score b{font-family:'Fraunces'; font-size:26px; font-weight:560; color:var(--amber);}
  .pf-pill{font-size:11.5px; padding:3px 10px; border-radius:999px; border:1px solid var(--line-strong); color:var(--text-dim);}
  .pf-pill.on{border-color:var(--teal); color:#7fd1c3;}
  .pf-tagline{font-family:'Fraunces'; font-style:italic; font-size:18px; line-height:1.4; color:var(--paper-dim); margin:0 0 14px;}
  .pf-facts{display:grid; grid-template-columns:repeat(2,1fr); gap:10px 18px; margin:0 0 6px;}
  .pf-facts div{font-size:14px;} .pf-facts span{display:block; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); margin-bottom:2px;}
  .pf-sec{margin-top:30px;}
  .pf-sec h2{font-family:'Fraunces'; font-weight:560; font-size:22px; margin:0 0 12px;}
  .pf-sec p{line-height:1.65; color:var(--paper-dim); margin:0 0 10px; max-width:70ch;}
  .lv-head h2{font-family:Fraunces,serif; font-weight:560; font-size:30px; margin:0 0 4px;} .lv-head p{margin:0 0 16px; color:var(--text-dim); font-size:14px;}
  .lv-filters{display:grid; gap:10px; margin-bottom:18px;} .lv-row{display:flex; flex-wrap:wrap; gap:7px; align-items:center;} .lv-row .lbl{font-size:11.5px; color:var(--text-dim); min-width:58px;}
  .lv-row input{background:var(--ink-2); border:1px solid var(--line-strong); color:var(--paper); border-radius:999px; padding:7px 14px; font:inherit; font-size:13px; min-width:200px;}
  .lv-row .chip{padding:6px 12px; font-size:12.5px;} .lv-row .chip.on{background:var(--amber); color:#1A140A; border-color:var(--amber);}
  .lv-cols{display:grid; grid-template-columns:minmax(260px,330px) 1fr; gap:24px; align-items:start;} .lv-cal{position:sticky; top:12px;} .lv-cal .cal-leg{display:none;}
  .lv-leg{display:flex; gap:10px; margin-top:10px; font-size:12px; color:var(--text-dim);}
  .lv-list{display:grid; gap:12px;} .lv-sec{font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin:6px 0 -2px;}
  .lv-card{display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; background:var(--ink-2); border:1px solid var(--line); border-radius:16px; padding:14px 16px;} .lv-card.fav{border-color:var(--amber);}
  .lv-av{width:46px; height:46px; border-radius:50%; display:grid; place-items:center; font-family:Fraunces,serif; font-size:20px; color:#fff; cursor:pointer;}
  .lv-card h4{margin:0; font-size:15px; font-weight:600;} .lv-card .who{font-size:12.5px; color:var(--text-dim); margin-top:2px;} .lv-card .who a{color:var(--paper); cursor:pointer; text-decoration:underline; text-decoration-color:var(--line-strong);}
  .lv-card .meta{display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; align-items:center; font-size:12px; color:var(--text-dim);} .lv-card .tg{border:1px solid var(--line-strong); border-radius:999px; padding:1px 8px; font-size:11px;}
  .lv-card .act{display:grid; gap:6px; justify-items:end;} .lv-heart{background:none; border:0; color:var(--text-dim); font-size:18px; cursor:pointer; padding:0 4px;} .lv-heart.on{color:#E1573D;}
  .lv-card{transition:opacity .25s, transform .25s, max-height .3s, margin .3s, padding .3s;} .lv-card.lv-off{opacity:0; max-height:0; overflow:hidden; padding-top:0; padding-bottom:0; margin:-6px 0; border-width:0; pointer-events:none;} .lv-list.lv-focus .lv-sec{opacity:0; height:0; margin:0; overflow:hidden;}
  .lv-cal .cal-c{transition:transform .2s, box-shadow .2s, background .2s;} .lv-cal .cal-c.lv-bump{animation:lvBump .7s ease-in-out infinite; background:var(--amber) !important; color:#1A140A !important; box-shadow:0 0 0 3px rgba(231,162,59,.35); z-index:2; position:relative;} @keyframes lvBump{0%,100%{transform:scale(1)}50%{transform:scale(1.22)}}
  .ag-tip{position:fixed;z-index:9999;display:none;max-width:260px;background:var(--ink-2);border:1px solid var(--amber);border-radius:12px;padding:10px 12px;box-shadow:0 8px 28px rgba(0,0,0,.45);pointer-events:none;font-size:12.5px} .ag-tip>b{display:block;margin-bottom:6px;color:var(--amber)} .ag-tip div{display:flex;gap:8px;align-items:flex-start;margin-top:5px} .ag-tip i{width:8px;height:8px;border-radius:50%;margin-top:4px;flex:none;background:var(--amber)} .ag-tip .bk i{background:#5aa9ff} .ag-tip .prv i{background:#9a7bd6} .ag-tip small{display:block;opacity:.7}
  .ag-mi{display:flex;gap:10px;align-items:center;cursor:pointer;transition:opacity .25s,max-height .3s,margin .3s;max-height:120px} .ag-mi .ag-it{flex:1;margin:0} .ag-mid{display:flex;flex-direction:column;align-items:center;min-width:38px;padding:4px 0;border-radius:10px;background:var(--ink-3,rgba(255,255,255,.06))} .ag-mid b{font-size:16px} .ag-mid small{font-size:10px;opacity:.7;text-transform:uppercase} .ag-mi:hover .ag-mid{background:var(--amber);color:#1A140A} .ag-mi.lv-off{opacity:0;max-height:0;overflow:hidden;margin:-4px 0;pointer-events:none}
  .ag-cal .cal-c{transition:transform .2s,box-shadow .2s,background .2s} .ag-cal .cal-c.lv-bump{animation:lvBump .7s ease-in-out infinite;background:var(--amber) !important;color:#1A140A !important;box-shadow:0 0 0 3px rgba(231,162,59,.35);z-index:2;position:relative}
  #pjDetail.pj-ro .proj-grid, #pjDetail.pj-ro .pj-tl-head, #pjDetail.pj-ro #tlListProj, #pjDetail.pj-ro .add-row, #pjDetail.pj-ro #tlModels{display:none !important;} #pjSum{margin-bottom:14px} .pj-pencil{border:1px solid var(--line-strong);background:transparent;color:var(--paper);width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;transition:background .2s,color .2s,border-color .2s} .pj-pencil:hover{background:var(--amber);color:#1A140A;border-color:var(--amber)}
  .sheet-live{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid var(--coral,#e5624d);border-radius:12px;background:rgba(229,98,77,.1)} .sheet-live span:not(.live-dot){color:var(--text-dim);font-size:13px;flex:1}
  .lv-card:hover{border-color:var(--amber);}
  .lv-cols{grid-template-columns:minmax(260px,330px) minmax(0,1fr);} .lv-cols>*{min-width:0;} .lv-cal{max-height:calc(100vh - 24px); overflow:auto;} .lv-list{display:flex; flex-direction:column; gap:0;} .lv-list>*{margin:0 0 12px;} .lv-list>.lv-sec{margin:6px 0 8px;} .lv-list>.lv-card.lv-off,.lv-list>.lv-sec.lv-off{margin:0; height:0; min-height:0;} .lv-list.lv-focus>.lv-sec{margin:0;} @media(max-width:760px){.lv-cols{grid-template-columns:minmax(0,1fr);}}
  .lv-filters{gap:4px; margin-bottom:14px; opacity:.78;} .lv-filters:hover,.lv-filters:focus-within{opacity:1;} .lv-row{gap:4px;} .lv-row .lbl{font-size:10.5px; min-width:52px; opacity:.7; text-transform:uppercase; letter-spacing:.06em;}
  .lv-row input{background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; padding:4px 2px; font-size:12.5px; min-width:180px;} .lv-row input:focus{outline:none; border-bottom-color:var(--amber);}
  .lv-row .chip{font-family:inherit; border-color:transparent; background:transparent; color:var(--text-dim); padding:3px 9px; font-size:11.5px;} .lv-row .chip small{opacity:.6; font-size:10px;} .lv-row .chip:hover{color:var(--paper); border-color:var(--line);} .lv-row .chip.on{background:rgba(231,162,59,.16); color:var(--amber); border-color:transparent;}
  .lv-empty{color:var(--text-dim); font-size:14px; padding:20px 4px;} .lv-clear{font-size:12.5px;}
  html.is-phone .lv-cols{grid-template-columns:1fr;} html.is-phone .lv-cal{position:static;} html.is-phone .lv-card{grid-template-columns:auto 1fr;} html.is-phone .lv-card .act{grid-column:1/-1; justify-items:start; display:flex; flex-wrap:wrap; align-items:center;} html.is-phone .lv-row input{min-width:0; width:100%;}
  @media(max-width:760px){ .lv-cols{grid-template-columns:1fr;} .lv-cal{position:static;} .lv-card{grid-template-columns:auto 1fr;} .lv-card .act{grid-column:1/-1; justify-items:start; display:flex; flex-wrap:wrap; align-items:center;} }
  .pf-cols{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:26px;}
  .pf-chips{display:flex; flex-wrap:wrap; gap:8px;}
  .pf-chips span{font-size:13px; padding:6px 13px; border-radius:999px; background:var(--ink-2); border:1px solid var(--line);}
  .pf-list{list-style:none; padding:0; margin:0; display:grid; gap:8px;} .pf-list li{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--paper-dim);} .pf-list li::before{content:'›'; color:var(--amber); font-weight:700;}
  .pf-rev{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:14px;}
  .pf-rev blockquote{margin:0; background:var(--ink-2); border:1px solid var(--line); border-radius:12px; padding:14px 16px; font-size:14px; line-height:1.55; color:var(--paper-dim);}
  .pf-rev blockquote footer{margin-top:10px; font-size:12px; color:var(--text-dim); display:flex; justify-content:space-between; gap:8px;} .pf-rev .st{color:var(--amber); letter-spacing:2px;}
  .pf-bars{display:grid; gap:6px; max-width:340px; font-size:12px; color:var(--text-dim);} .pf-bars div{display:grid; grid-template-columns:14px 1fr 28px; gap:8px; align-items:center;} .pf-bars i{display:block; height:6px; border-radius:3px; background:var(--amber);} .pf-bars em{display:block; background:var(--line); border-radius:3px;}
  .pf-cta{position:sticky; bottom:14px; margin-top:34px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:space-between; background:rgba(29,26,36,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:1px solid var(--line-strong); border-radius:16px; padding:12px 16px; box-shadow:0 18px 40px -16px rgba(0,0,0,.8); z-index:5;}
  .pf-cta .who{font-size:13.5px; color:var(--text-dim);} .pf-cta .who b{color:var(--paper); font-size:15px;}
  .pf-cta .btns{display:flex; gap:10px; flex-wrap:wrap;}
  @media (max-width:860px){ .pf-hero{grid-template-columns:minmax(0,1fr);} }
  .sheet-more{background:none; border:none; color:var(--amber); font-weight:600; font-size:13px; cursor:pointer; font-family:'Work Sans'; padding:0; margin:0 0 12px;}
  /* projet présélectionné */
  .pj-for{display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:linear-gradient(90deg, rgba(231,162,59,.16), rgba(231,162,59,.04)); border:1px solid rgba(231,162,59,.4); border-radius:12px; padding:11px 14px; margin-bottom:14px; font-size:13.5px;}
  .pj-for .cr-av{width:34px; height:34px; font-size:14px;}
  .pj-for .sp{flex:1; min-width:140px;} .pj-for button{font-size:12px; padding:7px 13px;}
  /* ---- Comment ça marche ---- */
  .gd-hero{text-align:center; padding:18px 0 8px;}
  .gd-hero h1{font-family:'Fraunces'; font-weight:520; font-size:clamp(32px,5vw,56px); margin:0 0 10px; line-height:1.05;}
  .gd-hero p{max-width:62ch; margin:0 auto 18px; color:var(--paper-dim); line-height:1.6;}
  .gd-jump{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
  .gd-jump a{cursor:pointer; padding:11px 20px; border-radius:999px; border:1px solid var(--line-strong); font-weight:600; font-size:14px; color:var(--paper); text-decoration:none;}
  .gd-jump a:hover{border-color:var(--amber); color:var(--amber);}
  .gd-chap{margin-top:46px; scroll-margin-top:20px;}
  .gd-ch-head{display:flex; align-items:center; gap:14px; margin-bottom:6px;}
  .gd-ch-head .num{font-family:'Fraunces'; font-size:54px; font-weight:400; color:var(--amber); line-height:1; opacity:.9;}
  .gd-ch-head h2{font-family:'Fraunces'; font-weight:560; font-size:clamp(24px,3.4vw,34px); margin:0;}
  .gd-lead{font-size:16.5px; line-height:1.6; color:var(--paper-dim); max-width:72ch; margin:6px 0 22px;}
  .gd-h3{font-size:11.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--text-dim); margin:30px 0 12px; font-weight:600;}
  .gd-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px;}
  .gd-card{background:var(--ink-2); border:1px solid var(--line); border-radius:16px; padding:16px; display:flex; flex-direction:column; gap:8px;}
  .gd-card h4{margin:0; font-family:'Fraunces'; font-weight:560; font-size:18px;}
  .gd-card p{margin:0; font-size:13.5px; line-height:1.55; color:var(--paper-dim);}
  .gd-card .kit{font-size:12px; color:var(--text-dim); border-top:1px dashed var(--line); padding-top:8px; margin-top:auto;}
  .gd-card .kit b{color:var(--amber); font-weight:600;}
  .gd-ic{width:54px; height:54px; border-radius:14px; display:grid; place-items:center; background:linear-gradient(155deg, rgba(231,162,59,.22), rgba(231,162,59,.05)); border:1px solid rgba(231,162,59,.35);}
  .gd-ic svg{width:28px; height:28px; stroke:var(--amber); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
  .gd-steps{counter-reset:st; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; position:relative;}
  .gd-step{position:relative; background:var(--ink-2); border:1px solid var(--line); border-radius:16px; padding:16px; display:flex; flex-direction:column; gap:8px;}
  .gd-step::before{counter-increment:st; content:counter(st); position:absolute; top:-12px; left:14px; width:26px; height:26px; border-radius:50%; background:var(--amber); color:#1A140A; font-weight:700; font-size:13px; display:grid; place-items:center;}
  .gd-step h4{margin:0; font-size:15.5px;} .gd-step p{margin:0; font-size:13px; line-height:1.55; color:var(--paper-dim);}
  .gd-two{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px;}
  .gd-path{background:var(--ink-2); border:1px solid var(--line); border-radius:16px; padding:18px;} .gd-path h4{margin:0 0 6px; font-family:'Fraunces'; font-size:18px; font-weight:560;} .gd-path p{margin:0 0 8px; font-size:13.5px; line-height:1.55; color:var(--paper-dim);} .gd-path .flow{font-size:12.5px; color:var(--amber);}
  .gd-check{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px 22px;} .gd-check li{display:flex; gap:10px; font-size:14px; color:var(--paper-dim); line-height:1.45;} .gd-check li::before{content:'✓'; color:var(--amber); font-weight:700;}
  .gd-sayings{font-family:'Fraunces'; font-style:italic; font-size:19px; color:var(--paper-dim); margin:0 0 4px;}
  .gd-cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
  .gd-aud{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px;}
  .gd-aud .gd-card{padding:14px;} .gd-aud .gd-ic{width:44px; height:44px;} .gd-aud .gd-ic svg{width:23px; height:23px;}
  /* menu du haut qui se masque pendant la session live et réapparaît au survol du haut de l'écran */
  body.hdr-auto header{position:fixed; left:0; right:0; top:0; transform:translateY(-101%); transition:transform .28s ease; background:linear-gradient(180deg, var(--ink) 88%, rgba(20,18,26,.94)); box-shadow:0 18px 30px -18px rgba(0,0,0,.8);}
  body.hdr-auto header.show{transform:none;}
  #hdrHot{display:none; position:fixed; top:0; left:0; right:0; height:10px; z-index:60;}
  #hdrTab{display:none; position:fixed; top:0; left:50%; transform:translateX(-50%); z-index:61; background:rgba(29,26,36,.92); border:1px solid var(--line-strong); border-top:none; color:var(--text-dim); font-size:11px; padding:2px 16px 3px; border-radius:0 0 10px 10px; cursor:pointer; letter-spacing:.06em; font-family:'Work Sans';}
  #hdrTab:hover{color:var(--amber);}
  body.hdr-auto #hdrTab{display:block;}
  body.hdr-auto main, html.dj-fit body.hdr-auto main{padding-top:36px;}   /* l'interface est décalée vers le bas : l'onglet MENU ne la recouvre plus */
  body.hdr-auto header.show ~ #hdrTab{display:none;}
  /* écran de réservations en 3 colonnes (liste | projet | discussion) */
  html.is-dj .resa-grid{grid-template-columns:minmax(210px,270px) minmax(0,1.15fr) minmax(0,1fr);}
  html.is-dj .resa-grid > div{min-width:0;}
  html.is-dj #resaList{max-height:none;}
  html.is-dj .thr-msgs{height:min(46vh, 380px);}
  html.is-dj #resaThread .thr-msgs{height:min(56vh, 440px);}
  html.is-dj .rd-tl li{padding:6px 0;}
  html.is-dj .rd-facts{margin:10px 0;}
  @media (max-width:1100px){ html.is-dj .resa-grid{grid-template-columns:minmax(150px,190px) minmax(0,1.1fr) minmax(0,1fr); gap:14px;} html.is-dj .rd-facts{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:760px){ html.is-dj .resa-grid{grid-template-columns:minmax(0,1fr);} }
  /* Frise live : curseur fixe au centre, échelle défilante */
  .live-tl-strip{position:relative; height:80px; background:var(--ink-2); border-bottom:1px solid var(--line); overflow:hidden; min-width:0;}
  .live-tl-viewport{width:100%; max-width:100%; height:100%; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none; cursor:grab; touch-action:pan-x; user-select:none;}
  .live-tl-viewport::-webkit-scrollbar{display:none; width:0; height:0;}
  .live-tl-viewport.dragging{cursor:grabbing;}
  .live-tl{position:relative; height:100%;}
  .live-tl-item{position:absolute; top:28px; transform:translate(-14px,-50%); display:flex; align-items:center; gap:6px; white-space:nowrap; cursor:pointer; padding:3px 10px 3px 11px; border-radius:999px; transition:background .15s;}   /* le point (centre à 14 px du bord gauche) marque l'heure exacte, le texte s'étend vers la droite */
  .live-tl-item .dot{width:6px; height:6px; border-radius:50%; background:var(--line-strong); flex:none;}
  .live-tl-item .t{font-family:'Fraunces'; font-weight:560; font-size:12px; color:var(--text-dim);}
  .live-tl-item .lbl{font-size:11px; color:var(--text-dim);}
  .live-tl-item.active{background:rgba(231,162,59,.12);}
  .live-tl-item.active .dot{background:var(--amber);}
  .live-tl-item.active .t, .live-tl-item.active .lbl{color:var(--paper);}
  .live-tl-time{position:absolute; left:50%; top:2px; transform:translateX(7px); font-size:10.5px; font-weight:600; color:var(--coral); z-index:3; pointer-events:none; background:rgba(29,26,36,.7); padding:0 3px; border-radius:3px;}
  .live-tl-tick{position:absolute; top:0; bottom:0; width:1px; background:var(--line); pointer-events:none;}
  .live-tl-tick span{position:absolute; left:4px; bottom:3px; font-size:9.5px; color:var(--text-dim);}
  .live-tl-item .lbl{max-width:300px; overflow:hidden; text-overflow:ellipsis;}
  .live-tl-center{position:absolute; top:0; bottom:0; left:50%; width:2px; background:var(--coral); z-index:3; pointer-events:none;}
  .live-tl-center::before{content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid var(--coral);}
  .live-tl-zoom{position:absolute; right:8px; bottom:5px; z-index:4; display:flex; gap:3px;} .live-tl-zoom button{background:rgba(20,18,26,.88); border:1px solid var(--line-strong); color:var(--paper); font-size:12px; line-height:1; width:22px; height:20px; padding:0; border-radius:6px; cursor:pointer;} .live-tl-zoom button:hover{border-color:var(--amber); color:var(--amber);}
  .live-tl-strip.tl-none{display:none !important;}
  .live-tl-tick.sub{opacity:.45;} .live-tl-nowmk{position:absolute; top:0; bottom:0; width:2px; background:var(--coral); z-index:3; pointer-events:none;} .live-tl-nowmk span{position:absolute; top:2px; left:5px; font-size:10.5px; font-weight:600; color:var(--coral); background:rgba(29,26,36,.7); padding:0 3px; border-radius:3px;}
  .live-tl-strip.tl-fit .live-tl-center, .live-tl-strip.tl-fit .live-tl-time, .live-tl-strip.tl-fit .live-tl-recenter{display:none !important;} .live-tl-strip.tl-fit .live-tl-viewport{cursor:default; overflow-x:hidden;}
  .live-tl-recenter{position:absolute; right:86px; bottom:6px; z-index:4; display:none; background:rgba(20,18,26,.88); border:1px solid var(--line-strong); color:var(--paper); font-size:10px; font-weight:600; padding:4px 10px; border-radius:999px; cursor:pointer;}
  .live-tl-recenter:hover{border-color:var(--amber); color:var(--amber);}
  /* Panneau latéral à hauteur FIXE : il prend la hauteur de la colonne vidéo (contain:size) et le contenu défile à l'intérieur */
  .panel{background:var(--ink-2); border:1px solid var(--line); border-radius:6px; display:flex; flex-direction:column; align-self:stretch; contain:size; min-height:0; overflow:hidden;}
  @media (max-width:900px){ .panel{height:440px; contain:none;} }
  @media (max-width:560px){ .panel{height:400px;} }
  .panel-tabs{display:flex; border-bottom:1px solid var(--line);}
  .panel-tabs button{flex:1; background:none; border:none; color:var(--text-dim); font-family:'Work Sans'; font-size:12.5px; font-weight:600; padding:12px; cursor:pointer; border-bottom:2px solid transparent;}
  .panel-tabs button.active{color:var(--paper); border-color:var(--amber);}
  .panel-body{flex:1; min-height:0; overflow-y:auto; padding:14px 16px; display:none; flex-direction:column; gap:10px; scrollbar-width:thin;}
  /* Tchat : les messages s'empilent depuis le bas et s'effacent en dégradé vers le haut ; on peut remonter l'historique */
  #panel-chat{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 46px); mask-image:linear-gradient(to bottom, transparent 0, #000 46px); padding-top:30px;}
  #panel-chat > :first-child{margin-top:auto;}
  .panel-body.active{display:flex;}
  /* Tchat en surimpression sur la vidéo de l’artiste (côté client) : moitié gauche, moitié basse */
  .chat-ov{position:absolute; left:0; bottom:0; width:50%; height:50%; z-index:6; pointer-events:none; overflow:hidden;
    display:flex; flex-direction:column; justify-content:flex-end; gap:5px; padding:0 0 12px 14px;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 35%); mask-image:linear-gradient(to bottom, transparent 0, #000 35%);}
  .chat-ov .ov-msg{align-self:flex-start; max-width:100%; font-size:13.5px; line-height:1.35; color:#fff; padding:4px 10px; border-radius:10px;
    background:rgba(8,7,12,.28); text-shadow:0 1px 3px rgba(0,0,0,.9); transition:opacity 1.2s ease; animation:ovIn .35s ease; overflow-wrap:anywhere;}
  .chat-ov .ov-msg b{color:var(--amber); margin-right:5px; font-weight:600;}
  .chat-ov .ov-msg.self b{color:var(--teal);}
  @keyframes ovIn{from{opacity:0; transform:translateY(8px);} }
  .pj-layout{display:grid; grid-template-columns:minmax(250px,320px) minmax(0,1fr); gap:24px; align-items:start;}
  .pj-side{position:sticky; top:14px; max-height:calc(100vh - 40px); overflow-y:auto; scrollbar-width:none; -ms-overflow-style:none; padding:26px 0; -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 26px, #000 calc(100% - 38px), transparent 100%); mask-image:linear-gradient(to bottom, transparent 0, #000 26px, #000 calc(100% - 38px), transparent 100%);}
  .pj-side::-webkit-scrollbar{display:none;}
  .pl-tog{display:none; font:600 12.5px 'Work Sans',sans-serif; color:var(--paper); background:var(--ink-2); border:1px solid var(--line-strong); border-radius:999px; padding:7px 13px; cursor:pointer;} .pl-tog b{color:var(--amber);}
  @media (max-width:900px){ #view-projet.pj-editing .timeline-head p{display:none;} #view-projet.pj-editing .timeline-head{margin-bottom:10px;} #view-projet.pj-editing .timeline-head h2{font-size:30px;} .pj-layout.editing .pj-main{order:1;} .pj-layout.editing .pj-side{order:2; margin-top:6px;} .pj-layout.editing .pl-tog{display:inline-block;} .pj-layout.editing .pl-wrap:not(.open) .pl-sec{display:none;} .pj-layout.editing .pl-wrap:not(.open) .pl-head{margin-bottom:0;} .pj-layout.editing .pl-wrap:not(.open) .pl-head h3{display:none;} .pj-layout.editing .pl-wrap:not(.open) .pl-head{justify-content:flex-start;} }
  @media (max-width:900px){ .pj-layout{grid-template-columns:minmax(0,1fr);} .pj-side{position:static; max-height:none; padding:0; -webkit-mask-image:none; mask-image:none;} }
  .pj-empty{background:var(--ink-2); border:1px dashed var(--line-strong); border-radius:10px; padding:44px 28px; text-align:center; color:var(--text-dim); line-height:1.6;}
  .pj-empty h3{margin:0 0 8px; font-family:'Fraunces'; font-size:22px; color:var(--paper); font-weight:560;}
  .pj-empty b{color:var(--amber);}
  .pj-actions{grid-column:span 6; display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding-top:6px; border-top:1px solid var(--line); margin-top:4px;}
  .pj-state .btns .pj-actions{grid-column:auto; display:contents; border:0; margin:0; padding:0;}
  .pj-actions .saved{font-size:12.5px; color:#4CC38A;}
  .pj-actions .note{font-size:12.5px; color:var(--text-dim);}
  .pl-wrap{margin:0 0 20px;}
  .pl-sec{margin:0 0 16px;}
  .pl-sec > h4{margin:0 0 8px; font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--text-dim); font-family:'Work Sans'; font-weight:700;}
  .pl-sec > h4 .n{opacity:.7; font-weight:400;}
  .pl-sec .pl-grid{gap:8px;}
  .pl-mus{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--text-dim);}
  .pl-mus i{width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-style:normal; font-family:'Fraunces'; font-weight:600; font-size:11px; color:#fff; flex:none;}
  .pl-mus b{color:var(--paper); font-weight:600;}
  .pl-ex{font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; border:1px dashed var(--line-strong); color:var(--text-dim); border-radius:4px; padding:0 5px; margin-left:6px; vertical-align:middle;}
  .pl-card.st-done{opacity:.8; cursor:pointer;}
  .pv-box{background:var(--ink-2); border:1px solid var(--line); border-radius:10px; padding:20px 22px; margin-bottom:16px;}
  .pv-head{display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:flex-start; margin-bottom:14px;}
  .pv-head h3{margin:0 0 4px; font-family:'Fraunces'; font-size:24px; font-weight:560;}
  .pv-head .pill{display:inline-block; font-size:10.5px; padding:4px 10px; border-radius:999px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap;}
  .pv-mus{display:flex; gap:12px; align-items:center; margin:0 0 14px; padding:12px 14px; border-radius:8px; background:rgba(246,242,234,.04);}
  .pv-mus .cr-av{width:42px; height:42px;}
  .pv-facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 14px;}
  .pv-facts span{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--text-dim); margin-bottom:2px;}
  .pv-act{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:6px;}
  .pv-act .big-cta{padding:11px 18px; font-size:13.5px;}
  .pl-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; flex-wrap:wrap;}
  .pl-head h3{margin:0; font-family:'Fraunces'; font-size:21px; font-weight:560;}
  .pl-head .n{color:var(--text-dim); font-family:'Work Sans'; font-size:13px; font-weight:400;}
  .pl-grid{display:flex; flex-direction:column; gap:10px;}
  .pl-empty{color:var(--text-dim); font-size:13px; padding:10px 2px; line-height:1.5;}
  .pl-x{position:absolute; top:8px; right:8px; width:24px; height:24px; border-radius:50%; border:0; background:rgba(255,255,255,.06); color:var(--text-dim); font-size:12px; cursor:pointer; opacity:.55; transition:all .2s;} .pl-card:hover .pl-x{opacity:1;} .pl-x:hover{background:var(--coral,#E1573D); color:#fff;} .pl-x.pl-ar{right:38px; font-size:12px;} .pl-x.pl-ar:hover{background:var(--amber,#E7A23B); color:#1a1208;}
  .pl-card{position:relative; background:var(--ink-2); border:1px solid var(--line); border-radius:10px; padding:13px 15px; cursor:pointer; display:flex; flex-direction:column; gap:7px; transition:transform .15s, border-color .15s;}
  .pl-card:hover{transform:translateY(-2px);}
  .pl-card .pl-t{font-weight:600; font-size:14.5px; color:var(--paper);}
  .pl-card .pl-m{font-size:12px; color:var(--text-dim); line-height:1.45;}
  .pl-card .pl-a{display:flex; gap:7px; flex-wrap:wrap; margin-top:2px;}
  .pl-card .pl-a button{font-size:11.5px; padding:5px 11px;}
  .pl-card.sel{box-shadow:0 0 0 2px var(--amber) inset;}
  .pl-pill{align-self:flex-start; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 9px; border-radius:999px;}
  /* brouillon : pointillés, atténué */
  .pl-card.st-draft{border:1.5px dashed var(--line-strong); background:transparent;}
  .st-draft .pl-pill{background:rgba(246,242,234,.1); color:var(--text-dim);}
  /* en attente de validation de l’artiste : ambre, trait plein, pastille qui pulse */
  .pl-card.st-pending{border-color:rgba(245,165,36,.55); background:rgba(245,165,36,.07); border-left:4px solid #F5A524;}
  .st-pending .pl-pill{background:rgba(245,165,36,.2); color:#F5A524;}
  .st-pending .pl-pill::before{content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:#F5A524; margin-right:6px; animation:blink 1.4s infinite;}
  /* validé : vert plein */
  .pl-card.st-accepted{border-color:rgba(76,195,138,.55); background:rgba(76,195,138,.08); border-left:4px solid #4CC38A;}
  .st-accepted .pl-pill{background:rgba(76,195,138,.2); color:#4CC38A;}
  .pl-card.st-declined{border-color:rgba(229,72,77,.45); border-left:4px solid #E5484D; opacity:.85;}
  .st-declined .pl-pill{background:rgba(229,72,77,.18); color:#E5484D;}
  .pl-card.st-done{opacity:.55; cursor:default;}
  .st-done .pl-pill{background:rgba(246,242,234,.1); color:var(--text-dim);}
  .cr-card.draft{border-left-color:var(--line-strong); border-style:dashed; background:transparent;}
  .pill.draft{background:rgba(246,242,234,.1); color:var(--text-dim);}
  .disc-strip{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; background:var(--ink-2); border:1px solid var(--line); border-left:3px solid var(--amber); border-radius:8px; padding:12px 16px; margin:0 0 18px; font-size:13.5px; color:var(--text-dim);}
  .disc-strip b{color:var(--paper);}
  .pp-list{display:flex; flex-direction:column; gap:8px; margin-bottom:6px;}
  .pp-item{text-align:left; background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); border-radius:8px; padding:10px 14px; cursor:pointer; font-family:'Work Sans'; font-size:14px;}
  .pp-item:hover{border-color:var(--amber);}
  .pp-item small{display:block; color:var(--text-dim); font-size:12px; margin-top:2px;}
  .cf-card{width:min(440px,100%);}
  .cf-body{padding:20px 22px 6px;}
  .cf-body h3{margin:0 0 8px; font-family:'Fraunces'; font-size:21px; font-weight:560;}
  .cf-body p{margin:0 0 12px; color:var(--text-dim); font-size:14px; line-height:1.5;}
  .cf-actions{display:flex; gap:10px; justify-content:flex-end; padding:12px 22px 20px; flex-wrap:wrap;}
  .cf-danger{background:var(--coral,#E1573D) !important; color:#fff !important; box-shadow:none !important;}
  .stars{display:flex; gap:6px; margin:4px 0 4px;}
  .stars button{background:none; border:none; font-size:34px; line-height:1; color:rgba(246,242,234,.2); cursor:pointer; padding:2px; transition:color .12s, transform .12s;}
  .stars button.on{color:var(--amber);}
  .stars button:hover{transform:scale(1.12);}
  .rt-label{font-size:12.5px; color:var(--text-dim); margin-bottom:10px; min-height:18px;}
  #rtComment{width:100%; min-height:90px; background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); border-radius:8px; padding:10px 12px; font-family:'Work Sans'; font-size:13.5px; resize:vertical;}
  .st-mini{color:var(--amber); letter-spacing:2px; font-size:14px;} .st-mini i{font-style:normal; color:rgba(246,242,234,.2);}
  .rate-box{margin-top:2px;} .rate-box blockquote{margin:8px 0 0; padding:10px 14px; border-left:3px solid var(--amber); background:rgba(231,162,59,.06); border-radius:0 8px 8px 0; font-size:14px; line-height:1.5;}
  .cr-cta{margin:0 0 20px;}
  .cr-empty{background:var(--ink-2); border:1px dashed var(--line-strong); border-radius:8px; padding:16px 18px; margin-bottom:22px; color:var(--text-dim); font-size:13.5px; line-height:1.5;}
  .cr-empty b{color:var(--paper);}
  .cr-sec{margin:0 0 22px;}
  .cr-sec h3{font-size:12px; letter-spacing:.07em; text-transform:uppercase; color:var(--text-dim); margin:0 0 10px; font-family:'Work Sans'; font-weight:700;}
  .cr-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:12px;}
  .cr-card{background:var(--ink-2); border:1px solid var(--line); border-left:3px solid var(--line-strong); border-radius:8px; padding:14px 16px; display:flex; flex-direction:column; gap:10px;}
  .cr-card.ok{border-left-color:#4CC38A;} .cr-card.wait{border-left-color:#F5A524;} .cr-card.ko{opacity:.65; border-left-color:#E5484D;}
  .cr-top{display:flex; gap:12px; align-items:center;}
  .cr-av{width:42px; height:42px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; font-family:'Fraunces'; font-weight:600; font-size:18px; color:#fff;}
  .cr-who{min-width:0; flex:1;}
  .cr-who b{display:block; font-size:15px; color:var(--paper);}
  .cr-who span{font-size:12px; color:var(--text-dim);}
  .cr-card .pill{margin:0; font-size:10.5px; padding:3px 9px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; border-radius:999px; white-space:nowrap;}
  .cr-proj{font-size:13.5px; line-height:1.45;}
  .cr-proj small{display:block; color:var(--text-dim); font-size:12px; margin-top:2px;}
  .cr-act{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
  .cr-act .big-cta{padding:10px 16px; font-size:13px;}
  .cr-note{font-size:12px; color:var(--text-dim);}
  .cr-ex{font-size:10px; letter-spacing:.06em; text-transform:uppercase; border:1px dashed var(--line-strong); color:var(--text-dim); border-radius:4px; padding:1px 6px; margin-left:6px;}
  @media (max-width:560px){ nav.tabs button{padding:8px 6px !important; font-size:11.5px !important;} nav.tabs{gap:0 !important;} }
  @media (max-width:385px){ nav.tabs button{padding:8px 3px !important; font-size:10.5px !important; letter-spacing:-.01em;} }
  .dj-panel.slim{padding:9px 14px; margin-bottom:10px;}
  .link-bar{display:flex; align-items:center; flex-wrap:wrap; gap:4px 9px; font-size:12.5px; color:var(--text-dim); margin-top:8px;}
  .dj-panel.slim .link-bar{margin-top:0;}
  .link-bar b{color:var(--paper);}
  .link-bar #liveWith{color:var(--paper);}
  .link-sep{opacity:.5;}
  .link-metrics{color:var(--text-dim); font-variant-numeric:tabular-nums;}
  .link-metrics:not(:empty)::before{content:'· '; opacity:.5;}
  .buf-btn{opacity:.22; transition:opacity 1s ease, color .2s, border-color .2s; position:absolute; top:46px; left:14px; z-index:7; display:flex; align-items:center; gap:8px; background:rgba(0,0,0,.45); color:var(--text-dim); border:1px solid rgba(255,255,255,.14); border-radius:999px; padding:4px 11px 4px 5px; font-size:11.5px; font-family:'Work Sans'; cursor:pointer;}
  .buf-btn.hot{opacity:1; transition:opacity .12s ease;}
  .buf-btn:hover{color:var(--paper); border-color:var(--amber);}
  .buf-btn b{color:var(--paper);}
  .buf-knob{position:relative; width:20px; height:20px; border-radius:50%; background:#2a2633; border:1px solid var(--line-strong); transition:transform .3s cubic-bezier(.3,1.4,.5,1); flex:none;}
  .buf-knob::after{content:''; position:absolute; left:50%; top:2px; width:2px; height:7px; margin-left:-1px; background:var(--amber); border-radius:2px;}
  .chat-bar{display:flex; gap:8px; align-items:center; margin-top:10px;}
  .chat-bar .panel-input{flex:1; padding:0; border:none;}
  .chat-bar .panel-input input{padding:10px 12px;}
  .chat-bar .panel-input button{padding:0 16px;}
  .chat-bar .panel-input{min-width:0; display:flex;} .chat-bar .panel-input input{min-width:0; flex:1;} .chat-bar .panel-input button{flex:none;} .chat-bar .hist-btn{flex:none;}
  .hist-btn{background:none; border:1px solid var(--line-strong); color:var(--text-dim); border-radius:6px; padding:10px 12px; font-size:12.5px; font-family:'Work Sans'; cursor:pointer; white-space:nowrap;}
  .hist-btn:hover{color:var(--paper); border-color:var(--amber);}
  .chat-bar{gap:2px;} .chat-bar .hist-btn{background:none; border:none; box-shadow:none; padding:8px; width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:var(--text-dim); opacity:.75; transition:color .15s, opacity .15s, background .15s;} .chat-bar .hist-btn:hover{color:var(--amber); opacity:1; background:rgba(231,162,59,.10); border:none;} .chat-bar .hist-btn .h-t{display:none;} .chat-bar .panel-input{min-width:0; flex:1 1 auto;}
  body.pub-viewer #camTog, body.pub-viewer #pip{display:none !important;}
  .hist-modal{position:fixed; inset:0; z-index:95; background:rgba(5,4,8,.6); display:none; align-items:center; justify-content:center; padding:20px;}
  .hist-modal.show{display:flex;}
  .hist-card{width:min(520px,100%); max-height:80vh; display:flex; flex-direction:column; background:var(--ink-2); border:1px solid var(--line-strong); border-radius:10px; overflow:hidden;}
  .hist-head{display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--line);}
  .hist-head button{background:none; border:none; color:var(--text-dim); font-size:16px; cursor:pointer;}
  .hist-body{padding:14px 16px; overflow-y:auto; display:flex; flex-direction:column; gap:10px; scrollbar-width:thin;}
  /* client : file de lecture (prioritaire) et timeline empilées dans le panneau de droite */
  .panel.client-split .panel-tabs{display:none;}
  .panel.client-split .panel-body.cs{display:flex;}
  .panel.client-split #panel-queue{flex:3 1 0;}
  .panel.client-split #panel-mytl{flex:2 1 0; border-top:1px solid var(--line);}
  .panel.client-split .panel-body.cs::before{content:attr(data-title); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); font-weight:700; flex:none;}
  @media (max-width:900px){
    .link-bar{font-size:11.5px; gap:3px 7px;}
    .dj-panel.slim{padding:8px 12px; margin-bottom:8px;}
    .chat-bar{position:sticky; bottom:0; z-index:20; margin:8px -4px 0; padding:8px 4px; background:linear-gradient(180deg, rgba(14,12,18,0), var(--ink) 30%);}
    .hist-btn{padding:10px 12px;}
    .hist-btn .h-t{display:none;}
    .buf-btn{top:38px; left:8px; right:auto; bottom:auto;}
    .chat-ov{width:62%; height:55%; padding-left:8px;}
    .chat-ov .ov-msg{font-size:12.5px;}
    html.is-client .chat-ov{bottom:56px; height:46%;}
  }
  .msg{font-size:13px; line-height:1.4;}
  .msg b{color:var(--amber); font-weight:600; margin-right:5px;}
  .msg.self b{color:var(--teal);}
  .panel-input{display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line);}
  .panel-input input{flex:1; background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); padding:9px 11px; border-radius:5px; font-family:'Work Sans'; font-size:13px;}
  .panel-input button{background:var(--amber); border:none; color:#1A140A; font-weight:700; padding:0 14px; border-radius:5px; cursor:pointer;}
  .track{display:flex; justify-content:space-between; align-items:center; font-size:13px; padding:9px 0; border-bottom:1px solid var(--line);}
  .track:last-child{border:none;}
  .track .votes{display:flex; align-items:center; gap:6px; color:var(--text-dim); font-size:12px;}
  .track .votes button{background:none; border:1px solid var(--line-strong); color:var(--text-dim); width:22px; height:22px; border-radius:4px; cursor:pointer;}

  .btn-amber{background:var(--amber); color:#1A140A;}
  .btn-outline{background:transparent; border:1px solid var(--line-strong); color:var(--paper);}

  /* écran de lancement animé */
  #splash{position:fixed; inset:0; z-index:100000; display:grid; place-items:center; background:radial-gradient(ellipse at 50% 40%, #2a1740 0%, #14121A 62%, #0b0a0f 100%); overflow:hidden; transition:opacity .5s ease; touch-action:manipulation; contain:strict;} #splash.out{opacity:0; pointer-events:none; visibility:hidden; transition:opacity .5s ease, visibility 0s .5s;}
  #splash .sp-beam{position:absolute; top:-8%; opacity:.0; width:34vmax; height:130vmax; transform-origin:50% 0; margin-left:-17vmax; opacity:.0; will-change:transform; animation:spBeam 5s ease-in-out infinite, spFadeIn 1.2s .1s forwards;}
  #splash .sp-beam:nth-child(1){left:18%; background:linear-gradient(180deg, rgba(231,162,59,.55), rgba(231,162,59,0) 70%); clip-path:polygon(47% 0, 53% 0, 100% 100%, 0 100%); --a:-26deg; --b:12deg;}
  #splash .sp-beam:nth-child(2){left:50%; background:linear-gradient(180deg, rgba(62,142,130,.6), rgba(62,142,130,0) 70%); clip-path:polygon(47% 0, 53% 0, 100% 100%, 0 100%); --a:14deg; --b:-16deg; animation-delay:-1.7s,.3s;}
  #splash .sp-beam:nth-child(3){left:82%; background:linear-gradient(180deg, rgba(225,87,61,.5), rgba(225,87,61,0) 70%); clip-path:polygon(47% 0, 53% 0, 100% 100%, 0 100%); --a:28deg; --b:-8deg; animation-delay:-3.1s,.5s;}
  @keyframes spBeam{0%,100%{transform:rotate(var(--a))} 50%{transform:rotate(var(--b))}} @keyframes spFadeIn{to{opacity:.55}}
  #splash .sp-glow{position:absolute; left:50%; top:46%; width:80vmin; height:80vmin; margin:-40vmin 0 0 -40vmin; border-radius:50%; background:radial-gradient(circle, rgba(231,162,59,.38), rgba(62,142,130,.16) 45%, rgba(0,0,0,0) 70%); animation:spGlow 2.4s ease-in-out infinite;} @keyframes spGlow{0%,100%{transform:scale(.9); opacity:.7} 50%{transform:scale(1.12); opacity:1}}
  #splash .sp-word{position:relative; display:flex; font-family:'Fraunces',Georgia,serif; font-weight:560; font-size:clamp(50px,16vw,130px); letter-spacing:-.01em; color:#F6F2EA; line-height:1;}
  #splash .sp-l{display:inline-block; opacity:0; transform:translateY(.55em) scale(.6) rotate(var(--r,-8deg)); animation:spLetter .75s cubic-bezier(.2,1.5,.4,1) forwards; animation-delay:calc(var(--i) * .09s + .25s);} #splash .sp-l.ia{font-style:italic; color:#7FD6C2;}
  @keyframes spLetter{to{opacity:1; transform:none}} @keyframes spBeat{0%,100%{transform:scale(1)} 50%{transform:scale(1.025)}}
  #splash .sp-shine{display:none!important; position:absolute; inset:0; display:flex; pointer-events:none; color:transparent; background:linear-gradient(105deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%) -150% 0/220% 100% no-repeat; -webkit-background-clip:text; background-clip:text; animation:spShine 1.5s 1.35s ease-in-out infinite;} @keyframes spShine{0%{background-position:150% 0} 55%,100%{background-position:-150% 0}}
  #splash .sp-tag{position:absolute; left:0; right:0; top:calc(50% + clamp(44px,11vw,90px)); text-align:center; font:400 clamp(13px,3.6vw,18px)/1.4 'Work Sans',sans-serif; color:#E7A23B; letter-spacing:.08em; opacity:0; animation:spTag .8s 1.5s forwards; padding:0 24px;} @keyframes spTag{to{opacity:.9}}
  #splash .sp-dot{position:absolute; bottom:-10px; width:6px; height:6px; border-radius:50%; background:#E7A23B; opacity:0; animation:spUp 4s linear infinite;} @keyframes spUp{0%{opacity:0; transform:translateY(0) scale(.6)} 15%{opacity:.9} 100%{opacity:0; transform:translateY(-105vh) scale(1.3)}}
  #splash .sp-skip{position:absolute; bottom:calc(18px + env(safe-area-inset-bottom)); left:0; right:0; text-align:center; font:500 11px 'Work Sans',sans-serif; letter-spacing:.12em; color:rgba(246,242,234,.35); text-transform:uppercase;}
  @media (prefers-reduced-motion:reduce){ #splash .sp-beam,#splash .sp-glow,#splash .sp-word,#splash .sp-shine{animation:none} }
  .ia-mark{
    background: linear-gradient(100deg, var(--amber) 15%, var(--teal) 45%, var(--amber) 75%);
    background-size:220% auto;
    -webkit-background-clip:text; background-clip:text; color:transparent;
    animation: shimmer 7s linear infinite;
    font-style:italic;
  }
  .lw{background:linear-gradient(100deg,#F8EBD6 0%,#F4C98A 24%,#EE9F45 38%,#FFF1D8 50%,#F8EBD6 64%,#F4C98A 100%); background-size:280% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:lwSweep 6s ease-in-out infinite;}
  .lv-tabs{display:flex; gap:8px; margin:0 0 12px; flex-wrap:wrap; align-items:center;} .lv-explore{margin-left:auto; border:0; border-radius:999px; padding:10px 18px; font:700 13.5px 'Work Sans',sans-serif; cursor:pointer; color:#1A140A; background:linear-gradient(135deg,var(--amber),#f3c26b); box-shadow:0 0 0 0 rgba(231,162,59,.5); animation:lvExp 2.2s infinite;} .lv-explore:hover{transform:translateY(-1px)} @keyframes lvExp{70%{box-shadow:0 0 0 10px rgba(231,162,59,0)}100%{box-shadow:0 0 0 0 rgba(231,162,59,0)}} .lv-tab{font:600 14px 'Work Sans',sans-serif; color:var(--text-dim); background:var(--ink-2); border:1px solid var(--line); border-radius:999px; padding:9px 16px; cursor:pointer; display:inline-flex; align-items:center;} .lv-tab b{margin-left:6px; background:var(--coral); color:#fff; border-radius:999px; padding:1px 8px; font-size:12px;} .lv-tab.on{background:var(--amber); color:#1A140A; border-color:var(--amber);} .lv-tab.on b{background:#1A140A; color:var(--amber);} .lv-cols.lv-now{display:block;} 
  @keyframes lwSweep{0%{background-position:100% center} 75%,100%{background-position:-20% center}}
  @media (prefers-reduced-motion:reduce){ .lw{animation:none; background-position:30% center} }
  @keyframes shimmer{ to { background-position: -220% center; } }

  .home-hero{padding:54px 0 46px; max-width:720px;}
  .home-eyebrow{font-size:13px; color:var(--text-dim); letter-spacing:.02em; margin-bottom:16px;}
  .home-title{font-size:clamp(46px,8vw,84px); font-weight:560; line-height:1; margin:0 0 22px;}
  .home-tag{font-size:16.5px; line-height:1.62; color:var(--text-dim); max-width:54ch; margin:0 0 30px;}
  .home-cta{display:flex; gap:12px; flex-wrap:wrap;}
  .home-features{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px; padding-bottom:26px; border-bottom:1px solid var(--line);}
  @media (max-width:820px){.home-features{grid-template-columns:1fr;}}
  .feat{background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:22px;}
  .feat h3{font-size:17px; margin:0 0 10px; font-weight:560;}
  .feat p{font-size:13.5px; color:var(--text-dim); line-height:1.55; margin:0;}
  .feat-ia{border-color:var(--amber-dim);}

  .queue-add{position:relative; margin-bottom:14px;}
  .queue-add input{width:100%; background:var(--ink); border:1px solid var(--line-strong); color:var(--paper); padding:9px 11px; border-radius:5px; font-family:'Work Sans'; font-size:13px;}
  .autocomplete-list{position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--ink-2); border:1px solid var(--line-strong); border-radius:6px; z-index:5; max-height:220px; overflow-y:auto; display:none;}
  .autocomplete-list.open{display:block;}
  .ac-item{padding:9px 12px; cursor:pointer; font-size:13px; border-bottom:1px solid var(--line);}
  .ac-item:last-child{border:none;}
  .ac-item:hover, .ac-item.active{background:rgba(231,162,59,.16);}
  .ac-item .ac-title{color:var(--text-dim); margin-left:4px;}
  .ac-item.free{color:var(--amber); font-style:italic;}
  .ac-item.ac-loading{color:var(--text-dim); font-style:italic; cursor:default; pointer-events:none;}

  footer{position:relative; text-align:center; padding:30px 70px; color:var(--text-dim); font-size:12px; border-top:1px solid var(--line);}


  /* ---- Réservation & session ---- */
  .pip{z-index:5; display:none; top:auto; bottom:14px; right:58px;}
  .pip.open{display:flex;}
  .cam-tog{position:absolute; bottom:14px; right:14px; z-index:6; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(20,18,26,.65); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; backdrop-filter:blur(6px);}
  .snd-tog{position:absolute; bottom:56px; right:14px; z-index:6; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(20,18,26,.65); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; font-size:16px; backdrop-filter:blur(6px);}
  .snd-tog.off{background:rgba(120,120,130,.55);}
  #demoStage .ds-snd,#demoStage .ds-live{display:none !important;}
  .cam-tog.live{background:#ff1f1f; border-color:#ff1f1f; color:#fff; box-shadow:0 0 0 3px rgba(255,31,31,.3);}
  .gate{position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:20px; background:rgba(11,10,14,.95);}
  .gate.hidden{display:none;}
  .gate h3{margin:0; font-family:'Fraunces'; font-size:22px; font-weight:560;}
  .gate p{margin:0; color:var(--text-dim); font-size:13.5px; max-width:380px; line-height:1.5;}
  .gate .btn{margin-top:6px;}
  .gate .btn-line{background:transparent; border:1px solid var(--line-strong); color:var(--text-dim);}
  #linkSlotClient{display:flex; align-items:center; gap:10px;} #linkSlotClient .link-bar{flex:1 1 auto; min-width:0;} #linkSlotClient .leave-btn{position:static; transform:none; margin-left:auto; flex:none; padding:7px 14px;}
  .leave-btn{position:absolute; top:10px; left:50%; transform:translateX(-50%); white-space:nowrap; z-index:7; background:rgba(225,87,61,.92); color:#fff; border:none; font-weight:700; font-size:12px; padding:9px 14px; border-radius:999px; cursor:pointer;}
  .dj-panel{background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:14px 16px; margin-bottom:14px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 16px;}
  .dj-panel-main{min-width:0; flex:1 1 260px;}
  .dj-panel-title{font-size:11px; letter-spacing:.06em; color:var(--text-dim); text-transform:uppercase; margin-bottom:6px;}
  .dj-panel-text{font-size:13.5px; line-height:1.5;}
  .dj-panel-text b{color:var(--paper);}
  .dj-panel-actions{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;}
  .dj-panel .btn{font-size:13px; padding:9px 16px;}
  .btn-outline-dark{background:transparent; border:1px solid var(--line-strong); color:var(--text-dim);}
  .live-toggle{border-radius:999px; padding:12px 22px; font-family:'Work Sans'; font-weight:700; font-size:13.5px; border:1.5px solid var(--line-strong); background:transparent; color:var(--text-dim); cursor:pointer; display:flex; align-items:center; gap:9px;}
  .live-toggle .led{width:9px; height:9px; border-radius:50%; background:var(--text-dim);}
  .live-toggle.on{background:rgba(225,87,61,.16); border-color:var(--coral); color:#fff;}
  .live-toggle.on .led{background:var(--coral); animation:blink 1.4s infinite;}
  .live-toggle:disabled{opacity:.4; cursor:not-allowed;}
  .toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(20px); background:var(--ink-2); border:1px solid var(--amber); color:var(--paper); padding:12px 18px; border-radius:10px; font-size:13.5px; z-index:100; opacity:0; transition:.25s; pointer-events:none; max-width:90vw; text-align:center;}
  .toast.show{opacity:1; transform:translateX(-50%) translateY(0);}
  .buffer-sel{background:var(--ink-2); color:var(--paper); border:1px solid var(--line-strong); border-radius:6px; padding:3px 6px; font-family:'Work Sans'; font-size:12.5px; margin-left:4px;}
  .queue-sync{font-size:11.5px; color:var(--text-dim); margin:8px 0 4px;}
  .queue-sync.on{color:var(--teal);} .queue-help{position:relative;display:flex;justify-content:flex-end;margin:-22px 0 6px;height:20px;pointer-events:none} .qh-q{pointer-events:auto;position:relative;width:20px;height:20px;border-radius:50%;border:1px solid var(--line-strong);color:var(--text-dim);font-size:12px;font-weight:700;display:grid;place-items:center;cursor:help;outline:none} .qh-q:hover,.qh-q:focus{border-color:var(--amber);color:var(--amber)} .qh-tip{display:none;position:absolute;right:0;top:26px;width:min(270px,70vw);z-index:30;background:var(--ink-2);border:1px solid var(--amber);border-radius:10px;padding:10px 12px;color:var(--paper);font-size:12px;font-weight:400;line-height:1.45;text-align:left;box-shadow:0 8px 24px rgba(0,0,0,.5)} .qh-q:hover .qh-tip,.qh-q:focus .qh-tip{display:block}
  .badge.online{border-color:var(--teal); color:var(--teal);}
  .badge.offline{border-color:var(--line-strong); color:var(--text-dim);}
  .dj-home{display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:40px; align-items:start; padding-top:8px;}
  @media (max-width:820px){.dj-home{grid-template-columns:minmax(0,1fr); gap:24px;}}
  .dj-stats{display:grid; gap:10px; margin:22px 0;}
  .dj-stats div{display:flex; justify-content:space-between; gap:12px; padding:12px 14px; background:var(--ink-2); border:1px solid var(--line); border-radius:8px; font-size:13.5px;}
  .dj-stats span{color:var(--text-dim);}
  .dj-stats b{color:var(--paper); font-weight:600; text-align:right;}

  /* ---- Adaptation automatique à la taille de l'écran ---- */
  @media (max-width:900px){
    header{padding-left:14px; padding-right:14px;}
    .bar{padding:12px 0;}
    nav.tabs{order:3; width:100%; overflow-x:auto;}
    nav.tabs button{flex:1; padding:8px 10px; font-size:12.5px; white-space:nowrap;}
    main{padding:22px 14px 70px;}
    .stage{max-height:none; min-height:0;}
  }
  @media (max-width:560px){
    .logo{font-size:19px;}
    .selection-flag{display:none;}
    .role-flag{right:8px;} footer{padding:26px 84px 26px 14px;}
    .av-dock{left:8px; bottom:8px; gap:6px; max-width:calc(100% - 100px);}
    .av-btn{width:32px; height:32px; font-size:14px;}
    .pip{width:84px; right:50px; bottom:8px; top:auto;}
    .cam-tog{right:8px; bottom:8px;}
    .snd-tog{right:8px; bottom:48px;}
    .pip-btn{font-size:9px; padding:5px 6px;}
    .stage-label{top:8px; left:8px; font-size:10.5px; padding:4px 9px;}
    .stage-meta{flex-direction:column; gap:4px;}
    .av-pop{width:170px;}
    .stage{aspect-ratio:4/3;}
    .gate{padding:10px; gap:6px;}
    .gate h3{font-size:17px;}
    .gate p{font-size:12.5px;}
    .gate .btn{padding:10px 16px; font-size:13px;}
  }
  .tl-models .tm-dj{border-color:var(--amber,#E7A23B);} .tl-models .tm-lbl{font-weight:600;}
  #progBar{display:none; position:absolute; top:52px; left:50%; transform:translateX(-50%); z-index:6; max-width:62%; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; background:rgba(20,18,26,.78); color:#fff; font-size:12px; backdrop-filter:blur(6px);}
  html.pub-live #progBar.has{display:flex;} #progBar b{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} #progBar small{opacity:.7; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  #progBar button{border:0; background:rgba(255,255,255,.16); color:#fff; border-radius:50%; width:22px; height:22px; cursor:pointer; flex:none;} html.is-client #progBar button{display:none;}
  .pf-livebar{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:10px 0; padding:10px 14px; border:1px solid var(--line, #34303f); border-radius:12px; background:rgba(255,255,255,.04); font-size:14px;} .pf-livebar>div{flex:1; min-width:180px;} .pf-livebar.on{border-color:var(--coral, #E1573D); background:rgba(225,87,61,.12);} .pf-livebar .dot{width:10px; height:10px; border-radius:50%; background:var(--coral, #E1573D); animation:pfp 1.2s infinite;} @keyframes pfp{50%{opacity:.35}}
  .lv-next{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 14px; margin-bottom:12px; border:1px solid var(--amber); border-radius:12px; background:rgba(231,162,59,.1); font-size:14px;} .lv-next small{display:block; color:var(--amber); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;}
  #agLiveNow:empty, #plannedTag:empty{display:none;} .ag-live{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 14px; margin:0 0 14px; border:1px solid var(--amber); border-radius:12px; background:rgba(231,162,59,.1);} .ag-live small{display:block; color:var(--amber); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;} #plannedTag{font-size:12.5px; margin-bottom:6px; color:var(--paper);}
  .badge-acc.venue{background:rgba(225,87,61,.18); color:#ff9b86; border-color:rgba(225,87,61,.5); font-weight:600;}
  .hm-modal{position:fixed; inset:0; z-index:9500; background:rgba(8,6,12,.7); display:none; align-items:center; justify-content:center; padding:14px;} .hm-modal.show{display:flex;}
  .hm-box{background:var(--ink-2,#1d1a25); border:1px solid var(--line,#3a3548); border-radius:14px; width:min(560px,100%); max-height:88vh; overflow:auto; padding:16px; color:var(--text,#f3efe8);}
  .hm-box h3{margin:0 0 8px; font-size:17px;} .hm-box .hm-sub{color:var(--text-dim,#b5aebf); font-size:13px; margin-bottom:10px;}
  .hm-row{display:flex; gap:6px; align-items:center; margin:5px 0;} .hm-row input,.hm-row select{background:transparent; border:1px solid var(--line,#3a3548); color:inherit; border-radius:8px; padding:6px 8px; font-size:13px; min-width:0;} .hm-row input{flex:1;}
  .hm-row button,.hm-act button{border:1px solid var(--line,#3a3548); background:transparent; color:inherit; border-radius:8px; padding:6px 10px; cursor:pointer; font-size:13px;}
  .hm-act{display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; margin-top:12px;} .hm-act .pri{background:#E7A23B; color:#1a1420; border-color:#E7A23B; font-weight:600;}
  .tr-card{border:1px solid var(--line,#3a3548); border-radius:10px; padding:10px; margin:10px 0;}
  .ct-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:10px 0;} .ct-m{border:1px solid var(--line,#3a3548); border-radius:10px; padding:8px; text-align:center;} .ct-m b{display:block; font-size:17px;} .ct-m small{color:var(--text-dim,#b5aebf); font-size:11px;}
  .ct-verdict{padding:10px 12px; border-radius:10px; font-weight:600; margin:8px 0;} .ct-verdict.good{background:rgba(70,180,110,.18);} .ct-verdict.mid{background:rgba(231,162,59,.2);} .ct-verdict.bad{background:rgba(225,87,61,.22);}
  .ct-recs{margin:6px 0 0 18px; padding:0; font-size:13.5px; line-height:1.45;} .ct-recs li{margin:4px 0;}
  /* téléphone en paysage : en-tête compact (logo + onglets sur une ligne) pour laisser la place à la fenêtre vidéo */
  @media (max-height:520px) and (orientation:landscape){
    header .bar{padding:4px 0; flex-wrap:nowrap; gap:10px;} header .brand{display:none;}
    nav.tabs{order:0; width:auto; flex:1; min-width:0;}
    nav.tabs button{padding:5px 8px; font-size:12px;}
    .logo{font-size:17px;}
    main{padding-top:10px;}
  }

#amDiscBar{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;padding:7px 14px;background:linear-gradient(90deg,rgba(231,162,59,.16),rgba(62,142,130,.14));border-bottom:1px solid var(--line-strong);font:500 13px 'Work Sans',sans-serif;color:var(--paper)}
#amDiscBar b{color:var(--amber)} #amDiscBar .db-a{display:flex;gap:8px;flex-wrap:wrap}
#amDiscBar button{background:none;border:1px solid var(--line-strong);color:var(--paper);border-radius:999px;padding:4px 12px;font:600 12px 'Work Sans',sans-serif;cursor:pointer} #amDiscBar button:hover{border-color:var(--amber);color:var(--amber)}
#amDiscBar button.p{background:var(--amber);border-color:var(--amber);color:#1a1408} #amDiscBar button.p:hover{color:#1a1408;filter:brightness(1.08)}
