:root{--bg: #f7f9fc;--fg: #0f172a;--card: #ffffff;--muted: #64748b;--accent: #2563eb;--border: #e5e7eb}:root[data-theme=dark]{--bg: #0b0f14;--fg: #e7eef7;--card: #0f1620;--muted: #9fb0c7;--accent: #60a5fa;--border: #223041}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.container{max-width:1100px;margin:0 auto;padding:16px}.header{margin-bottom:8px}.title{margin:0;font-size:28px;font-weight:800}.subtitle{margin:4px 0 0;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 8px}.toolbar-items{display:flex;align-items:center;gap:12px;flex:1 1 auto}.grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:8px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 1px 2px #00000008}.row{display:flex;align-items:center;gap:10px}.ml-auto{margin-left:auto}label{font-weight:600;color:var(--fg)}select,input[type=number],input[type=range]{background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:6px 8px}input[type=range]{height:32px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:10px;padding:8px 12px;cursor:pointer}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.sm{padding:6px 10px;font-size:.9rem}.status{margin:10px 0 60px;color:var(--muted);font-size:14px}.hamburger{display:none;width:40px;height:40px;padding:8px;border:1px solid var(--border);background:var(--card);border-radius:10px;align-items:center;justify-content:center;gap:4px}.hamburger span{display:block;width:20px;height:2px;background:var(--fg)}.drawer{position:fixed;top:0;right:0;width:min(85vw,360px);height:100dvh;background:var(--card);color:var(--fg);border-left:1px solid var(--border);box-shadow:-8px 0 24px #0000001a;transform:translate(100%);transition:transform .2s ease;z-index:60;display:flex;flex-direction:column;padding:12px}.drawer[data-open]{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:12px}.drawer-content{display:grid;gap:10px;overflow:auto;padding-bottom:24px}@media (max-width: 900px) and (orientation: landscape){.hamburger{display:inline-flex}.toolbar-items{display:none}.toolbar{gap:8px}.hamburger{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:80;box-shadow:0 4px 12px #00000026}}.logo-button{background:none;border:none;padding:0;margin-left:auto;cursor:pointer;display:flex;align-items:center;justify-content:center}.logo-icon{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));transition:transform .15s ease}.logo-button:active .logo-icon{transform:scale(.95)}@media (max-width: 820px) and (orientation: landscape){.logo-button{position:fixed;top:10px;right:10px;z-index:9999;background:#00000040;padding:6px;border-radius:8px}.logo-icon{width:36px;height:36px}}#fretboardViewport{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x pinch-zoom;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:#00000005;position:relative;width:100%}#fretboardScaler{display:inline-block;transform-origin:top left}#fretboardViewport>#fretboardScaler>.fretboard,#fretboardViewport>#fretboardScaler>#fretboard{min-width:800px}.fret-zoom-controls{position:sticky;top:8px;z-index:50;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(0,0,0,.1);box-shadow:0 6px 16px #00000014;margin:8px 0}.fret-zoom-controls input[type=range]{width:140px}.fret-zoom-btn{border:none;padding:6px 10px;border-radius:999px;font-weight:600;cursor:pointer;background:#0000000f}.fret-zoom-label{min-width:42px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}@media (min-width: 768px){.fret-zoom-controls{margin-top:12px}}
