@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root,[data-theme=dark]{--font-main: "Noto Sans Mono", monospace;--font-display: "Noto Sans Mono", monospace;--bg-sidebar: linear-gradient(180deg, #2a2a32, #1e1e24);--bg-main: #a1a1a1;--bg-fretboard: #222;--bg-fretboard-card: transparent;--bg-highlight: #111;--accent: #3b82f6;--text-primary: #ffffff;--text-secondary: #9ca3af;--text-muted: #c3d1ec;--border-color: rgba(255, 255, 255, .1);--string-color: rgba(255, 255, 255, .1);--fret-color: #444444;--nut-color: black;--note-inactive-bg: #2e2d2d;--note-inactive-color: #AAA;--note-active-bg: #1a1a1a;--shadow-color: rgba(0, 0, 0, .4);--color-C: #ff4444;--color-A: #ff8800;--color-G: #ffff00;--color-E: #00ff00;--color-D: #00ffff;--cell-width-base: 75px;--cell-height-base: 65px;--note-size-base: 48px;--note-size-secondary-base: 34px;--note-size-inactive-base: 22px;--fret-marker-width-base: 48px;--string-label-size-base: 45px;--note-font-base: 22px;--note-font-secondary-base: 19px;--note-font-inactive-base: 19px;--num-strings: 6;--radius: 8px;--glow: none}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-main);background:radial-gradient(ellipse at bottom right,#b8b8b8 25%,#9a9a9a 50%,#606060);background-attachment:fixed;color:var(--text-primary);-webkit-font-smoothing:antialiased}.grid-container{display:flex;flex-direction:column;min-height:100vh;width:100%;background:transparent;--ui-scale: 1;--cell-width: calc(var(--cell-width-base) * var(--ui-scale));--cell-height: calc(var(--cell-height-base) * var(--ui-scale));--note-size: calc(var(--note-size-base) * var(--ui-scale));--note-size-secondary: calc(var(--note-size-secondary-base) * var(--ui-scale));--note-size-inactive: calc(var(--note-size-inactive-base) * var(--ui-scale));--fret-marker-width: calc(var(--fret-marker-width-base) * var(--ui-scale));--string-label-size: calc(var(--string-label-size-base) * var(--ui-scale));--note-font: calc(var(--note-font-base) * var(--ui-scale));--note-font-secondary: calc(var(--note-font-secondary-base) * var(--ui-scale));--note-font-inactive: calc(var(--note-font-inactive-base) * var(--ui-scale))}.site-header{display:flex;align-items:center;gap:8px;padding:8px}.site-logo{font-size:12px;font-weight:700;letter-spacing:1px;color:#333;text-transform:uppercase}.grid-content{display:flex;flex-direction:column;gap:32px;padding:32px 8px}.settings-dropdown{position:relative}.settings-trigger{display:flex;align-items:center;justify-content:center;padding:4px;background:transparent;border:none;color:#0000004d;cursor:pointer;transition:color .15s ease}.settings-trigger:hover,.settings-dropdown.open .settings-trigger{color:#00000080}.settings-menu{position:absolute;top:100%;left:0;margin-top:4px;min-width:100px;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:0 4px 12px #0000004d;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .15s ease;z-index:100}.settings-dropdown.open .settings-menu{opacity:1;visibility:visible;transform:translateY(0)}.settings-menu-header{padding:8px 12px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.settings-menu-item{display:block;width:100%;padding:8px 12px;font-size:13px;font-family:inherit;text-align:left;background:transparent;border:none;color:var(--text-primary);cursor:pointer;transition:background .1s ease}.settings-menu-item:hover{background:#ffffff14}.settings-menu-item.active{background:#3b82f633;color:var(--accent)}.row-wrapper{display:flex;flex-direction:column;gap:16px;position:relative}.grid-row{display:flex;align-items:flex-start;gap:24px;position:relative}.grid-row.single-column{justify-content:center}.grid-row.multi-column{justify-content:flex-start}.add-board-btn{padding:8px 16px;font-size:12px;font-weight:600;background:transparent;border:1px dashed rgba(0,0,0,.4);border-radius:20px;color:#444;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:inherit;flex-shrink:0;align-self:center}.add-board-btn:hover{border-color:#222;color:#fff;background:#333}.row-divider{display:flex;align-items:center;gap:16px;padding:8px 0}.row-divider.hidden{visibility:hidden}.row-divider-line{flex:1;height:1px;background:#0000004d}.add-row-btn{padding:8px 16px;font-size:12px;font-weight:600;background:transparent;border:1px dashed rgba(0,0,0,.4);border-radius:20px;color:#444;cursor:pointer;transition:all .15s ease;white-space:nowrap;font-family:inherit}.add-row-btn:hover{border-color:#222;color:#fff;background:#333}.delete-row-btn{position:absolute;left:-40px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;opacity:0;transition:all .15s ease}.row-wrapper:hover .delete-row-btn{opacity:.6}.delete-row-btn:hover{opacity:1;color:#ef4444;background:#ef444426}.board-controls{display:flex;flex-direction:column;gap:calc(6px * var(--ui-scale));padding:calc(10px * var(--ui-scale)) calc(12px * var(--ui-scale));background:var(--bg-fretboard);border-radius:var(--radius);border-bottom:1px solid var(--border-color);font-size:calc(12px * var(--ui-scale));max-width:calc(var(--fret-marker-width) + (var(--num-strings) * var(--cell-width)));margin-left:var(--fret-marker-width)}.board-controls-row{display:flex;align-items:center;gap:calc(8px * var(--ui-scale))}.board-controls-row:first-child{justify-content:flex-start}.board-controls-row:first-child .board-delete-btn{margin-left:auto}.board-controls-row--spread{justify-content:space-between}.board-control-dropdown{min-width:calc(70px * var(--ui-scale))}.board-control-dropdown.key-dropdown{min-width:calc(100px * var(--ui-scale))}.board-control-dropdown.shape-dropdown{min-width:calc(115px * var(--ui-scale))}.board-control-dropdown.scale-dropdown{min-width:calc(100px * var(--ui-scale));max-width:calc(175px * var(--ui-scale))}.toggle-switch{display:flex;align-items:center;gap:calc(8px * var(--ui-scale));cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-track{position:relative;width:calc(36px * var(--ui-scale));height:calc(20px * var(--ui-scale));background:#ffffff1a;border-radius:calc(10px * var(--ui-scale));transition:background .2s ease}.toggle-switch:hover .toggle-track{background:#ffffff26}.toggle-thumb{position:absolute;top:calc(2px * var(--ui-scale));left:calc(2px * var(--ui-scale));width:calc(16px * var(--ui-scale));height:calc(16px * var(--ui-scale));background:var(--text-muted);border-radius:50%;transition:all .2s ease}.toggle-switch.active .toggle-track{background:var(--accent)}.toggle-switch.active .toggle-thumb{left:calc(18px * var(--ui-scale));background:#fff}.toggle-label{font-size:calc(11px * var(--ui-scale));font-weight:500;color:var(--text-muted);white-space:nowrap;transition:color .2s ease}.toggle-switch.active .toggle-label{color:var(--text-primary)}.board-delete-btn{width:24px;height:24px;border:none;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;border-radius:4px;opacity:.5;transition:all .15s ease}.board-wrapper:hover .board-delete-btn{opacity:1}.board-delete-btn:hover{background:#ef444426;color:#ef4444}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:18px;color:var(--text-muted)}.fretboard-container{display:flex;flex-direction:column;gap:8px}.string-labels{display:grid;grid-template-columns:repeat(var(--num-strings),var(--cell-width));margin-left:var(--fret-marker-width);height:calc(56px * var(--ui-scale));align-items:center}.string-label{font-size:var(--note-font);font-weight:600;color:#444;transition:all .15s ease;display:flex;align-items:center;justify-content:center;height:var(--string-label-size);width:var(--string-label-size);margin:0 auto}.string-label.open-active{background:currentColor;border-radius:50%}.string-label.open-active .string-label-text{color:#1a1a1a}.fretboard-wrapper,.fretboard-wrapper-inner{display:flex}.fretboard{display:flex;flex-direction:column;background:var(--bg-fretboard);border-radius:var(--radius);overflow:hidden}.fret-markers{display:flex;flex-direction:column;width:var(--fret-marker-width);padding-right:calc(10px * var(--ui-scale));text-align:right}.fret-row{display:grid;grid-template-columns:repeat(var(--num-strings),var(--cell-width));height:calc(var(--cell-height) * var(--fret-scale, 1));border-bottom:1px solid var(--fret-color);position:relative}.fret-row:first-child{border-top:4px solid var(--nut-color)}.fret-row:last-child{border-bottom:none}.fret-row.fret-marker-row{background:var(--bg-highlight)}.fret-cell{position:relative;display:flex;align-items:center;justify-content:center}.fret-cell:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--string-color);transform:translate(-50%)}.fret-marker-label{height:calc(var(--cell-height) * var(--fret-scale, 1));display:flex;align-items:center;justify-content:flex-end;font-size:var(--note-font);font-weight:900;color:#333}.fret-marker-label.fret-minor{color:#8e8e8e}.note-marker{width:var(--note-size-inactive);height:var(--note-size-inactive);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--note-font-inactive);font-weight:600;z-index:1;background:var(--note-inactive-bg);color:var(--note-inactive-color);transition:all .15s ease}.note-marker.active{width:var(--note-size);height:var(--note-size);background:currentColor;border:1px solid currentColor;font-size:var(--note-font);box-shadow:var(--glow)}.note-marker.active .note-text{color:#1a1a1a}.note-marker.active.root{background:#1a1a1a;border:2px solid currentColor}.note-marker.active.root .note-text{color:#fff}.note-marker.secondary{width:var(--note-size-secondary);height:var(--note-size-secondary);background:currentColor;border:1px solid currentColor;opacity:.5;font-size:var(--note-font-secondary)}.note-marker.secondary .note-text{color:#1a1a1a}.note-marker.secondary.root{background:#1a1a1a;font-size:var(--note-font);border:1px solid currentColor}.note-marker.secondary.root .note-text{color:#fff}.note-marker.ghosted{width:var(--note-size-secondary);height:var(--note-size-secondary);background:currentColor;border:1px dashed currentColor;opacity:.2;font-size:calc(var(--note-font-secondary) * .9)}.note-marker.ghosted .note-text{color:#1a1a1a}.shape-C{color:var(--color-C)}.shape-A{color:var(--color-A)}.shape-G{color:var(--color-G)}.shape-E{color:var(--color-E)}.shape-D{color:var(--color-D)}.custom-dropdown-item.shape-C,.custom-dropdown-item.selected.shape-C{color:var(--color-C)}.custom-dropdown-item.shape-A,.custom-dropdown-item.selected.shape-A{color:var(--color-A)}.custom-dropdown-item.shape-G,.custom-dropdown-item.selected.shape-G{color:var(--color-G)}.custom-dropdown-item.shape-E,.custom-dropdown-item.selected.shape-E{color:var(--color-E)}.custom-dropdown-item.shape-D,.custom-dropdown-item.selected.shape-D{color:var(--color-D)}.note-marker.active.role-tonic{box-shadow:0 0 12px currentColor,0 0 20px currentColor}.note-marker.secondary.role-tonic{box-shadow:0 0 8px currentColor;opacity:.7}.note-marker.active.role-chord{box-shadow:inset 0 0 0 3px #000,inset 0 0 0 5px #ffffff80}.note-marker.secondary.role-chord{box-shadow:inset 0 0 0 2px #000,inset 0 0 0 4px #fff6;opacity:.65}.note-marker.active.role-character{background:repeating-linear-gradient(45deg,currentColor,currentColor 3px,rgba(0,0,0,.3) 3px,rgba(0,0,0,.3) 6px)}.note-marker.secondary.role-character{background:repeating-linear-gradient(45deg,currentColor,currentColor 2px,rgba(0,0,0,.3) 2px,rgba(0,0,0,.3) 4px);opacity:.6}.note-marker.ghosted.role-character{background:repeating-linear-gradient(45deg,currentColor,currentColor 2px,rgba(0,0,0,.3) 2px,rgba(0,0,0,.3) 4px);opacity:.3}.note-marker.active.role-neutral{opacity:.7}.note-marker.secondary.role-neutral{opacity:.4}.fretboard-grid{display:flex;gap:24px;padding:24px;align-items:start;overflow-x:auto;overflow-y:hidden;max-width:100%}.board-wrapper{display:flex;flex-direction:column;gap:8px;cursor:pointer;padding:8px;border-radius:var(--radius);transition:all .15s ease}.board-wrapper:hover{background:#ffffff0d}.board-wrapper.active{outline:2px solid var(--accent);background:#3b82f61a}.board-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--bg-fretboard);border-radius:var(--radius);gap:12px}.board-key-scale{font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:.5px}.board-shape-badge{font-size:14px;font-weight:700;padding:4px 12px;border-radius:20px;color:#1a1a1a}.board-shape-badge.shape-C{background:var(--color-C)}.board-shape-badge.shape-A{background:var(--color-A)}.board-shape-badge.shape-G{background:var(--color-G)}.board-shape-badge.shape-E{background:var(--color-E)}.board-shape-badge.shape-D{background:var(--color-D)}.fretboard-wrapper--mini{display:contents}.progression-select{width:100%;padding:8px 12px;font-family:inherit;font-size:12px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);color:var(--text-primary);cursor:pointer}.progression-select:hover{border-color:var(--accent)}.progression-select:focus{outline:none;border-color:var(--accent)}.progression-select optgroup{font-weight:600;color:var(--text-muted)}.progression-select option{background:var(--bg-fretboard);color:var(--text-primary);padding:4px}.custom-progression-input-group{display:flex;gap:6px}.custom-progression-input{flex:1;padding:8px 12px;font-family:inherit;font-size:12px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);color:var(--text-primary)}.custom-progression-input:focus{outline:none;border-color:var(--accent)}.custom-progression-input::placeholder{color:var(--text-muted)}.apply-custom-btn{padding:8px 12px;font-family:inherit;font-size:12px;font-weight:500;background:var(--accent);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;transition:opacity .15s ease}.apply-custom-btn:hover{opacity:.8}.progression-nav{display:flex;align-items:center;gap:8px}.progression-nav-btn{padding:6px 10px;font-family:inherit;font-size:12px;font-weight:500;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.progression-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.progression-nav-btn:disabled{opacity:.4;cursor:not-allowed}.progression-page-info{font-size:12px;color:var(--text-muted);min-width:50px;text-align:center}@media(max-width:700px){:root{--cell-width-base: 55px;--cell-height-base: 48px;--note-size-base: 36px;--note-size-secondary-base: 26px;--note-size-inactive-base: 18px;--fret-marker-width-base: 36px;--string-label-size-base: 34px;--note-font-base: 18px;--note-font-secondary-base: 15px;--note-font-inactive-base: 15px}.grid-content{padding:16px}.board-controls{flex-wrap:wrap}}@media(max-width:540px){:root{--cell-width-base: 44px;--cell-height-base: 38px;--note-size-base: 28px;--note-size-secondary-base: 20px;--note-size-inactive-base: 16px;--fret-marker-width-base: 28px;--string-label-size-base: 26px;--note-font-base: 14px;--note-font-secondary-base: 12px;--note-font-inactive-base: 12px}.grid-content{padding:12px}}.sections-container{display:flex;flex-direction:column;gap:40px;padding:32px;overflow-y:auto;height:100vh;width:100%;align-items:stretch;align-self:flex-start}.section{display:flex;flex-direction:column;gap:16px}.section.active .section-header{color:var(--text-primary)}.section-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px}.section-title{font-size:13px;font-weight:700;color:#888;text-transform:uppercase;letter-spacing:1.5px}.section.active .section-title{color:var(--text-primary)}.section-delete-btn{width:24px;height:24px;border:none;background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;opacity:.5}.section:hover .section-delete-btn{opacity:1}.section-delete-btn:hover{background:#ef444426;color:#ef4444}.section:only-of-type .section-delete-btn{display:none}.section-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.custom-dropdown{position:relative;min-width:180px}.custom-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;background:var(--bg-fretboard);border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .15s ease;width:100%;text-align:left}.custom-dropdown-trigger:hover{border-color:#ffffff4d}.custom-dropdown.open .custom-dropdown-trigger{border-color:var(--accent)}.custom-dropdown-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-right:6px}.custom-dropdown-value{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-dropdown-arrow{font-size:10px;color:var(--text-muted);transition:transform .15s ease}.custom-dropdown.open .custom-dropdown-arrow{transform:rotate(180deg)}.custom-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-height:320px;overflow-y:auto;background:var(--bg-fretboard);border:1px solid rgba(255,255,255,.15);border-radius:6px;box-shadow:0 8px 24px #0006;z-index:100;display:none}.custom-dropdown.open .custom-dropdown-menu{display:block}.custom-dropdown-group{padding:4px 0}.custom-dropdown-group:not(:last-child){border-bottom:1px solid rgba(255,255,255,.08)}.custom-dropdown-group-label{padding:8px 12px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.custom-dropdown-item{padding:8px 12px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background .1s ease}.custom-dropdown-item:hover{background:#ffffff14}.custom-dropdown-item.selected{background:#3b82f633;color:var(--accent)}.custom-dropdown-divider{padding:4px 12px;font-size:11px;color:#ffffff4d;cursor:default;border-top:1px solid rgba(255,255,255,.08);margin-top:4px}.custom-dropdown-header{padding:10px 12px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);cursor:default}.custom-dropdown-header:not(:first-child){border-top:1px solid rgba(255,255,255,.08);margin-top:4px}.section-custom-input-group{display:none;gap:8px}.section-custom-input-group.visible{display:flex}.section-custom-input{width:160px;padding:10px 14px;font-size:13px;background:var(--bg-fretboard);border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--text-primary)}.section-custom-input:focus{outline:none;border-color:var(--accent)}.section-custom-input::placeholder{color:var(--text-muted);opacity:.6}.section-apply-btn{padding:10px 16px;font-size:13px;font-weight:600;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;transition:all .15s ease}.section-apply-btn:hover{filter:brightness(1.1)}.section-pagination{display:none;align-items:center;gap:8px;margin-left:auto}.section-pagination.visible{display:flex}.section-prev-btn,.section-next-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;background:var(--bg-fretboard);border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .15s ease}.section-prev-btn:hover:not(:disabled),.section-next-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.section-prev-btn:disabled,.section-next-btn:disabled{opacity:.3;cursor:not-allowed}.section-page-info{font-size:12px;font-weight:500;color:var(--text-muted);min-width:50px;text-align:center}.section-fretboards{overflow-x:auto;overflow-y:hidden;margin:0 -8px;padding:0 8px}.section-fretboards .fretboard-grid{display:flex;gap:24px;padding:8px 0;align-items:start}.sections-actions{display:flex;gap:12px;align-items:center}.add-section-btn,.clear-all-btn{padding:10px 20px;font-family:inherit;font-size:13px;font-weight:600;background:var(--bg-fretboard);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.add-section-btn:hover{border-color:var(--accent);color:var(--accent);background:#3b82f614}.clear-all-btn:hover{border-color:#ef4444;color:#ef4444;background:#ef444414}
