/* ═══════════════════════════════════════════════════════════════════════════
   GUITAR THEORY — COMPOSANTS HARMONIE (index.html uniquement)
   Diagrammes d'accords, modal zoom, modal export, shapes grid
   Dépend de theme.css
═══════════════════════════════════════════════════════════════════════════ */

/* ── Diagrammes de positions ─────────────────────────────────────────────── */
#h-pos-diagrams{padding:8px 12px 120px}
.chord-section{border-radius:6px;overflow:hidden}
.chord-header{background:var(--s2);padding:8px 14px;display:flex;align-items:center;gap:8px;border:1px solid var(--brd);border-radius:6px 6px 0 0;border-bottom:none}
.chord-name{font-size:.82rem;font-weight:700;color:var(--neon2);letter-spacing:.06em;font-family:'Space Mono',monospace}
.chord-formula{font-size:.65rem;color:var(--mut);font-family:'Space Mono',monospace}
.shape-comment{font-size:.58rem;color:#e67e22;font-family:'Space Mono',monospace;letter-spacing:.04em;margin-top:4px;font-style:italic}
.shape-comment.linkable{cursor:pointer;text-decoration:underline dotted;transition:color .15s}
.shape-comment.linkable:hover{color:var(--neon2)}
.shape-sub{font-size:.55rem;font-family:'Space Mono',monospace;letter-spacing:.03em;margin-top:2px;font-style:normal}
.shape-sub a,.shape-sub span.sub-link{color:var(--neon2);cursor:pointer;text-decoration:underline dotted;transition:color .15s}
.shape-sub a:hover,.shape-sub span.sub-link:hover{color:var(--neon)}
.shape-sub .sub-tri{color:#9b59b6}
.shape-sub .sub-tri:hover{color:#c39bd3}
.shape-nav{display:flex;align-items:center;gap:6px;margin-top:6px}
.shape-nav button{background:var(--s2);border:1px solid var(--brd);color:var(--neon2);width:24px;height:24px;border-radius:3px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;transition:all .15s}
.shape-nav button:hover{border-color:var(--neon2);background:var(--s1)}
.shape-nav .nav-count{font-size:.6rem;color:var(--mut);font-family:'Space Mono',monospace;min-width:28px;text-align:center}
@media(max-width:600px){.shape-nav button{width:36px;height:36px;font-size:1rem}.shape-nav .nav-count{font-size:.7rem}}

/* ── Shapes grid ─────────────────────────────────────────────────────────── */
.shapes-grid{display:flex;flex-wrap:wrap;gap:10px;padding:10px;background:var(--s1);border:1px solid var(--brd);border-radius:0 0 6px 6px}
.shape-cell{flex:0 0 calc(25% - 8px);max-width:calc(25% - 8px)}
@media(max-width:900px){.shape-cell{flex:0 0 calc(50% - 6px);max-width:calc(50% - 6px)}}
@media(max-width:500px){.shape-cell{flex:0 0 100%;max-width:100%}}
.shape-cell{background:var(--s2);border:1px solid var(--brd);border-radius:5px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:border-color .15s;box-sizing:border-box}
.shape-cell:hover{border-color:var(--neon2)}
.shape-cell.empty-cell{opacity:.25;pointer-events:none}
.shape-cell .mini-fb{cursor:zoom-in}
.shape-label{font-size:.75rem;font-weight:700;color:var(--neon2);font-family:'Space Mono',monospace;text-align:center;width:100%;letter-spacing:.04em}
.shape-corde{font-size:.52rem;color:var(--mut);font-family:'Space Mono',monospace;text-align:center;width:100%;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.mini-fb{display:flex;justify-content:center;width:100%;padding:4px 0}
.mini-fb svg{display:block;width:100%;height:auto}
@media(max-width:600px){
  .mini-fb svg{min-height:180px}
  .shape-label{font-size:.72rem;margin-bottom:2px}
  .shape-comment{font-size:.62rem}
  .shape-nav button{width:40px;height:40px;font-size:1.1rem}
  .shape-nav .nav-count{font-size:.68rem;min-width:36px}
  .shape-cell.empty-cell{opacity:.15;min-height:60px}
}

/* ── Modal zoom diagramme ────────────────────────────────────────────────── */
#diag-zoom-overlay{display:none;position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.75);align-items:center;justify-content:center;padding:20px}
#diag-zoom-overlay.open{display:flex}
#diag-zoom-box{background:var(--s1);border:1px solid var(--neon2);border-radius:8px;padding:16px;width:min(480px,95vw);max-height:92vh;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:10px;position:relative}
#diag-zoom-close{position:absolute;top:8px;right:10px;background:transparent;border:none;color:var(--mut);font-size:1.4rem;cursor:pointer;line-height:1;transition:color .15s}
#diag-zoom-close:hover{color:var(--neon)}
#diag-zoom-label{font-size:.75rem;color:var(--neon2);font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:.08em;text-align:center}
#diag-zoom-svg{width:100%}
#diag-zoom-svg svg{width:100%;height:auto;display:block}
#diag-zoom-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
#diag-zoom-legend .dl{font-size:.68rem}
#diag-zoom-legend .dlc{width:11px;height:11px}
#diag-zoom-comment{font-size:.65rem;color:#e67e22;font-style:italic;text-align:center;cursor:default}
#diag-zoom-nav{display:flex;align-items:center;gap:10px}
#diag-zoom-nav button{background:var(--s2);border:1px solid var(--brd);color:var(--neon2);width:40px;height:40px;border-radius:4px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .15s}
#diag-zoom-nav button:hover{border-color:var(--neon2);background:var(--s1)}
#diag-zoom-nav .nav-count{font-size:.7rem;color:var(--mut);font-family:'Space Mono',monospace;min-width:36px;text-align:center}

/* ── Modal export diagrammes ─────────────────────────────────────────────── */
#export-diag-overlay{display:none;position:fixed;inset:0;z-index:9100;background:rgba(0,0,0,.8);align-items:flex-start;justify-content:center;padding:16px;overflow-y:auto}
#export-diag-overlay.open{display:flex}
#export-diag-box{background:var(--s1);border:1px solid var(--neon2);border-radius:8px;padding:16px;width:min(760px,98vw);position:relative;margin:auto}
#export-diag-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--brd)}
#export-diag-title{font-size:.78rem;color:var(--neon);font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:.08em}
#export-diag-actions{display:flex;gap:8px;align-items:center}
.exp-btn{padding:7px 14px;font-size:.65rem;border-radius:4px;cursor:pointer;font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:.05em;transition:all .2s;border:1px solid var(--brd);background:var(--s2);color:var(--txt2)}
.exp-btn:hover{border-color:var(--neon2);color:var(--neon2)}
.exp-btn.primary{border-color:var(--neon);color:var(--neon);background:rgba(var(--neon-rgb,0,255,102),.06)}
.exp-btn.primary:hover{background:rgba(var(--neon-rgb,0,255,102),.12)}
.exp-btn.close-btn{color:var(--mut)}
.exp-renv-section{margin-bottom:16px}
.exp-renv-label{font-size:.6rem;color:var(--neon2);font-family:'Space Mono',monospace;text-transform:uppercase;letter-spacing:.1em;padding:5px 0 8px;border-bottom:1px solid var(--brd);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}
.exp-renv-label button{font-size:.55rem;color:var(--mut);background:transparent;border:1px solid var(--brd);border-radius:3px;padding:2px 8px;cursor:pointer;font-family:'Space Mono',monospace}
.exp-renv-label button:hover{color:var(--neon2);border-color:var(--neon2)}
.exp-grid{display:flex;flex-wrap:wrap;gap:8px}
.exp-cell{flex:0 0 calc(25% - 6px);max-width:calc(25% - 6px);background:var(--s2);border:2px solid var(--brd);border-radius:5px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:border-color .15s,opacity .15s;position:relative;box-sizing:border-box}
@media(max-width:600px){.exp-cell{flex:0 0 calc(50% - 4px);max-width:calc(50% - 4px)}}
.exp-cell.checked{border-color:var(--neon);background:rgba(var(--neon-rgb,0,255,102),.04)}
.exp-cell.unchecked{opacity:.4;border-color:var(--brd)}
.exp-cell-check{position:absolute;top:5px;right:5px;width:16px;height:16px;border-radius:50%;border:2px solid var(--neon);background:var(--neon);display:flex;align-items:center;justify-content:center;font-size:.6rem;color:#000;font-weight:700}
.exp-cell.unchecked .exp-cell-check{background:transparent;color:transparent}
.exp-cell-label{font-size:.62rem;color:var(--neon2);font-family:'Space Mono',monospace;text-align:center;font-weight:700}
.exp-cell-corde{font-size:.5rem;color:var(--mut);font-family:'Space Mono',monospace;text-transform:uppercase}
#export-diag-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:10px;border-top:1px solid var(--brd)}
#export-sel-count{font-size:.62rem;color:var(--mut);font-family:'Space Mono',monospace}
