/* =========================================================
   Barre d'outils d'analyse graphique (reproduction TradingView) — terminal SYVARN
   ========================================================= */
:root{--dtv-fond:#131722;--dtv-fond2:#1E222D;--dtv-trait:#2A2E39;--dtv-texte:#D1D4DC;--dtv-texte2:#B2B5BE;--dtv-sourd:#787B86;--dtv-bleu:#2962FF;--dtv-bleu2:#1E53E5;--dtv-survol:#2A2E39;--dtv-ombre:0 2px 4px rgba(0,0,0,.2),0 8px 24px rgba(0,0,0,.35)}
html[data-theme="light"]{--dtv-fond:#FFFFFF;--dtv-fond2:#FFFFFF;--dtv-trait:#E0E3EB;--dtv-texte:#131722;--dtv-texte2:#434651;--dtv-sourd:#787B86;--dtv-survol:#F0F3FA;--dtv-ombre:0 2px 4px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.14)}
#graphiques{flex-direction:row}
#colonne-graphiques{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative}
.legende-chart{left:.75rem}
#overlay.dtv-actif{pointer-events:auto;cursor:crosshair;touch-action:none}
#chart.dtv-point .tv-lightweight-charts canvas{cursor:none}
#chart.dtv-fleche .tv-lightweight-charts canvas{cursor:default}
#chart.dtv-gomme .tv-lightweight-charts canvas{cursor:cell}
#chart.dtv-demo .tv-lightweight-charts canvas{cursor:none}
/* --- barre verticale (52 px, hauteur du graphique) */
.dtv-barre{width:52px;flex:none;display:flex;flex-direction:column;align-items:center;padding:4px 0;background:var(--dtv-fond);border-right:1px solid var(--dtv-trait);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;user-select:none;z-index:6;position:relative}
.dtv-barre::-webkit-scrollbar{display:none}
.dtv-grp{position:relative;width:52px;display:flex;justify-content:center;margin:1px 0}
.dtv-btn{width:38px;height:38px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--dtv-texte2);transition:background .12s,color .12s;position:relative}
.dtv-btn svg{width:28px;height:28px}
.dtv-btn:hover{background:var(--dtv-survol);color:var(--dtv-texte)}
.dtv-btn.actif{color:var(--dtv-bleu)}
.dtv-btn.actif:hover{background:var(--dtv-survol)}
.dtv-btn.ouvert{background:var(--dtv-survol)}
.dtv-btn.seul{margin:1px 0}
#dtv-aimant.fort{color:var(--dtv-bleu)}#dtv-aimant.fort::after{content:"";position:absolute;right:6px;bottom:6px;width:6px;height:6px;border-radius:50%;background:var(--dtv-bleu)}
.dtv-chev{position:absolute;right:1px;top:0;height:38px;width:12px;display:flex;align-items:center;justify-content:center;color:var(--dtv-sourd);opacity:0;transition:opacity .12s;border-radius:0 6px 6px 0}
.dtv-chev svg{width:10px;height:10px}
.dtv-grp:hover .dtv-chev,.dtv-grp .dtv-btn.ouvert ~ .dtv-chev{opacity:1}
.dtv-chev:hover{color:var(--dtv-texte);background:var(--dtv-survol)}
.dtv-sepbarre{width:28px;height:1px;background:var(--dtv-trait);margin:5px 0}
.dtv-espace{flex:1}
.dtv-replier{width:38px;height:22px;margin:2px 0 0;border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--dtv-sourd);flex:none}
.dtv-replier svg{width:14px;height:14px;transform:rotate(180deg);transition:transform .2s}
.dtv-replier:hover{background:var(--dtv-survol);color:var(--dtv-texte)}
.dtv-barre.repliee{width:14px;padding:0}
.dtv-barre.repliee>*:not(.dtv-replier):not(.dtv-espace){display:none}
.dtv-barre.repliee .dtv-replier{width:14px;height:100%;margin:0;border-radius:0}
.dtv-barre.repliee .dtv-replier svg{transform:none}
/* --- couche flottante (menus, info-bulles) */
.dtv-couche{position:fixed;inset:0;pointer-events:none;z-index:70}
.dtv-couche>*{pointer-events:auto}
.dtv-tooltip{position:fixed;transform:translateY(-50%);background:var(--dtv-fond2);color:var(--dtv-texte);border:1px solid var(--dtv-trait);border-radius:4px;padding:5px 9px;font:12px/1.3 "Inter",system-ui,sans-serif;box-shadow:var(--dtv-ombre);white-space:nowrap;opacity:0;transition:opacity .1s;pointer-events:none}
.dtv-tooltip.on{opacity:1}
.dtv-menu{position:fixed;min-width:230px;max-width:340px;background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:6px;padding:6px 0;box-shadow:var(--dtv-ombre);font-family:"Inter",system-ui,sans-serif;max-height:min(84vh,720px);overflow-y:auto;animation:dtvOuvrir .1s ease-out}
@keyframes dtvOuvrir{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}
.dtv-titre{padding:8px 14px 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dtv-sourd)}
.dtv-sep{height:1px;background:var(--dtv-trait);margin:6px 0}
.dtv-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 14px 7px 12px;color:var(--dtv-texte);font-size:14px;text-align:left;cursor:pointer;position:relative}
.dtv-item:hover{background:var(--dtv-survol)}
.dtv-item.actif{color:var(--dtv-bleu)}
.dtv-item.danger:hover{color:#F23645}
.dtv-item .i{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--dtv-texte2)}
.dtv-item .i svg{width:28px;height:28px}
.dtv-item .i:empty{width:0}
.dtv-item .n{flex:1;white-space:nowrap}
.dtv-item kbd{font:12px "Inter",system-ui,sans-serif;color:var(--dtv-sourd);margin-left:12px}
.dtv-item .etoile{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:var(--dtv-sourd);opacity:0;border-radius:4px}
.dtv-item .etoile svg{width:18px;height:18px}
.dtv-item:hover .etoile,.dtv-item .etoile.on{opacity:1}
.dtv-item .etoile.on{color:#F5B400}
.dtv-item .etoile:hover{color:var(--dtv-texte);background:rgba(120,123,134,.2)}
.dtv-item .coche{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--dtv-bleu);flex:none}
.dtv-item .coche svg{width:18px;height:18px}
.dtv-item .chev{margin-left:auto;color:var(--dtv-sourd)}.dtv-item .chev svg{width:18px;height:18px}
.dtv-item .suppr{margin-left:auto;color:var(--dtv-sourd);display:inline-flex}.dtv-item .suppr svg{width:16px;height:16px}.dtv-item .suppr:hover{color:#F23645}
.dtv-item .lw{display:inline-flex;align-items:center;width:28px}.dtv-item .lw i{display:block;width:100%;background:currentColor;border-radius:2px}
.dtv-item .st{font-family:monospace;letter-spacing:-1px}
.dtv-bascule{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;font-size:14px;color:var(--dtv-texte);cursor:pointer}
.dtv-bascule:hover{background:var(--dtv-survol)}
.dtv-bascule .sw{width:34px;height:18px;border-radius:9px;background:var(--dtv-sourd);position:relative;flex:none;transition:background .15s}
.dtv-bascule .sw i{position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}
.dtv-bascule .sw.on{background:var(--dtv-bleu)}.dtv-bascule .sw.on i{left:18px}
/* --- sélecteur d'emojis / icônes */
.dtv-emojis{position:fixed;width:360px;background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:6px;box-shadow:var(--dtv-ombre);font-family:"Inter",system-ui,sans-serif;display:flex;flex-direction:column;max-height:min(80vh,640px)}
.dtv-emojis .onglets{display:flex;gap:2px;padding:6px 8px 0;border-bottom:1px solid var(--dtv-trait);flex:none}
.dtv-emojis .onglets button{width:36px;height:32px;font-size:18px;border-radius:4px 4px 0 0}
.dtv-emojis .onglets button:hover{background:var(--dtv-survol)}
.dtv-emojis .corps{flex:1;overflow-y:auto;padding:4px 8px;min-height:0}
.dtv-emojis .grille{display:grid;grid-template-columns:repeat(9,1fr);gap:2px}
.dtv-emojis .grille button{height:34px;font-size:22px;border-radius:4px;line-height:1}
.dtv-emojis .grille button:hover{background:var(--dtv-survol)}
.dtv-emojis .grille.icones button{color:var(--dtv-texte)}.dtv-emojis .grille.icones svg{width:22px;height:22px}
.dtv-emojis .pied{display:flex;gap:4px;padding:6px 8px;border-top:1px solid var(--dtv-trait);flex:none}
.dtv-emojis .pied button{padding:6px 12px;border-radius:4px;color:var(--dtv-texte2);font-size:14px;font-weight:600}
.dtv-emojis .pied button.actif{color:var(--dtv-bleu);box-shadow:inset 0 -2px 0 var(--dtv-bleu)}
/* --- sélecteur de couleurs */
.dtv-couleurs{position:fixed;background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:6px;box-shadow:var(--dtv-ombre);padding:10px;font-family:"Inter",system-ui,sans-serif;width:262px}
.dtv-couleurs .grille{display:grid;grid-template-columns:repeat(10,20px);gap:4px}
.dtv-couleurs .grille button{width:20px;height:20px;border-radius:4px;border:1px solid rgba(120,123,134,.25);transition:transform .1s}
.dtv-couleurs .grille button:hover{transform:scale(1.15)}
.dtv-couleurs .grille button.on{box-shadow:0 0 0 2px var(--dtv-fond2),0 0 0 4px var(--dtv-bleu)}
.dtv-couleurs .perso{display:flex;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--dtv-trait)}
.dtv-couleurs .plus{width:28px;height:28px;border-radius:4px;border:1px dashed var(--dtv-sourd);display:flex;align-items:center;justify-content:center;color:var(--dtv-texte2);cursor:pointer;position:relative}
.dtv-couleurs .plus svg{width:18px;height:18px}
.dtv-couleurs .plus input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.dtv-couleurs .apercu{width:28px;height:28px;border-radius:4px;border:1px solid var(--dtv-trait)}
.dtv-couleurs .opacite{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--dtv-sourd)}
.dtv-couleurs .opacite input{flex:1;accent-color:var(--dtv-bleu)}
.dtv-couleurs .opacite b{width:40px;text-align:right;color:var(--dtv-texte);font-weight:500}
/* --- barre flottante de l'objet */
.dtv-flottante{position:absolute;z-index:8;display:none;align-items:center;gap:2px;padding:4px;background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:6px;box-shadow:var(--dtv-ombre);font-family:"Inter",system-ui,sans-serif}
.dtv-flottante.on{display:flex}
.dtv-flottante .poignee{width:16px;height:30px;display:flex;align-items:center;justify-content:center;color:var(--dtv-sourd);cursor:grab}
.dtv-flottante .poignee svg{width:20px;height:20px}
.dtv-flottante .fb{height:30px;min-width:30px;padding:0 4px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--dtv-texte2);font-size:12px}
.dtv-flottante .fb svg{width:22px;height:22px}
.dtv-flottante .fb:hover{background:var(--dtv-survol);color:var(--dtv-texte)}
.dtv-flottante .fb.actif{color:var(--dtv-bleu)}
.dtv-flottante .fb.couleur{position:relative}
.dtv-flottante .fb.couleur i{position:absolute;left:5px;right:5px;bottom:3px;height:4px;border-radius:2px;border:1px solid rgba(120,123,134,.3)}
.dtv-flottante .lw{display:inline-flex;align-items:center;width:18px}.dtv-flottante .lw i{display:block;width:100%;background:currentColor;border-radius:2px}
.dtv-flottante .st{font-family:monospace;letter-spacing:-1px}
.dtv-flottante .fs{font-weight:600}
/* --- favoris flottants */
.dtv-favbarre{position:absolute;left:12px;top:36px;z-index:7;display:flex;align-items:center;gap:1px;padding:2px;background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:6px;box-shadow:var(--dtv-ombre)}
.dtv-favbarre .poignee{width:14px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--dtv-sourd);cursor:grab}
.dtv-favbarre .poignee svg{width:18px;height:18px}
.dtv-favbarre .dtv-btn{width:34px;height:34px}.dtv-favbarre .dtv-btn svg{width:26px;height:26px}
/* --- info-bulle des valeurs (appui long) */
.dtv-infobulle{position:absolute;z-index:8;display:none;grid-template-columns:auto auto;gap:2px 8px;padding:8px 10px;background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:6px;box-shadow:var(--dtv-ombre);font:12px "JetBrains Mono",monospace;color:var(--dtv-texte);pointer-events:none}
.dtv-infobulle.on{display:grid}
.dtv-infobulle b{grid-column:1/-1;font-weight:600;margin-bottom:2px}
.dtv-infobulle span{color:var(--dtv-sourd)}
/* --- éditeur de texte en place */
.dtv-editeur{position:absolute;z-index:9;background:var(--dtv-fond2);color:var(--dtv-texte);border:1px solid var(--dtv-bleu);border-radius:4px;padding:6px 8px;font:14px "Inter",system-ui,sans-serif;resize:both;box-shadow:var(--dtv-ombre);outline:none}
.dtv-editeur.cellule{padding:2px 6px;border-radius:0;resize:none}
/* --- boîte de réglages */
.dtv-dialogue-fond{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.35);display:grid;place-items:center;font-family:"Inter",system-ui,sans-serif}
.dtv-dialogue{width:min(460px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);background:var(--dtv-fond2);border:1px solid var(--dtv-trait);border-radius:8px;box-shadow:var(--dtv-ombre);display:flex;flex-direction:column;color:var(--dtv-texte)}
.dtv-dialogue .tete{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 8px}
.dtv-dialogue h3{font-size:18px;font-weight:600;margin:0;color:var(--dtv-texte);font-family:inherit;letter-spacing:0}
.dtv-dialogue .fermer{color:var(--dtv-sourd);width:28px;height:28px;border-radius:4px;display:grid;place-items:center}
.dtv-dialogue .fermer:hover{background:var(--dtv-survol);color:var(--dtv-texte)}
.dtv-dialogue .fermer svg{width:22px;height:22px}
.dtv-dialogue .onglets{display:flex;gap:18px;padding:0 18px;border-bottom:1px solid var(--dtv-trait)}
.dtv-dialogue .onglets button{padding:8px 0 10px;font-size:14px;font-weight:600;color:var(--dtv-sourd);position:relative}
.dtv-dialogue .onglets button.actif{color:var(--dtv-texte)}
.dtv-dialogue .onglets button.actif::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--dtv-bleu);border-radius:2px}
.dtv-dialogue .corps{flex:1;overflow-y:auto;padding:12px 18px;min-height:0}
.dtv-dialogue .rang{display:grid;grid-template-columns:150px 1fr;gap:8px 12px;align-items:center;padding:6px 0;font-size:14px}
.dtv-dialogue .rang label{color:var(--dtv-texte);font-size:14px}
.dtv-dialogue .rang .v{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.dtv-dialogue input[type=text],.dtv-dialogue input[type=number],.dtv-dialogue input[type=datetime-local],.dtv-dialogue select,.dtv-dialogue textarea{background:var(--dtv-fond);border:1px solid var(--dtv-trait);color:var(--dtv-texte);border-radius:4px;padding:6px 8px;font:14px "Inter",system-ui,sans-serif;min-width:0}
.dtv-dialogue input[type=number]{width:96px}
.dtv-dialogue input[type=text],.dtv-dialogue textarea{width:100%}
.dtv-dialogue input:focus,.dtv-dialogue select:focus,.dtv-dialogue textarea:focus{outline:none;border-color:var(--dtv-bleu)}
.dtv-dialogue input[type=checkbox]{width:16px;height:16px;accent-color:var(--dtv-bleu)}
.dtv-dialogue .sw{width:28px;height:28px;border-radius:4px;border:1px solid var(--dtv-trait);display:grid;place-items:center;background:var(--dtv-fond)}
.dtv-dialogue .sw i{display:block;width:18px;height:18px;border-radius:3px}
.dtv-dialogue .niveaux .v{display:block}
.dtv-dialogue .niv{display:flex;align-items:center;gap:8px;padding:3px 0}
.dtv-dialogue .niv input[type=number]{width:84px}.dtv-dialogue .niv .val{width:84px;font-family:"JetBrains Mono",monospace;font-size:13px}
.dtv-dialogue .niv .x{color:var(--dtv-sourd);display:inline-flex}.dtv-dialogue .niv .x svg{width:16px;height:16px}.dtv-dialogue .niv .x:hover{color:#F23645}
.dtv-dialogue .cellules table{border-collapse:collapse}.dtv-dialogue .cellules td{padding:2px}.dtv-dialogue .cellules input{width:80px}
.dtv-dialogue .tiret{color:var(--dtv-sourd)}
.dtv-dialogue .stats{display:grid;gap:4px}.dtv-dialogue .stats label{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--dtv-texte)}
.dtv-dialogue .corps>.dtv-titre{padding:12px 0 2px}
.dtv-dialogue .note{color:var(--dtv-sourd);font-size:13px;padding:8px 0}
.dtv-dialogue .pied{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--dtv-trait)}
.dtv-dialogue .pied .espace{flex:1}
.dtv-dialogue .pied button,.dtv-dialogue .secondaire.petit{padding:8px 16px;border-radius:20px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:4px}
.dtv-dialogue .secondaire{border:1px solid var(--dtv-trait);color:var(--dtv-texte)}
.dtv-dialogue .secondaire:hover{background:var(--dtv-survol)}
.dtv-dialogue .secondaire.petit{padding:4px 10px;font-size:12px;margin-top:6px}
.dtv-dialogue .primaire{background:var(--dtv-bleu);color:#fff}
.dtv-dialogue .primaire:hover{background:var(--dtv-bleu2)}
.dtv-dialogue .pied .modele svg{width:16px;height:16px}
/* --- mobile : barre horizontale en bas du graphique */
@media(max-width:40rem){
  #graphiques{flex-direction:column-reverse}
  .dtv-barre{width:100%;height:46px;flex-direction:row;padding:0 4px;border-right:0;border-top:1px solid var(--dtv-trait);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;align-items:center}
  .dtv-grp{width:auto;margin:0 1px}
  .dtv-chev{opacity:1;right:auto;left:0;right:0;top:auto;bottom:0;height:8px;width:auto}
  .dtv-sepbarre{width:1px;height:26px;margin:0 4px}
  .dtv-espace{display:none}
  .dtv-replier{width:22px;height:38px;margin:0 0 0 2px}
  .dtv-replier svg{transform:rotate(90deg)}
  .dtv-barre.repliee{width:100%;height:14px;padding:0}
  .dtv-barre.repliee .dtv-replier{width:100%;height:14px}
  .dtv-barre.repliee .dtv-replier svg{transform:rotate(-90deg)}
  .dtv-menu{max-width:calc(100vw - 16px)}
  .dtv-emojis{width:calc(100vw - 16px)}
  .dtv-dialogue .rang{grid-template-columns:1fr}
}
