:root{--ink: #142124;--ink-soft: #3a4b4d;--muted: #829092;--line: #dfe7e3;--paper: #f7f8f5;--canvas: #e9eeea;--rail: #f2f5f1;--accent: #e1ae51;--accent-deep: #b77d25;--teal: #1c4b51;--shadow: 0 24px 70px rgba(23, 43, 41, .13);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--canvas)}button,input,select{font:inherit}button{color:inherit}.app-shell{min-height:100vh;background:var(--canvas)}.topbar{height:76px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#edf2ee}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;letter-spacing:.04em}.brand strong,.brand small{display:block;line-height:1}.brand strong{font-size:13px;letter-spacing:.14em}.brand small{margin-top:5px;color:#9eaeaa;font-size:8px;letter-spacing:.28em}.brand-mark{width:22px;height:28px;display:flex;align-items:center;justify-content:space-between;transform:skewY(-16deg)}.brand-mark i{display:block;width:2px;height:100%;background:var(--accent);border-radius:2px}.brand-mark i:nth-child(2){height:82%;opacity:.88}.brand-mark i:nth-child(3){height:64%;opacity:.7}.brand-mark i:nth-child(4){height:46%;opacity:.5}.topbar-actions{display:flex;align-items:center;gap:12px}.save-state{display:inline-flex;align-items:center;gap:7px;margin-right:12px;color:#aebcb8;font-size:11px}.save-state b{width:7px;height:7px;display:inline-block;border-radius:50%;background:#6dbb91;box-shadow:0 0 0 4px #6dbb911f}.save-state.changed b{background:var(--accent)}.save-state.changed{color:#d4c198}.button{border:1px solid transparent;border-radius:5px;padding:11px 15px;cursor:pointer;font-weight:700;font-size:11px;letter-spacing:.02em;transition:transform .16s ease,background .16s ease,border-color .16s ease}.help-button{text-decoration:none}.button:hover{transform:translateY(-1px)}.button.quiet{color:#cad4d0;background:transparent;border-color:#455556}.button.quiet:hover{background:#ffffff0f}.button.primary{color:#1a2727;background:var(--accent);border-color:var(--accent)}.button.primary:hover{background:#efc56f;border-color:#efc56f}.button span{padding-left:7px;font-size:16px;line-height:0}.workspace{display:grid;grid-template-columns:332px minmax(0,1fr);min-height:calc(100vh - 76px)}.control-rail{padding:31px 25px 24px;background:var(--rail);border-right:1px solid #d9e2dd}.rail-intro{margin:0 4px 28px}.eyebrow{display:block;color:var(--accent-deep);font-size:9px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.rail-intro h1{max-width:230px;margin:9px 0 8px;font-size:26px;line-height:1.03;letter-spacing:-.04em;font-weight:780}.rail-intro p{max-width:255px;margin:0;color:var(--muted);font-size:12px;line-height:1.55}.control-section{margin-bottom:15px;padding:18px 16px 16px;background:#ffffffa8;border:1px solid #e0e7e2;border-radius:8px}.section-heading{display:flex;align-items:center;gap:9px;margin-bottom:17px}.section-number{color:var(--accent-deep);font:800 9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.section-heading h2{margin:0;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.field-label{display:block;margin-bottom:7px;color:#758583;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.text-input,.select-input{width:100%;height:38px;padding:0 10px;border:1px solid #d4dfda;border-radius:4px;outline:0;background:#fff;color:var(--ink);font-size:12px;transition:border .16s ease,box-shadow .16s ease}.text-input:focus,.select-input:focus{border-color:#99b8b5;box-shadow:0 0 0 3px #397b771a}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.field-row>div{min-width:0}.choice-line{margin-top:15px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:#e5ece7;border-radius:5px}.segment{border:0;border-radius:3px;padding:8px 4px;background:transparent;color:#71817f;cursor:pointer;font-size:10px;font-weight:750}.segment.active{background:#fff;color:var(--teal);box-shadow:0 1px 3px #15393617}.color-grid{display:grid;grid-template-columns:1fr;gap:9px;margin-top:17px}.color-field{display:flex;align-items:center;justify-content:space-between;color:var(--ink-soft);font-size:11px}.color-field span{display:inline-flex;align-items:center;gap:7px}.swatch{width:11px;height:11px;display:inline-block;border-radius:50%;background:currentColor;border:2px solid rgba(0,0,0,.12)}.root-swatch{color:var(--accent)}.dot-swatch{color:var(--teal)}.ghost-swatch{color:#8c9aa0}.color-field input{width:29px;height:22px;padding:0;border:0;border-radius:3px;background:transparent;cursor:pointer}.range-field{display:block;margin-top:16px;color:var(--ink-soft);font-size:10px}.range-field>span{display:flex;justify-content:space-between;margin-bottom:6px}.range-field output{color:var(--muted);font-variant-numeric:tabular-nums}.range-field input{width:100%;accent-color:var(--teal)}.compact-section{padding-bottom:13px}.check-line{position:relative;display:flex;align-items:center;gap:9px;margin:11px 0;color:var(--ink-soft);font-size:11px;cursor:pointer}.check-line input{position:absolute;opacity:0}.check-box{width:15px;height:15px;display:inline-block;border:1px solid #bdccc5;border-radius:3px;background:#fff}.check-line input:checked+.check-box{border-color:var(--teal);background:var(--teal);box-shadow:inset 0 0 0 3px #fff}.mode-section{padding-bottom:15px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mode-button{min-height:72px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #dbe4df;border-radius:5px;background:#fff;color:#71817f;cursor:pointer}.mode-button.active{border-color:var(--teal);background:#edf5f1;color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.mode-button span{font-size:10px;font-weight:800}.mode-button small{font-size:9px;color:#8c9995}.mode-dot{width:16px;height:16px;display:block;border-radius:50%;background:var(--teal);border:2px solid #102e32}.mode-dot.ghost{background:#9ba8ac;border-color:#6f7d80;opacity:.72}.mode-help{margin:11px 2px 0;color:var(--muted);font-size:10px;line-height:1.4;text-align:center}.rail-footer{margin:20px 4px 0;color:#7d8d89;font-size:10px;line-height:1.5}.rail-footer span{margin-right:5px;color:var(--accent-deep);font-weight:800;letter-spacing:.1em;text-transform:uppercase}.preview-area{display:flex;min-width:0;flex-direction:column;background:var(--canvas)}.preview-toolbar{min-height:83px;padding:22px 39px 18px;display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #d7e0da}.preview-toolbar strong{display:block;margin-top:7px;color:var(--ink-soft);font-size:11px;letter-spacing:.09em}.toolbar-stats{display:flex;gap:18px;color:#7f8e8a;font-size:10px}.toolbar-stats b{color:var(--teal);font-size:16px;font-variant-numeric:tabular-nums}.preview-scroll{flex:1;overflow:auto;padding:38px}.chart-sheet{min-width:560px;width:min(100%,760px);min-height:760px;margin:0 auto;padding:38px 44px 28px;display:flex;flex-direction:column;background:var(--paper);box-shadow:var(--shadow)}.chart-heading{text-align:center}.chart-kicker{color:var(--accent-deep);font-size:9px;font-weight:800;letter-spacing:.2em;text-transform:uppercase}.chart-kicker.is-hidden{display:none}.chart-heading h2{margin:11px auto 13px;max-width:90%;overflow-wrap:anywhere;color:var(--ink);font-size:25px;line-height:1.06;letter-spacing:-.04em;font-weight:780}.chart-rule{height:6px;display:flex;align-items:center;justify-content:center}.chart-rule:before,.chart-rule:after{width:44px;height:1px;display:block;background:#c8d3cd;content:""}.chart-rule span{width:5px;height:5px;margin:0 8px;display:block;border-radius:50%;background:var(--accent)}.chart-body{flex:1;min-height:590px;padding:28px 0 26px;display:flex;align-items:center;justify-content:center;overflow:auto}.fretboard-container{display:inline-block;position:relative;padding:0;background:transparent;border:0;line-height:1;user-select:none}.chart-footer{display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid #d8e0db;color:#869490;font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase}.preview-hint{padding:12px 39px 17px;color:#8c9a96;font-size:10px;text-align:center}.hint-key{color:#6c807b;font:800 9px ui-monospace,monospace;letter-spacing:.1em}.hint-divider{width:4px;height:4px;margin:0 10px;display:inline-block;border-radius:50%;background:#b7c4bd;vertical-align:middle}.piano-container{--white-key-width: 42px;--white-key-height: 235px;position:relative;display:flex;width:max-content;height:var(--white-key-height);margin:0 auto;user-select:none;filter:drop-shadow(0 10px 9px rgba(37,44,37,.13))}.piano-container[hidden],.fretboard-container[hidden],#fretboard-layout-fields[hidden],.fretboard-display-only[hidden]{display:none}.piano-key{position:relative;flex:0 0 var(--white-key-width);width:var(--white-key-width);height:var(--white-key-height);border:1px solid #9da9a6;border-radius:0 0 6px 6px;background:#fbfcf9;cursor:pointer}.piano-key:hover{background:#f0f4ef}.piano-key.black{position:absolute;top:0;z-index:3;width:25px;height:145px;border-color:#0d1719;border-radius:0 0 5px 5px;background:#172326;transform:translate(-50%)}.piano-key.black:hover{background:#25383b}.piano-key.is-regular{background:var(--piano-dot-color, #234249);box-shadow:inset 0 -9px #ffffff21}.piano-key.black.is-regular{background:var(--piano-dot-color, #234249);box-shadow:inset 0 -7px #ffffff29}.piano-key.is-ghost{background:color-mix(in srgb,var(--piano-ghost-color, #8c9aa0) var(--piano-ghost-opacity, 72%),#fbfcf9)}.piano-key.black.is-ghost{background:color-mix(in srgb,var(--piano-ghost-color, #8c9aa0) var(--piano-ghost-opacity, 72%),#172326)}.piano-key.is-root{box-shadow:inset 0 0 0 4px var(--piano-root-color, #e6b85c)}.piano-key-label{position:absolute;bottom:11px;left:50%;z-index:4;min-width:25px;padding:3px 4px;transform:translate(-50%);border-radius:4px;background:#f7f8f5ed;color:#152326;font-size:10px;font-weight:850;line-height:1;text-align:center;pointer-events:none}.piano-key.black .piano-key-label{bottom:8px;font-size:9px}.piano-key:not(.is-regular):not(.is-ghost) .piano-key-label,.piano-key.is-ghost.hide-ghost-label .piano-key-label{display:none}.chart-sheet.is-piano{width:min(100%,980px)}.chart-sheet.is-piano .chart-body{min-height:480px;justify-content:flex-start}#fretboard-display{filter:drop-shadow(0 9px 8px rgba(37,44,37,.12))}.fretboard-dot{transition:transform .16s ease,filter .16s ease}.fretboard-dot:hover{filter:brightness(1.08)}.fret-click-target:hover{background:#1d4b511f}.export-dialog{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0d1b1c8c;backdrop-filter:blur(5px)}.export-dialog[hidden]{display:none}.dialog-card{position:relative;width:min(100%,380px);padding:28px;border-radius:9px;background:#f8faf7;box-shadow:0 24px 80px #00000047}.dialog-close{position:absolute;top:15px;right:17px;border:0;background:transparent;color:#91a09b;cursor:pointer;font-size:24px;line-height:1}.dialog-card h2{margin:8px 0 7px;font-size:23px;letter-spacing:-.04em}.dialog-card p{margin:0 0 21px;color:var(--muted);font-size:12px}.export-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.export-option{padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid #d6e1db;border-radius:5px;background:#fff;cursor:pointer}.export-option.active{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal);background:#edf5f1}.export-option strong{color:var(--teal);font-size:21px}.export-option span{color:var(--ink-soft);font-size:11px;font-weight:750}.export-option small{color:var(--muted);font-size:9px}.full-button{width:100%}@media(max-width:980px){.workspace{grid-template-columns:285px minmax(0,1fr)}.control-rail{padding-left:18px;padding-right:18px}.preview-scroll{padding:28px 20px}.chart-sheet{min-width:520px;padding-left:32px;padding-right:32px}}@media(max-width:720px){.topbar{height:65px;padding:0 17px}.save-state,.topbar-actions .button.quiet:not(.help-button){display:none}.workspace{display:block}.control-rail{border-right:0;border-bottom:1px solid #d9e2dd}.rail-intro{display:none}.control-section{display:inline-block;width:calc(50% - 9px);margin-right:10px;vertical-align:top}.control-section:nth-of-type(2n){margin-right:0}.mode-section,.rail-footer{display:block;width:100%}.preview-toolbar{padding:18px}.preview-scroll{padding:20px 10px}.chart-sheet{min-width:470px;min-height:700px;padding:27px 23px 21px}.chart-body{min-height:530px}.preview-hint{padding-left:12px;padding-right:12px}.piano-container{--white-key-width: 35px;--white-key-height: 205px}.piano-key.black{width:22px;height:126px}}@media(max-width:480px){.control-section{display:block;width:100%;margin-right:0}.topbar-actions .button.primary{padding:9px 10px}.chart-sheet{min-width:430px}.toolbar-stats{gap:8px}.preview-toolbar strong{font-size:9px}}.help-page{min-height:100vh;background:var(--canvas);color:var(--ink)}.help-hero,.help-content{width:min(980px,calc(100% - 32px));margin-inline:auto}.help-hero{padding:clamp(38px,8vw,86px) 0 30px}.help-back{display:inline-flex;margin-bottom:34px;color:var(--teal);font-size:12px;font-weight:750;text-decoration:none}.help-back:hover{text-decoration:underline}.help-hero h1{max-width:720px;margin:12px 0 15px;font-size:clamp(36px,7vw,68px);line-height:.98;letter-spacing:-.055em}.help-hero>p{max-width:720px;margin:0;color:var(--ink-soft);font-size:clamp(15px,2vw,19px);line-height:1.65}.help-content{padding-bottom:80px}.help-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}.help-jump a{padding:8px 12px;border:1px solid #cedbd5;border-radius:999px;background:#ffffffb3;color:var(--teal);font-size:11px;font-weight:750;text-decoration:none}.help-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:clamp(15px,3vw,28px);margin-top:16px;padding:clamp(23px,5vw,42px);border:1px solid #dde6e1;border-radius:10px;background:#ffffffd1;box-shadow:0 15px 45px #172b2912;scroll-margin-top:22px}.help-step{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:var(--teal);color:#fff;font-size:13px;font-weight:800}.help-card h2{margin:3px 0 15px;font-size:clamp(22px,4vw,32px);letter-spacing:-.035em}.help-card p,.help-card li,.help-card dd{color:var(--ink-soft);font-size:14px;line-height:1.68}.help-card ol{margin:0;padding-left:20px}.help-card li+li{margin-top:7px}.marker-examples,.help-definitions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}.marker-examples>div,.help-definitions>div{padding:17px;border-radius:7px;background:#f0f4f0}.marker-examples>div{display:grid;grid-template-columns:28px 1fr;align-items:center;column-gap:8px}.marker-examples span{grid-column:2;color:var(--muted);font-size:11px}.tutorial-dot{grid-row:1 / 3;width:21px;height:21px;border:2px solid #102e32;border-radius:50%;background:var(--teal)}.tutorial-dot.ghost{border-color:#6f7d80;background:#9ba8ac;opacity:.72}.help-definitions{margin-top:4px}.help-definitions dt{margin-bottom:6px;font-weight:800}.help-definitions dd{margin:0}.help-finish{display:flex;justify-content:center;padding-top:32px}.help-finish .button{text-decoration:none}@media(max-width:620px){.help-card,.marker-examples,.help-definitions{grid-template-columns:1fr}}
