/* TYMPANO — habillage. Deux ambiances : sombre de scène (défaut) et clair studio. */
:root{
  --fond:#0c0c0f; --panneau:#16161c; --panneau2:#1f1f27;
  --texte:#f0eee9; --texte2:#8e8e96; --bronze:#d08a3e; --bronze-vif:#e89b45;
  --vert:#3fae6f; --rouge:#d05045;
  --drums:#d08a3e; --bass:#7a9e6d; --vocals:#c4788f; --other:#6d8fb8;
  --onde:#3b3b46; --tiret:#3a3a45; --jauge-fond:#26262e; --switch-fond:#33333d;
  --batteur-a:#241a10; --batteur-b:#1a1410; --toast-fond:#1f1f27;
}
:root[data-theme="light"]{
  --fond:#f6f4f0; --panneau:#ffffff; --panneau2:#ece9e3;
  --texte:#1b1b1e; --texte2:#71716f; --bronze:#b8722c; --bronze-vif:#a4621f;
  --vert:#2e7d4f; --rouge:#b3372e;
  --drums:#b8722c; --bass:#5d7f51; --vocals:#a75d76; --other:#4f739c;
  --onde:#c9c5bc; --tiret:#c4c0b8; --jauge-fond:#e3e0d9; --switch-fond:#c4c0b8;
  --batteur-a:#f0e3d2; --batteur-b:#ede4d6; --toast-fond:#2a2a2e;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]):not([data-theme="light"]){
    --fond:#f6f4f0; --panneau:#ffffff; --panneau2:#ece9e3;
    --texte:#1b1b1e; --texte2:#71716f; --bronze:#b8722c; --bronze-vif:#a4621f;
    --vert:#2e7d4f; --rouge:#b3372e;
    --drums:#b8722c; --bass:#5d7f51; --vocals:#a75d76; --other:#4f739c;
    --onde:#c9c5bc; --tiret:#c4c0b8; --jauge-fond:#e3e0d9; --switch-fond:#c4c0b8;
    --batteur-a:#f0e3d2; --batteur-b:#ede4d6; --toast-fond:#2a2a2e;
  }
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:Inter,-apple-system,"Segoe UI",sans-serif;background:var(--fond);color:var(--texte);line-height:1.5;font-size:15px;overflow:hidden}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}

.ecran{position:absolute;inset:0;display:none;flex-direction:column;padding:calc(14px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto;overflow-y:auto}
.ecran.actif{display:flex}

.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0}
.groupe-icones{display:flex;gap:8px}
.wordmark{font-weight:800;letter-spacing:.24em;font-size:15px}
.wordmark span{color:var(--bronze)}
.wordmark .version{color:var(--texte2);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:10px;font-weight:500;letter-spacing:.02em;margin-left:10px;vertical-align:2px}
.icone{width:38px;height:38px;border-radius:10px;background:var(--panneau2);display:flex;align-items:center;justify-content:center;color:var(--texte2);font-size:17px}

/* Bibliothèque */
.liste{flex-shrink:0}
.morceau{display:flex;align-items:center;gap:14px;background:var(--panneau);border-radius:14px;padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:background .15s;width:100%;text-align:left}
.morceau:active{background:var(--panneau2)}
.pochette{width:46px;height:46px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:19px;background:linear-gradient(135deg,#2a2118,#191410);color:var(--bronze)}
.morceau .t{font-weight:600;font-size:14.5px}
.morceau .a{color:var(--texte2);font-size:12.5px}
.morceau .etat{margin-left:auto;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:10px;color:var(--vert);white-space:nowrap;flex-shrink:0}
.morceau .suppr{color:var(--texte2);font-size:15px;padding:6px;flex-shrink:0}
.vide{color:var(--texte2);text-align:center;padding:40px 20px;font-size:14px}
.stockage{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;color:var(--texte2);padding:10px 4px}
.import{margin-top:auto;border:1.5px dashed var(--tiret);border-radius:16px;padding:24px;text-align:center;color:var(--texte2);font-size:13.5px;cursor:pointer;display:block;flex-shrink:0}
.import strong{display:block;color:var(--texte);font-size:15px;margin-bottom:3px}
.import.survol{border-color:var(--bronze);color:var(--texte)}

/* Mode + séparation */
.centre{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}
.titre-morceau{font-weight:700;font-size:19px}
.soustexte{color:var(--texte2);font-size:13.5px;max-width:320px}
.soustexte.petit{font-size:12px}
.choix-mode{width:100%;max-width:380px;background:var(--panneau);border-radius:14px;padding:16px 18px;text-align:left;display:flex;flex-direction:column;gap:3px}
.choix-mode:active{background:var(--panneau2)}
.choix-mode strong{font-size:15.5px}
.choix-mode span{color:var(--texte2);font-size:12.5px}
.choix-mode .duree-estimee{color:var(--bronze);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px}
.anneau{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--bronze) 0deg,var(--jauge-fond) 0deg);display:flex;align-items:center;justify-content:center}
.anneau .coeur{width:126px;height:126px;border-radius:50%;background:var(--fond);display:flex;flex-direction:column;align-items:center;justify-content:center}
.anneau .pct{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:26px;font-weight:700}
.anneau .reste{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:10.5px;color:var(--texte2);padding:0 12px}
.phases{width:100%;max-width:380px;display:flex;flex-direction:column;gap:8px;margin-top:6px}
.phase{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--texte2);background:var(--panneau);border-radius:10px;padding:10px 14px;text-align:left}
.phase.fait{color:var(--texte)}
.phase.fait .dot{background:var(--vert)}
.phase.actif{color:var(--texte);background:var(--panneau2)}
.phase.actif .dot{background:var(--bronze);animation:pulse 1.2s infinite}
.dot{width:8px;height:8px;border-radius:50%;background:var(--switch-fond);flex-shrink:0}
@keyframes pulse{50%{opacity:.35}}

/* Lecteur */
.now{margin-bottom:12px;flex-shrink:0}
.now .t{font-weight:700;font-size:18px}
.now .a{color:var(--texte2);font-size:13px}
.wave{position:relative;height:72px;background:var(--panneau);border-radius:12px;overflow:hidden;margin-bottom:6px;flex-shrink:0;cursor:pointer;touch-action:none}
.wave canvas{position:absolute;inset:0;width:100%;height:100%}
.curseur{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--bronze-vif);pointer-events:none}
.zoneAB{position:absolute;top:0;bottom:0;background:rgba(208,138,62,.13);pointer-events:none}
.repere{position:absolute;top:2px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:9px;color:var(--bronze);background:var(--fond);padding:0 4px;border-radius:3px}
#repA{left:2px}#repB{right:2px}
.temps{display:flex;justify-content:space-between;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;color:var(--texte2);margin-bottom:12px;padding:0 2px;flex-shrink:0}

.pistes{display:flex;flex-direction:column;gap:7px;margin-bottom:12px;flex-shrink:0}
.piste{display:flex;align-items:center;gap:11px;background:var(--panneau);border-radius:12px;padding:9px 13px;transition:opacity .2s}
.piste .ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.piste .nom{font-weight:600;font-size:13px;width:88px;flex-shrink:0}
.piste.sous{margin-left:24px;padding:6px 11px;background:var(--panneau);filter:brightness(.96)}
.piste.sous .nom{font-size:12px;font-weight:500}
.piste.sous .ic{width:26px;height:26px;font-size:12px;border-radius:7px}
.piste.sous .btn-rond{width:28px;height:28px}
.jauge{flex:1;height:20px;border-radius:10px;background:var(--jauge-fond);position:relative;cursor:pointer;overflow:hidden;touch-action:none}
.jauge .niveau{position:absolute;left:0;top:0;bottom:0;border-radius:10px;opacity:.85;transition:width .06s}
.jauge .pctv{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:9.5px;color:var(--texte2);pointer-events:none}
.btn-rond{width:32px;height:32px;border-radius:9px;background:var(--panneau2);color:var(--texte2);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:10.5px;font-weight:700;flex-shrink:0}
.btn-rond.actif{background:var(--bronze);color:#151009}
.piste.coupee{opacity:.45}
.piste.coupee .jauge .niveau{width:0!important}
.deplier{margin-left:2px;color:var(--texte2);font-size:12px;padding:4px 6px}

.mode-batteur{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,var(--batteur-a),var(--batteur-b));border-radius:12px;padding:12px 16px;margin-bottom:12px;flex-shrink:0;width:100%;text-align:left}
.mode-batteur .txt{font-weight:700;font-size:14px;display:flex;flex-direction:column}
.mode-batteur .sub{font-size:11.5px;color:var(--texte2);font-weight:400}
.switch{width:46px;height:26px;border-radius:13px;background:var(--switch-fond);position:relative;transition:background .2s;flex-shrink:0;display:inline-block}
.switch::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;transition:left .2s}
.switch.on{background:var(--bronze)}
.switch.on::after{left:23px}

.ligne-outils{display:flex;gap:8px;margin-bottom:12px;flex-shrink:0}
.outil{flex:1;background:var(--panneau);border-radius:12px;padding:9px 8px;text-align:center}
.outil .val{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:14px;font-weight:700;color:var(--bronze-vif);display:block}
.outil .lab{font-size:10px;color:var(--texte2);letter-spacing:.05em;text-transform:uppercase;font-family:"JetBrains Mono",ui-monospace,monospace;margin-top:2px;display:block}
.outil.actif{background:var(--panneau2);box-shadow:inset 0 0 0 1.5px var(--bronze)}
.tempo-panneau{background:var(--panneau);border-radius:12px;padding:16px;margin-bottom:12px;flex-shrink:0}
.tempo-panneau input[type=range]{width:100%;accent-color:var(--bronze)}
.tempo-marques{display:flex;justify-content:space-between;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:10px;color:var(--texte2);margin-top:6px}
.tempo-marques span{cursor:pointer;padding:2px 4px}

.transport{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:auto;padding-top:8px;flex-shrink:0}
.t-btn{width:52px;height:52px;border-radius:50%;background:var(--panneau2);color:var(--texte);font-size:17px}
.t-btn span{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;font-weight:700}
.t-play{width:74px;height:74px;border-radius:50%;background:var(--bronze);color:#151009;font-size:27px;box-shadow:0 8px 28px rgba(208,138,62,.35)}
.t-play:active{transform:scale(.96)}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--toast-fond);color:#f0eee9;padding:11px 20px;border-radius:12px;font-size:13.5px;max-width:88vw;text-align:center;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.5)}

@media (min-width:900px){
  .ecran{max-width:640px}
}
