:root{--paper:#fdfbf6;--ink:#26221c;--muted:#5e564a;--line:#e9e2d4;--card:#fff;--accent:#2e5e8c;--accent-deep:#24496e;--accent-soft:#e6edf4;--preview:#8f8a82;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,PingFang TC,Noto Sans TC,Microsoft JhengHei,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--paper)}#app{flex-direction:column;height:100dvh;display:flex}.se-header{padding:10px 16px 0}.se-header h1{margin:0;font-size:18px;font-weight:600}.se-toolbar-slot{border-bottom:1px solid var(--line);background:var(--paper);padding:8px 16px}.se-toolbar{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.se-group{align-items:center;gap:4px;display:flex}.se-btn{min-width:40px;min-height:40px;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:15px;display:inline-flex}.se-btn[hidden]{display:none}.se-btn:hover:not(:disabled){border-color:var(--muted)}.se-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.se-btn:disabled{opacity:.4;cursor:default}.se-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.se-btn.se-primary{background:var(--ink);border-color:var(--ink);color:#fff}.se-icon{width:14px;height:24px}.se-dot{font-size:8px}.se-acc{font-size:22px;line-height:1}.se-caret{color:var(--muted);font-size:11px}.se-btn[aria-pressed=true] .se-caret{color:#fff}.se-menu-wrap{position:relative}.se-menu{z-index:20;background:var(--card);border:1px solid var(--line);border-radius:8px;min-width:150px;padding:4px;position:absolute;top:calc(100% + 4px);box-shadow:0 6px 20px #26221c1f}.se-menu[hidden]{display:none}.se-menu:focus{outline:none}.se-menu.is-fixed{position:fixed;right:auto}.se-menu-left{left:0}.se-menu-right{right:0}.se-menu-item{width:100%;min-height:40px;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 12px;font-size:15px;display:block}.se-menu-item:hover:not(:disabled),.se-menu-item:focus-visible{background:var(--accent-soft);outline:none}.se-menu-item:disabled{color:var(--muted);opacity:.5;cursor:default}.se-menu-sep{background:var(--line);height:1px;margin:4px 6px}.se-hint{color:var(--muted);margin:0;padding:6px 16px;font-size:14px}.se-score{scrollbar-gutter:stable;-webkit-user-select:none;user-select:none;cursor:crosshair;flex:1;padding:8px 16px 48px;overflow:auto}.se-score.is-over-note{cursor:pointer}.se-pages{background:var(--card);border:1px solid var(--line);border-radius:8px}.se-pages>svg{display:block}.se-loading{color:var(--muted)}.se-score .se-preview{fill:var(--preview);stroke:var(--preview);opacity:.75}.se-score .se-preview ellipse,.se-score .se-preview rect,.se-score .se-preview text{stroke:none}.se-score .se-cursor{stroke:var(--accent);opacity:.8}.se-score g.se-selected,.se-score g.se-selected *{fill:var(--accent);stroke:var(--accent);color:var(--accent)}.se-toast{color:#fff;background:var(--ink);opacity:0;pointer-events:none;border-radius:8px;max-width:calc(100% - 32px);padding:10px 16px;font-size:15px;transition:opacity .15s,transform .15s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px)}.se-toast.is-visible{opacity:1;transform:translate(-50%)}.se-dialog-back{z-index:50;background:#26221c59;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.se-dialog{background:var(--card);border-radius:12px;width:min(360px,100%);padding:20px}.se-dialog p{margin:0 0 16px;font-size:17px}.se-dialog-actions{justify-content:flex-end;gap:8px;display:flex}.se-fatal{margin:24px 16px;font-size:16px}.se-piano{background:var(--paper);border-top:1px solid var(--line);padding:6px 16px 8px;padding-bottom:max(8px, env(safe-area-inset-bottom));touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:none}.se-piano[hidden]{display:none}.se-piano-bar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.se-piano-controls{gap:6px;margin-bottom:6px;display:flex}.se-piano-controls .se-btn{flex:1 1 0;min-width:0}.se-piano-range{color:var(--muted);font-size:14px}.se-keys{max-width:720px;height:96px;margin:0 auto;display:flex;position:relative}.se-key{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;padding:0}.se-key.is-white{min-width:0;color:var(--muted);background:var(--card);border:1px solid var(--muted);border-left-width:0;flex:1 1 0;justify-content:center;align-items:flex-end;padding-bottom:4px;display:flex}.se-key.is-white:first-child{border-left-width:1px;border-radius:0 0 0 6px}.se-key.is-white:last-child{border-radius:0 0 6px}.se-key.is-black{width:calc(100% / var(--whites) * .6);z-index:1;background:var(--ink);border:1px solid var(--ink);border-radius:0 0 4px 4px;height:60%;position:absolute;top:0;transform:translate(-50%)}.se-key.is-down{background:var(--accent);border-color:var(--accent)}.se-key:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.se-key.is-white.is-down{color:#fff}.se-key-label{pointer-events:none;font-size:11px}.se-toast{bottom:calc(24px + var(--piano-h,0px))}@media (width<=430px){.se-header{padding:6px 12px 0}.se-header h1{font-size:16px}.se-toolbar-slot{padding:6px 0 6px 12px}.se-toolbar{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;padding-right:12px;overflow-x:auto}.se-toolbar::-webkit-scrollbar{display:none}.se-group{flex:none}.se-hint{display:none}.se-score{padding:6px 6px 12px}.se-piano{padding:4px 6px 6px}.se-piano-bar{margin-bottom:4px}.se-toolbar-slot{position:relative}.se-toolbar-slot:after{content:"";background:linear-gradient(to right, #fdfbf600, var(--paper));pointer-events:none;width:28px;position:absolute;top:0;bottom:0;right:0}.se-keys{height:104px}}@media (width<=359px){.se-oct-text{display:none}}.se-dialog{max-height:100%;overflow-y:auto}.se-dialog-title{font-weight:600}.se-dialog p.se-dialog-detail{color:var(--muted);white-space:pre-line;margin:0 0 12px;font-size:14px}.se-dialog p.se-dialog-error{color:#b3261e;margin:0 0 8px;font-size:14px}.se-dialog p.se-dialog-error:empty{display:none}.se-field{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:14px;display:flex}.se-field input,.se-field select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:16px}.se-field input:disabled,.se-field select:disabled{opacity:.5}
