@font-face{font-family:Leland;font-style:normal;font-display:block;font-weight:400;src:local("Leland"),url(./leland-D8r1VLOj.woff2) format("woff2")}@font-face{font-family:Edwin;font-weight:400;font-style:normal;font-display:swap;src:local("Edwin"),url(./edwin-roman-Brj4myxB.woff2) format("woff2")}@font-face{font-family:Edwin;font-weight:700;font-style:normal;font-display:swap;src:local("Edwin"),url(./edwin-bold-BmDWSQYt.woff2) format("woff2")}@font-face{font-family:Edwin;font-weight:400;font-style:italic;font-display:swap;src:local("Edwin"),url(./edwin-italic-BU2U07ZF.woff2) format("woff2")}@font-face{font-family:Edwin;font-weight:700;font-style:italic;font-display:swap;src:local("Edwin"),url(./edwin-bold-italic-B3MSjegZ.woff2) format("woff2")}:root{--bg: #e9e6e0;--panel: #f7f5f1;--ink: #1d1b18;--muted: #7a746b;--line: #d6d1c8;--accent: #2f5fd0;--accent-soft: rgba(47, 95, 208, .1);--danger: #c0392b;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--ink-score: #000}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px}button{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none}.topbar .spacer{flex:1}.tb{height:30px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.tb:hover:not(:disabled){border-color:#b9b2a6}.tb.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.tb:disabled{opacity:.3;cursor:default}.tb.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.tb.tempo input{width:36px;border:0;font:inherit;background:transparent;outline:none}.chart-name{font-weight:600;max-width:260px;overflow:hidden;text-overflow:ellipsis}.warn{color:var(--danger);font-weight:600}.pop{position:relative}.pop-panel{position:absolute;top:36px;left:0;z-index:20;min-width:200px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0000001f}.key-panel{width:420px;display:flex;flex-direction:column;gap:8px}.key-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.key-grid .chip{justify-content:center}.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;align-self:flex-start}.seg button{border:0;background:#fff;padding:5px 12px;cursor:pointer}.seg button.on{background:var(--ink);color:#fff}.charts-panel{width:320px;display:flex;flex-direction:column;gap:8px}.chart-list{list-style:none;margin:0;padding:0;max-height:360px;overflow:auto}.chart-list li{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:4px}.chart-list li.on{background:var(--accent-soft)}.chart-list li .link{flex:1;text-align:left}.patterns-panel{width:400px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.pattern-row{display:flex;flex-direction:column;gap:4px;width:100%}.pattern-head{display:flex;align-items:center;gap:8px}.pattern-head .pname{height:26px;border:1px solid transparent;border-radius:5px;padding:0 6px;font:inherit;font-weight:600;width:160px;background:none}.pattern-head .pname:hover,.pattern-head .pname:focus{border-color:var(--line);background:#fff;outline:none}.pattern-head .x{margin-left:auto}.perr{color:var(--danger);font-size:12px}.link{border:0;background:none;padding:0;cursor:pointer;font-weight:inherit}.link:hover{text-decoration:underline}.x{border:0;background:none;cursor:pointer;color:var(--muted);font-size:16px;line-height:1;padding:0 4px}.x:hover{color:var(--danger)}.muted{color:var(--muted);font-weight:400}.chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.chip{display:inline-flex;align-items:center;height:26px;padding:0 9px;border-radius:5px;border:1px solid var(--line);background:#fff;cursor:pointer;white-space:nowrap}.chip:hover:not(:disabled){border-color:#b9b2a6}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip:disabled{opacity:.35;cursor:default}.workspace{flex:1;display:flex;min-height:0}.scroller{flex:1;overflow:auto;padding:20px 16px}.sheet{display:flex;flex-direction:column;align-items:center;gap:24px;width:max-content;margin:0 auto}.page{position:relative;background:#fff;box-shadow:0 1px 3px #0000001f,0 6px 20px #0000000f;flex:none}.page-svg{display:block}.inspector{width:var(--insp-w, 300px);flex:none;overflow:auto;background:var(--panel);border-left:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:10px}.inspector.empty{background:var(--bg);border-left-color:transparent}.inspector h3{margin:0 0 4px;font-size:14px;font-weight:600}.inspector .row{display:grid;grid-template-columns:52px 1fr;gap:6px;align-items:start}.inspector .lbl{color:var(--muted);padding-top:5px}.inspector .cue input{height:28px;border:1px solid var(--line);border-radius:5px;padding:0 7px;background:#fff;font-family:Edwin,serif;font-size:14px;min-width:0}.inspector .cue input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.chords-field{text-align:left;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:#fff;cursor:text;font-family:Edwin,serif;font-size:17px}.chords-field:hover{border-color:#b9b2a6}.stepper{display:inline-flex;align-items:center;gap:4px;margin-left:4px}.stepper button{width:24px;height:26px;border:1px solid var(--line);border-radius:5px;background:#fff;cursor:pointer}.stepper button:disabled{opacity:.35;cursor:default}.stepper span{min-width:26px;text-align:center;font-weight:600}.form-panel{width:var(--form-w, 220px);flex:none;overflow:auto;background:var(--panel);border-right:1px solid var(--line);padding:14px 10px;display:flex;flex-direction:column;gap:8px;min-height:0}.form-panel h3{margin:0 4px 2px;font-size:14px;font-weight:600}.form-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.form-list li{display:grid;grid-template-columns:22px 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:4px;padding:5px 6px;border-radius:6px;cursor:pointer}.form-list li:hover{background:#00000009}.form-list li.on{background:var(--accent-soft)}.form-bar{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.form-name{border:0;background:none;padding:0;text-align:left;font-weight:600;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-name-input{font:inherit;font-weight:600;border:1px solid var(--accent);border-radius:4px;padding:1px 4px;min-width:0}.form-count{display:inline-flex;align-items:center;gap:2px}.form-count span{min-width:18px;text-align:center;font-variant-numeric:tabular-nums}.form-count button,.form-tools button{width:20px;height:20px;border:0;border-radius:4px;background:none;cursor:pointer;color:var(--muted);padding:0;line-height:1}.form-count button:hover:not(:disabled),.form-tools button:hover:not(:disabled){background:#00000012;color:var(--ink)}.form-count button:disabled,.form-tools button:disabled{opacity:.3;cursor:default}.form-tools{grid-column:2 / 4;display:flex;visibility:hidden;gap:2px;margin-top:2px}.form-list li:hover .form-tools,.form-list li.on .form-tools{visibility:visible}.form-add{display:flex;flex-wrap:wrap;gap:4px;padding:6px 2px 0;border-top:1px solid var(--line)}.form-add .chip{height:24px;padding:0 7px;font-size:12px}.rhythm-block{display:flex;flex-direction:column;gap:6px}.chip.custom{cursor:default}.chip.save{align-self:flex-start;height:24px;font-size:12px}.save-input{height:26px;border:1px solid var(--accent);border-radius:5px;padding:0 7px;font:inherit;align-self:flex-start;width:160px;outline:none}.rgrid{display:flex;flex-direction:column;gap:6px}.rgrid-row{display:grid;gap:0}.step{position:relative;height:34px;border:0;padding:0;background:#fff;cursor:pointer;border-left:1px solid var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.step:last-child{border-right:1px solid var(--line)}.step.beat{border-left:1.5px solid #a39b8e}.step .mark{flex:1;display:block;margin:5px 1px 3px;border-radius:2px}.step.hit .mark{background:var(--ink);margin-left:3px;margin-right:3px}.step.hold .mark{background:var(--ink);opacity:.22;height:6px;flex:none;margin:11px 0 0;border-radius:0}.step.rest .mark{background:radial-gradient(circle,#b9b2a6 1.6px,transparent 2px)}.step:hover{background:var(--accent-soft)}.step .count{font-size:9px;line-height:12px;color:var(--muted);text-align:center;height:12px}.rgrid.compact .step{height:24px}.cells{position:absolute;z-index:6;padding:6px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #00000024}.cells-row{display:flex;gap:6px}.cell{display:flex;flex-direction:column;gap:2px;width:64px}.cell-beat{font-size:11px;color:var(--muted);padding-left:3px}.cell input{width:100%;height:28px;border:1px solid var(--line);border-radius:4px;padding:0 5px;font-size:15px;background:#fbfaf7;outline:none}.cell.on input{border-color:var(--accent);background:#fff;box-shadow:0 0 0 2px var(--accent-soft)}.cell.on .cell-beat{color:var(--accent);font-weight:600}.cell.invalid input{border-color:var(--danger);box-shadow:0 0 0 2px #c0392b26}.cells .entry-error{margin-top:6px}.cells .suggest{margin-top:6px;box-shadow:none}.edit-layer .bar-hit{fill:transparent;cursor:default}.edit-layer .meta-hit{fill:transparent;cursor:text}.edit-layer .meta-hit:hover{fill:var(--accent-soft)}.edit-layer .meta-ghost{fill:#b9b2a6;pointer-events:none}.edit-layer .sel{fill:var(--accent-soft);pointer-events:none}.edit-layer .sel.focus{stroke:var(--accent);stroke-width:.9}.entry-error{margin-top:3px;display:inline-block;color:#fff;background:var(--danger);padding:2px 6px;border-radius:3px;font-size:12px}.suggest{list-style:none;margin:3px 0 0;padding:4px;width:max-content;min-width:140px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 22px #00000024}.suggest li{padding:3px 8px;border-radius:4px;cursor:pointer;font-family:Edwin,serif;font-size:15px}.suggest li.on{background:var(--accent);color:#fff}.meta-input{position:absolute;z-index:5;margin:0;padding:0 4px;border:1.5px solid var(--accent);border-radius:3px;background:#fff;outline:none}.share-label{font-size:12px;width:36px}.view-seg{height:30px}.view-seg button{min-width:30px;font-family:Edwin,serif;font-size:15px;padding:0 9px}.part-chips{width:260px}.tempo-field{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#fff}.tempo-field input{width:40px;border:0;font:inherit;outline:none;background:transparent}.inline-pop .tb{height:26px;padding:0 9px}.inline-pop{width:100%}.inline-pop .pop-panel{position:static;margin-top:6px;padding:6px;box-shadow:none;min-width:0}.inline-pop .key-panel{width:auto}.inline-pop .key-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.inline-pop .key-grid .chip{padding:0;height:24px;font-size:12px;justify-content:center;min-width:0}.part-badge{position:sticky;top:0;z-index:4;width:max-content;margin:0 auto 10px;padding:3px 10px;border-radius:12px;background:var(--ink);color:#fff;font-size:12px;font-weight:600}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:50;padding:8px 14px;border-radius:8px;background:var(--ink);color:#fff;box-shadow:0 8px 24px #0003;max-width:70vw}.toast.bad{background:var(--danger)}.half{width:26px;align-self:flex-end;height:28px;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer;font-size:13px}.half.on{background:var(--ink);color:#fff;border-color:var(--ink)}.half:disabled{opacity:.35;cursor:default}.cell.narrow{width:44px}@page{size:letter;margin:0}@media print{html,body,#root,.app,.workspace,.scroller{height:auto;overflow:visible;background:#fff}.topbar,.inspector,.form-panel,.resizer,.edit-layer,.cells,.meta-input,.part-badge,.toast{display:none!important}.scroller{padding:0}.sheet{gap:0;width:auto}.page{box-shadow:none;width:8.5in!important;height:11in!important;break-after:page;overflow:hidden}.page:last-child{break-after:auto}.page-svg{width:8.5in;height:11in}}.resizer{flex:none;width:9px;margin:0 -4px;position:relative;z-index:5;cursor:col-resize;touch-action:none}.resizer:after{content:"";position:absolute;top:0;bottom:0;left:4px;width:1px;background:transparent;transition:background .12s}.resizer:hover:after,body.resizing .resizer:after{background:var(--accent);width:2px;left:3.5px}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}*{scrollbar-width:thin;scrollbar-color:rgba(29,27,24,.22) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#1d1b1833;border-radius:10px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:#1d1b1861}*::-webkit-scrollbar-corner{background:transparent}
