:root{--bg: #0f1419;--panel: #1a212b;--panel-2: #232c38;--border: #313d4d;--text: #e6edf3;--muted: #95a3b3;--accent: #5aa7ff;--natural-bg: #2d3a2a;--natural-edge: #5b7a4f;--bend-bg: #2b2f47;--bend-edge: #5b63a3;--over-bg: #432a39;--over-edge: #a3567f;--chord: #46c463;--blue: #5a8dff;--passing: #f5a623;--danger: #ef4d4d;color-scheme:dark}:root[data-theme=light]{--bg: #f4f6f9;--panel: #ffffff;--panel-2: #eef1f6;--border: #d3dae3;--text: #1b2430;--muted: #5d6b7c;--accent: #2563eb;--natural-bg: #e4f3e6;--natural-edge: #6fae5f;--bend-bg: #e6e9fb;--bend-edge: #6a72c4;--over-bg: #fbe6ef;--over-edge: #c0567f;--chord: #2e9e4b;--blue: #3060d0;--passing: #c9810a;--danger: #d63333;color-scheme:light}*{box-sizing:border-box}body{transition:background-color .2s ease,color .2s ease}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.app-header h1{margin:0;font-size:2rem;letter-spacing:.5px;font-weight:700}.theme-toggle{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:.4rem .85rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.theme-toggle:hover{border-color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tagline{margin:.15rem 0 0;color:var(--muted)}.calculators{margin-top:1.5rem}.field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.field>span{color:var(--muted)}select,output{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.4rem .5rem;font-size:.95rem}select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tuning{max-width:340px;margin-bottom:1rem}.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.calc-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.7rem}.calc-card h3{margin:0;font-size:.95rem;font-weight:600}.result output{font-weight:700;color:var(--accent);border-style:dashed}.summary{margin:1.75rem 0 1rem;font-size:1.15rem;font-weight:500}.summary-tuning{color:var(--muted)}.harp-and-options{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap}.harp-wrap{overflow-x:auto;flex:1 1 480px}table.harmonica{border-collapse:separate;border-spacing:4px}.row-heading{text-align:right;color:var(--muted);font-weight:600;font-size:.8rem;padding-right:.4rem;white-space:nowrap}.cell{border-radius:4px;min-width:2.9rem;text-align:center;vertical-align:middle;border:1px solid transparent}.cell.empty{background:transparent;border-color:transparent}.note-inner{display:flex;flex-direction:column;align-items:center;gap:1px;padding:.3rem .45rem}.interval{font-size:.72rem;color:var(--muted)}.note-name{font-size:1rem;font-weight:700}.cat-dot{font-size:.7rem;line-height:1}.cat-dot.chord{color:var(--chord)}.cat-dot.blue{color:var(--blue)}.cat-dot.passing{color:var(--passing)}.cat-dot.danger{color:var(--danger)}.cell.natural{background:var(--natural-bg);border-color:var(--natural-edge)}.cell.blowbend,.cell.drawbend{background:var(--bend-bg);border-color:var(--bend-edge)}.cell.overblow,.cell.overdraw,.cell.unnecessary_overblow,.cell.unnecessary_overdraw{background:var(--over-bg);border:1px dashed var(--over-edge)}.cell.unnecessary_overblow,.cell.unnecessary_overdraw{opacity:.7}.cell.hidden-note .note-inner{visibility:hidden}.cell.hidden-note{background:transparent;border-color:transparent;border-style:solid}.holenum{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;text-align:center;font-weight:700;color:var(--accent);min-width:2.9rem}.options-panel{flex:0 0 240px;display:flex;flex-direction:column;gap:1.25rem}.view-options fieldset{border:1px solid var(--border);border-radius:12px;margin:0 0 .9rem;padding:.6rem .9rem .8rem}.view-options legend{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;padding:0 .3rem}.check{display:flex;align-items:center;gap:.5rem;padding:.18rem 0;cursor:pointer;font-size:.92rem}.check input{accent-color:var(--accent);width:1rem;height:1rem}.legend{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.6rem .9rem .9rem}.legend h4{margin:.2rem 0 .6rem;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.legend ul{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.swatch{display:inline-block;width:1.1rem;height:1.1rem;border-radius:5px;vertical-align:middle;margin-right:.45rem}.swatch.natural{background:var(--natural-bg);border:1px solid var(--natural-edge)}.swatch.blowbend{background:var(--bend-bg);border:1px solid var(--bend-edge)}.swatch.overblow{background:var(--over-bg);border:1px dashed var(--over-edge)}.categories .cat-dot{font-size:.95rem;margin-right:.4rem}.app-footer{margin-top:2.5rem;color:var(--muted);font-size:.85rem;border-top:1px solid var(--border);padding-top:1rem}
