@page{size:Letter portrait;margin:0}@media print{html,body,#root,.score-app{margin:0!important;padding:0!important;width:auto!important;max-width:none!important;background:#fff!important}.score-cursor,.score-event-target,.score-measure-target,.score-end-cursor{display:none!important}.score-event-selected .vf-notehead path{fill:#000!important;stroke:#000!important}.menubar,.ribbon,.palette,.statusbar,.desk .doc-title,.desk .desk-tray,.notation-warnings,.inline-warn,.modal-backdrop{display:none!important}.score-app,.workbench,.desk{display:block!important;margin:0!important;padding:0!important;height:auto!important;background:#fff!important}.score-stage{height:auto!important;min-height:0!important;overflow:visible!important;border:0!important;border-radius:0!important;margin:0!important;display:block!important;gap:0!important}.score-stage>div{display:block!important}.score-stage [id^=osmdCanvasPage]{width:var(--score-paper-width, 8.5in)!important;height:var(--score-paper-height, 11in)!important;margin:0!important;break-inside:avoid;break-after:page}.score-stage [id^=osmdCanvasPage]:last-child{break-after:auto}.score-stage [id^=osmdSvgPage]{display:block!important;width:100%!important;height:100%!important;margin:0!important;border:0!important}}:root{--ui-font: system-ui, -apple-system, "Segoe UI", sans-serif;--desk: #5a5f66;--desk-edge: #4a4e54;--chrome: #f3f4f6;--chrome-2: #e9ebef;--chrome-border: #c9ccd2;--ink: #1f2328;--ink-soft: #5b616b;--accent: #2563eb;--accent-ink: #ffffff;--page: #ffffff;--page-border: #b8bcc4;--ok-bg: #dcfce7;--ok-fg: #166534;--ok-bd: #bbf7d0;--busy-bg: #fef3c7;--busy-fg: #92400e;--busy-bd: #fde68a;--err-bg: #fee2e2;--err-fg: #991b1b;--err-bd: #fecaca;--idle-bg: #eef0f3;--idle-fg: #475569;--idle-bd: #dfe3e8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--ui-font);color:var(--ink);background:var(--desk)}.app-shell{display:grid;grid-template-rows:auto auto 1fr auto;grid-template-columns:1fr;height:100vh;overflow:hidden;background:var(--desk)}.menubar{display:flex;align-items:center;gap:.25rem;background:var(--chrome);border-bottom:1px solid var(--chrome-border);padding:0 .5rem;height:34px;-webkit-user-select:none;user-select:none}.menubar .brand{font-weight:700;font-size:.95rem;letter-spacing:.02em;padding:0 .75rem 0 .35rem;color:var(--ink);display:flex;align-items:baseline;gap:.35rem}.menubar .brand small{font-size:.65rem;color:var(--ink-soft);font-weight:600}.menu{position:relative}.menu>button{background:transparent;border:1px solid transparent;border-radius:5px;padding:.25rem .6rem;font:inherit;font-size:.85rem;color:var(--ink);cursor:pointer}.menu>button:hover,.menu.open>button{background:var(--chrome-2);border-color:var(--chrome-border)}.menu-pop{position:absolute;top:calc(100% + 3px);left:0;min-width:230px;background:var(--page);border:1px solid var(--chrome-border);border-radius:7px;box-shadow:0 10px 28px #00000038;padding:.3rem;z-index:50}.menu-pop button{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;width:100%;text-align:left;background:transparent;border:0;border-radius:5px;padding:.4rem .55rem;font:inherit;font-size:.85rem;color:var(--ink);cursor:pointer}.menu-pop button:hover:not(:disabled){background:var(--accent);color:var(--accent-ink)}.menu-pop button:disabled{color:#aaafb8;cursor:default}.menu-pop button .shortcut{font-size:.72rem;opacity:.6}.menu-pop button:hover:not(:disabled) .shortcut{opacity:.85}.menu-sep{height:1px;background:var(--chrome-border);margin:.3rem .2rem}.ribbon{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;background:var(--chrome-2);border-bottom:1px solid var(--chrome-border);padding:.35rem .6rem;min-height:42px}.ribbon .group{display:flex;align-items:center;gap:.25rem;padding-right:.4rem;margin-right:.2rem;border-right:1px solid var(--chrome-border)}.ribbon .group:last-child{border-right:0}.tool-btn{display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-width:52px;padding:.25rem .45rem;background:var(--page);border:1px solid var(--chrome-border);border-radius:6px;font:inherit;font-size:.68rem;color:var(--ink);cursor:pointer;line-height:1.1}.tool-btn .ic{font-size:1.05rem;line-height:1}.tool-btn:hover:not(:disabled){background:#fff;border-color:var(--accent)}.tool-btn:disabled{opacity:.45;cursor:default}.tool-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tool-btn.primary:hover:not(:disabled){filter:brightness(1.05)}.workbench{display:grid;grid-template-columns:var(--palette-w, 288px) 1fr;min-height:0;overflow:hidden}.workbench.palette-collapsed{--palette-w: 0px}.palette{background:var(--chrome);border-right:1px solid var(--chrome-border);overflow-y:auto;overflow-x:hidden;padding:.5rem;display:flex;flex-direction:column;gap:.5rem;min-height:0}.workbench.palette-collapsed .palette{display:none}.panel{flex:0 0 auto;border:1px solid var(--chrome-border);border-radius:7px;background:var(--page);overflow:hidden}.panel>summary{list-style:none;cursor:pointer;padding:.45rem .6rem;font-size:.78rem;font-weight:600;color:var(--ink);background:var(--chrome-2);display:flex;align-items:center;gap:.4rem;-webkit-user-select:none;user-select:none}.panel>summary::-webkit-details-marker{display:none}.panel>summary:before{content:"▸";font-size:.7rem;color:var(--ink-soft);transition:transform .12s}.panel[open]>summary:before{transform:rotate(90deg)}.panel>summary:hover{background:#dfe3ea}.panel-body{padding:.55rem .6rem;font-size:.82rem}.panel-body .print-controls,.panel-body section,.panel-body fieldset,.modal-pane .print-controls,.modal-pane section,.modal-pane fieldset{border:0!important;border-radius:0!important;margin:0!important;padding:0!important}.panel-body .print-controls legend,.panel-body fieldset legend,.panel-body h2,.modal-pane .print-controls legend,.modal-pane fieldset legend{display:none}.panel-body label{display:flex;align-items:center;gap:.4rem;margin:0 0 .45rem;flex-wrap:wrap}.panel-body select,.panel-body input[type=number],.panel-body input[type=text],.panel-body input:not([type]){padding:.3rem .35rem;border:1px solid var(--chrome-border);border-radius:5px;font:inherit}.panel-body button{padding:.35rem .6rem;border:1px solid var(--chrome-border);border-radius:6px;background:var(--chrome);cursor:pointer;font:inherit;font-size:.8rem;margin:.15rem .3rem .15rem 0}.panel-body button:hover:not(:disabled){background:#fff;border-color:var(--accent)}.panel-body p{font-size:.74rem;color:var(--ink-soft);margin:.4rem 0 0;line-height:1.35}.panel-body .speedy-markings fieldset{display:block}.desk{background:radial-gradient(circle at 30% 0%,rgba(255,255,255,.04),transparent 60%),var(--desk);overflow:auto;padding:1.5rem;display:flex;flex-direction:column;align-items:center}.desk .doc-title{color:#e8eaee;font-size:.82rem;margin:0 0 .75rem;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.3)}.desk .doc-title .warn-inline{color:#ffd9a3}.score-stage{background:var(--page);color:#111;width:var(--stage-screen-w, min(96vw, 1040px));max-width:100%;min-height:60vh;border:1px solid var(--page-border);border-radius:2px;box-shadow:0 6px 24px #00000059;padding:.5in .4in;overflow-x:auto}.score-stage:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.desk .desk-tray{width:var(--stage-screen-w, min(96vw, 1040px));max-width:100%;margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.desk .desk-tray details{background:#fffffff2;border:1px solid var(--chrome-border);border-radius:7px;padding:.3rem .6rem;font-size:.8rem}.desk .notation-warnings{width:var(--stage-screen-w, min(96vw, 1040px));max-width:100%;margin:0 0 .75rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121673;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--page);color:var(--ink);border:1px solid var(--chrome-border);border-radius:10px;box-shadow:0 18px 48px #00000059;width:min(560px,100%);max-height:min(80vh,640px);display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem;border-bottom:1px solid var(--chrome-border);background:var(--chrome-2)}.modal-head h2{margin:0;font-size:.95rem;font-weight:700}.modal-close{border:0;background:transparent;cursor:pointer;font-size:1rem;color:var(--ink-soft);padding:.2rem .4rem;border-radius:5px}.modal-close:hover{background:var(--chrome-border);color:var(--ink)}.modal-tabs{display:flex;gap:.25rem;padding:.5rem 1rem 0;border-bottom:1px solid var(--chrome-border)}.modal-tabs button{border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;background:transparent;padding:.4rem .7rem;font:inherit;font-size:.82rem;color:var(--ink-soft);cursor:pointer}.modal-tabs button:hover:not(:disabled){background:var(--chrome-2);color:var(--ink)}.modal-tabs button.active{background:var(--page);border-color:var(--chrome-border);color:var(--ink);font-weight:600;margin-bottom:-1px}.modal-tabs button:disabled{opacity:.45;cursor:default}.modal-pane{overflow-y:auto;padding:1rem;font-size:.85rem}.statusbar{display:flex;align-items:center;gap:1rem;background:var(--chrome);border-top:1px solid var(--chrome-border);padding:.3rem .75rem;font-size:.78rem;color:var(--ink-soft);min-height:30px}.statusbar .status-msg{flex:1 1 auto;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statusbar .status-pos{white-space:nowrap}.statusbar .badge{padding:.15rem .55rem;border-radius:999px;border:1px solid var(--idle-bd);background:var(--idle-bg);color:var(--idle-fg);font-size:.72rem;white-space:nowrap}.statusbar .badge.saving{background:var(--busy-bg);color:var(--busy-fg);border-color:var(--busy-bd)}.statusbar .badge.saved{background:var(--ok-bg);color:var(--ok-fg);border-color:var(--ok-bd)}.statusbar .badge.save-failed{background:var(--err-bg);color:var(--err-fg);border-color:var(--err-bd)}.inline-warn{margin:.4rem .75rem;font-size:.8rem;color:var(--err-fg);background:var(--err-bg);border:1px solid var(--err-bd);border-radius:6px;padding:.35rem .6rem}.inline-warn button{margin-left:.5rem}.pre-dump{background:#0b1021;color:#d6e2ff;padding:1rem;border-radius:8px;overflow:auto;font-size:.75rem;max-height:320px}.score-cursor{display:none}.score-event-selected>.score-cursor{display:block}.score-event-selected .vf-notehead path{fill:#2563eb;stroke:#2563eb}.score-end-cursor{display:none;pointer-events:none}.score-measure-selected>.score-end-cursor{display:block}.score-playing>.score-measure-target{fill:#60a5fa;fill-opacity:.18}.score-measure-selected>.score-measure-target{fill:#2563eb;fill-opacity:.08}.new-score-form{padding:1rem;border:1px solid var(--chrome-border);border-radius:8px;margin:0;background:#f8fafc;color:var(--ink)}.new-score-fields{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.new-score-fields label{display:flex;flex-direction:column;gap:.3rem}.new-score-fields input,.new-score-fields select{padding:.4rem}.playback-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.playback-controls input[type=number]{width:65px}.speedy-entry label{display:inline-flex;align-items:center;gap:.35rem;margin:.25rem .5rem .25rem 0}.speedy-entry input[type=number]{width:4.5rem}.speedy-entry input[type=text],.speedy-entry input:not([type]){width:8rem}.speedy-entry button{margin:.2rem .3rem .2rem 0}.speedy-markings{margin-top:.75rem}.speedy-markings fieldset{border:1px solid var(--chrome-border);border-radius:6px;padding:.75rem}.notation-warnings{border:1px solid #d97706;border-radius:8px;background:#fffbeb;color:#78350f;padding:.5rem 1rem;font-size:.85rem}.notation-warnings button{margin:.25rem}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media print{.menubar,.ribbon,.palette,.statusbar,.desk .doc-title,.desk .desk-tray,.notation-warnings,.inline-warn{display:none!important}.app-shell{display:block;height:auto}.workbench{display:block}.desk{background:#fff;padding:0;display:block}.score-stage{box-shadow:none;border:0;border-radius:0;width:auto;padding:0}.score-cursor,.score-event-target,.score-end-cursor,.score-measure-target{display:none!important}}@media (max-width: 860px){.workbench{grid-template-columns:1fr}.palette{position:fixed;top:76px;bottom:30px;left:0;width:288px;z-index:40;box-shadow:4px 0 18px #0000004d}.workbench.palette-collapsed .palette{display:none}}:root{--desk: #73777b;--desk-edge: #62666a;--chrome: #f5f4f1;--chrome-2: #eae9e5;--chrome-border: #cdcdc8;--accent: #365f81}.app-shell{height:100dvh;grid-template-rows:auto auto minmax(0,1fr) auto;position:relative}.menubar{height:32px;gap:.15rem}.menubar .brand{font-size:.9rem;letter-spacing:-.03em;padding-right:1rem}.menubar .brand small{text-transform:uppercase;letter-spacing:.08em;font-size:.55rem}.menu>button{font-size:.78rem;border-radius:3px}.ribbon{flex-wrap:nowrap;overflow-x:auto;padding:5px 9px;min-height:56px;gap:6px}.ribbon .group{flex-shrink:0;gap:2px;padding-right:8px}.tool-btn{min-width:43px;height:43px;justify-content:center;background:transparent;border-color:transparent;border-radius:3px;font-size:10px;gap:5px;white-space:nowrap}.tool-btn .ic{font-family:var(--ui-font);font-size:20px;font-weight:500;height:18px}.tool-btn.primary{background:#e0e8ee;color:#23465f;border-color:#bdcbd7}.tool-btn:hover:not(:disabled){background:#fff}.workbench{grid-template-columns:var(--palette-w, 272px) minmax(0,1fr)}.palette{padding:0 7px 10px;gap:7px}.palette-heading{display:flex;align-items:center;justify-content:space-between;min-height:32px;font-size:9px;letter-spacing:.12em;color:var(--ink-soft)}.palette-heading button{font:inherit;font-size:19px;border:0;background:none;cursor:pointer;color:var(--ink-soft)}.panel{border-radius:3px}.panel>summary{font-size:12px;padding:8px;background:linear-gradient(#f4f3f0,#e8e7e3)}.panel-body{padding:9px;font-size:12px}.panel-body button,.panel-body select,.panel-body input{font-size:12px;border-radius:3px}.panel-body button:disabled{opacity:.45;cursor:default}.panel-body select{max-width:100%}.panel-body summary{cursor:pointer;padding:5px 0;color:var(--ink-soft)}.desk{min-width:0;padding:20px 28px 28px;background:linear-gradient(135deg,#7c8083,#686c70)}.desk .doc-title{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;font-size:12px;margin-bottom:15px}.document-kind{font-size:9px;letter-spacing:.12em;border:1px solid #ffffff40;border-radius:2px;padding:3px 5px;color:#e3e5e6}.score-stage{flex:0 0 auto;box-shadow:0 2px 4px #0003,0 12px 28px #0002;border-radius:0}.modal{padding:0;margin:auto}.modal:not([open]){display:none}.modal::backdrop{background:#171e29a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-body{overflow:auto;min-height:0}.modal .new-score-form{border:0;border-radius:0;background:#fff}.modal .new-score-form h2{display:none}.modal .new-score-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal .new-score-fields label:first-child,.modal .new-score-fields label:nth-child(2){grid-column:1 / -1}.modal input,.modal select{max-width:100%;min-width:0;font:inherit;border:1px solid var(--chrome-border);border-radius:3px}.modal .new-score-form button{font:inherit;padding:7px 12px;border:1px solid var(--chrome-border);border-radius:3px;cursor:pointer}.modal .new-score-form button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent)}.statusbar{min-width:0;gap:12px;font-size:11px}.offline-status{max-width:28%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inline-warn{position:absolute;bottom:35px;right:10px;z-index:45;max-width:min(560px,calc(100% - 20px));box-shadow:0 3px 10px #0002}@media (max-width: 860px){.workbench{grid-template-columns:minmax(0,1fr)}.palette{position:absolute;top:88px;bottom:31px;width:min(290px,88vw)}.desk{padding:16px 12px 24px}.offline-status{display:none}.statusbar .status-pos{font-size:10px}}@media print{.modal,.palette-heading{display:none!important}.app-shell,.workbench,.desk{overflow:visible!important;height:auto!important}}.duration-palette{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:10px 0}.panel-body .duration-palette button{display:flex;flex-direction:column;align-items:center;gap:5px;margin:0;padding:7px 2px;background:#fafaf8}.duration-palette kbd{color:var(--ink-soft);font:10px var(--ui-font)}.rhythm-options{border-top:1px solid var(--chrome-border);border-bottom:1px solid var(--chrome-border);margin-top:8px}.speedy-entry [aria-label="Speedy keyboard frame"]{max-height:170px;overflow-y:auto}.recording-indicator{margin-left:auto;color:#a32626;font-size:10px}.recording-panel.is-recording{border-color:#bc5050}.recording-panel input[type=number]{width:5rem}.recording-panel h3{font-size:12px;margin:12px 0 6px}.recording-panel button:enabled{color:var(--ink)}
