
:root{color-scheme:dark;--accent:#d4f58a;--ink:#f5f5ef;--muted:#999b96;--line:#30322f}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000;color:var(--ink);font:14px -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
button,select,input,textarea{font:inherit}button,select,input[type=number]{background:#242622;color:var(--ink);border:1px solid #454840;border-radius:6px;padding:8px 12px}button{cursor:pointer}button:hover{border-color:var(--accent)}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
header{height:68px;padding:14px 22px;display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);background:#151613}h1{font-size:15px;letter-spacing:-.3px;margin:0;font-weight:600}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.mark{height:23px;width:23px;display:flex;align-items:center;justify-content:center;border:1px solid var(--accent);border-radius:5px;color:var(--accent);font-size:13px}nav{display:flex;margin-left:auto;border:1px solid #454840;border-radius:7px;padding:3px;gap:3px}nav button{padding:7px 15px;border:0;background:transparent;color:var(--muted)}nav button[aria-pressed=true]{color:#142009;background:var(--accent)}
.controls{height:58px;display:flex;align-items:center;gap:22px;padding:10px 22px;border-bottom:1px solid var(--line);background:#11120f}.control{display:flex;align-items:center;gap:9px;font-size:12px;color:#b6b9b0}.control select{padding:6px 10px;color:var(--ink);font-size:13px}input[type=number]{width:68px;padding:6px 7px}.status{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background:#777}.running .dot{background:var(--accent)}
#performance{position:absolute;top:126px;bottom:0;left:0;right:0;display:flex;flex-direction:column;padding:30px 36px 28px;gap:22px}#current{min-height:0;overflow:auto;display:flex;flex-direction:column;justify-content:safe center;gap:.55em;font-weight:600;letter-spacing:-.025em;line-height:1.18;overflow-wrap:anywhere} .cue{white-space:pre-wrap;flex-shrink:0}.row[hidden]{display:none}
#editor{position:absolute;top:126px;bottom:0;left:0;right:0;display:none;background:#10110f;flex-direction:column}.edit-heading{padding:22px 26px 18px;display:flex;gap:14px;align-items:center}.edit-heading h2{font-size:21px;letter-spacing:-.5px;margin:0 0 6px}.edit-heading p{margin:0;color:var(--muted);font-size:12px}.save{margin-left:auto;color:var(--accent);font-size:11px;white-space:nowrap}#filter{display:flex;gap:12px;align-items:center;padding:0 26px 18px}#search{border:1px solid #454840;border-radius:6px;background:#20221d;padding:9px 12px;color:var(--ink);width:250px}#selection{font-size:12px;color:var(--muted)}#rows{overflow:auto;flex:1;padding:0 26px 24px}.table-head{display:grid;grid-template-columns:95px 1fr;gap:14px;padding:10px 15px;position:sticky;top:0;z-index:2;background:#181a16;border-bottom:1px solid #404338;color:#b7bcad;font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.row{display:grid;grid-template-columns:95px 1fr;gap:14px;padding:13px 15px;border-bottom:1px solid #292c25;border-left:3px solid transparent;align-items:start}.row.selected{border-left-color:var(--accent);background:#1b2312}.note{font-size:18px;font-weight:600;padding-top:7px}.note small{display:block;font-size:10px;color:#878d7d;margin-top:5px;font-weight:400}.row textarea{display:block;background:#191c16;color:var(--ink);border:1px solid #393e31;border-radius:5px;padding:9px 11px;min-height:44px;width:100%;resize:vertical;line-height:1.4}.row textarea::placeholder{color:#696f61}.row.selected textarea{border-color:#677b43}.footer{border-top:1px solid var(--line);font-size:11px;color:var(--muted);padding:12px 26px;background:#151713}
body.editing #performance{display:none}body.editing #editor{display:flex}body.editing .font-control{visibility:hidden}
@media(max-width:650px){header{padding:12px;gap:8px}.brand h1{font-size:13px}nav button{padding:7px 9px}.controls{padding:10px 12px;gap:12px}.control{gap:5px}.status span:last-child{display:none}#performance{padding:20px}.edit-heading{padding:18px 15px}#filter{padding:0 15px 15px}#rows{padding:0 12px 16px}.row,.table-head{grid-template-columns:68px 1fr;gap:8px;padding:10px}.save{max-width:95px;white-space:normal}.control label{white-space:nowrap}}

:root{--cue-text:#fff;--cue-bg:#000;--cue-line:rgba(255,255,255,.25)}
#performance{color:var(--cue-text);background:var(--cue-bg)}#current{color:var(--cue-text)}
.controls{gap:16px}.control{gap:6px}.controls .status{font-size:10px}#appearance-button{padding:6px 9px;font-size:12px}#appearance{position:absolute;right:20px;top:122px;z-index:20;width:350px;padding:18px;background:#20231c;border:1px solid #667454;border-radius:8px;box-shadow:0 8px 25px #0009}#appearance[hidden]{display:none}#appearance h2{font-size:16px;margin:0 0 12px}#appearance p{font-size:12px;line-height:1.5;color:#c1c7b9}#appearance .color-row{display:flex;align-items:center;gap:9px;margin:12px 0}#appearance .color-row label{width:95px}#appearance input[type=color]{width:38px;height:32px;background:none;border:0;padding:0}#appearance input[type=text]{width:100px;background:#11140e;color:#fff;border:1px solid #626d53;border-radius:5px;padding:6px}#appearance footer{display:flex;justify-content:space-between;margin-top:14px}
@media(max-width:800px){.controls{gap:8px;padding-left:12px;padding-right:12px}.control{font-size:11px}.control select{max-width:100px;padding:6px}.control input[type=number]{width:52px}.controls .status{display:none}}
/* Let controls wrap while the display continues filling the remaining window. */
body{display:flex;flex-direction:column}header{height:auto;min-height:68px;flex-shrink:0;flex-wrap:wrap}.controls{height:auto;min-height:58px;flex-shrink:0;flex-wrap:wrap}
#performance,#editor{position:relative;top:auto;bottom:auto;left:auto;right:auto;flex:1;min-height:0}
#current{flex:1;border:3px solid var(--cue-line);padding:14px}
#appearance{max-height:calc(100vh - 140px);overflow:auto;width:min(380px,calc(100vw - 24px));right:12px}
button:disabled{opacity:.4;cursor:default}button:disabled:hover{border-color:#454840}
.row,.table-head{grid-template-columns:95px minmax(0,1fr) 145px}.cue-insert{font-size:12px;padding:9px 8px;min-height:40px}
@media(max-width:650px){.cue-insert{justify-self:start}}
/* Piano-roll styling changes presentation only: the original fields and actions stay in place. */
#editor{background:#1c1f20}.edit-heading h2{font-size:22px}#rows{padding:0 22px 24px;scrollbar-color:#555d55 #202425}
#editor .table-head{grid-template-columns:104px minmax(0,1fr) 145px;gap:0;padding:0;min-height:34px;align-items:center;border:1px solid #42494a;background:#252a2b;color:#aab3ae;letter-spacing:1.2px}
#editor .table-head>span{padding:10px 13px}#editor .table-head>span:first-child{background:#343a3a;border-right:1px solid #59605c;color:#dce1d9}
#editor #row-list{border:1px solid #42494a;border-top:0}
#editor .row{position:relative;grid-template-columns:104px minmax(0,1fr) 145px;gap:0;padding:0;border-left:3px solid transparent;border-bottom:1px solid #363c3d;min-height:62px;align-items:start;background-color:#2a2f30;background-image:repeating-linear-gradient(to right,transparent 0,transparent 47px,rgba(255,255,255,.045) 47px,rgba(255,255,255,.045) 48px)}
#editor .row::before{content:"";position:absolute;top:0;bottom:0;left:0;width:104px;background:#d9dcd4;border-right:1px solid #7b837c;pointer-events:none}
#editor .row> *{position:relative;z-index:1}#editor .row.black-key{background-color:#222729}#editor .row.octave-start{border-bottom:2px solid #677266}
#editor .note{align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-height:61px;padding:9px 13px;border:1px solid #f4f5ed;border-top:0;border-bottom-color:#9ba396;border-radius:0 0 3px 0;background:linear-gradient(90deg,#d2d8cc,#f0f1e7);color:#222a23;font-size:16px;font-weight:700;letter-spacing:.025em;cursor:text;box-shadow:inset -3px 0 0 #c5cbbf}
#editor .note small{color:#526050;font-size:9px;letter-spacing:.07em;margin-top:4px}
#editor .black-key .note{margin-right:22px;min-height:61px;background:linear-gradient(90deg,#171d1c,#313a37);color:#edf1e8;border:1px solid #131a18;border-top:0;border-right-color:#4b5650;border-radius:0 3px 4px 0;box-shadow:inset -4px 0 0 #111714,2px 2px 3px #0003}
#editor .black-key .note small{color:#a6b4a7}
#editor .row textarea{margin:8px 12px;width:calc(100% - 24px);min-height:44px;max-width:calc(100% - 24px);padding:10px 12px;border:1px solid #4d5850;border-left:4px solid #687b54;border-radius:3px;background:rgba(18,24,22,.64);color:#f0f5e8;line-height:1.4;box-shadow:inset 0 1px 0 #ffffff05}
#editor .row textarea:not(:placeholder-shown){background:#40512f;border-color:#7d9660;border-left-color:#d4f58a;box-shadow:0 1px 3px #0003,inset 0 1px 0 #ffffff0d}
#editor .row textarea::placeholder{color:#99a493}#editor .row textarea:hover{border-color:#a2b38e}
#editor .cue-insert{align-self:start;margin:10px 12px 8px 0;padding:9px 7px;min-height:40px;border-radius:3px;border-color:#64715b;background:#30392c;color:#dfe8d4;font-size:11px}
#editor .cue-insert:not(:disabled):hover{background:#425336;border-color:#d4f58a}
#editor .row.selected{border-left-color:#d4f58a;background-color:#344230}
#editor .row.selected .note{background:#d4f58a;color:#1e2c15;border-color:#a6c06b;box-shadow:inset -3px 0 0 #a9c46c}
#editor .row.selected .note small{color:#3c5429}
#editor .row.selected textarea{border-color:#d4f58a}
@media(max-width:650px){#rows{padding:0 12px 16px}#editor .row,#editor .table-head{grid-template-columns:68px minmax(0,1fr)}#editor .row::before{width:68px}#editor .note{grid-row:1 / span 2;font-size:14px;padding:9px 8px}#editor .black-key .note{margin-right:10px}#editor .note small{font-size:8px}#editor .cue-insert{margin:0 12px 8px;grid-column:2}#editor .table-head .action-heading{display:none}}

[hidden]{display:none!important}
header{gap:12px}header .file-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
header nav{margin-left:0}
.primary,#save-file{background:var(--accent);border-color:var(--accent);color:#172109;font-weight:650}
#transport{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex-shrink:0;padding:9px 22px;background:#171a13;border-bottom:1px solid var(--line)}
#transport button{white-space:nowrap}
#current:empty::before{content:attr(data-empty);font-size:clamp(15px,2vw,23px);color:var(--cue-text);opacity:.55;font-weight:400;text-align:center;letter-spacing:normal}
#current{border-radius:3px}
body.editing .font-control{display:none}
#appearance{top:70px}
#notice{position:fixed;z-index:40;left:50%;bottom:14px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 28px);padding:10px 16px;background:#293621;color:#f1f7e9;border:1px solid #749158;border-radius:8px;box-shadow:0 4px 20px #0008}
#notice[data-error=true]{background:#482a1d;border-color:#a87153}
dialog{width:min(720px,calc(100% - 24px));max-height:calc(100dvh - 28px);overflow:auto;border:1px solid #505e43;border-radius:12px;background:#1b1f19;color:var(--ink);padding:22px;box-shadow:0 24px 90px #000a}
dialog::backdrop{background:#000b}
dialog h2{margin:0 0 4px;font-size:21px}
dialog h3{margin:18px 0 8px;font-size:14px}
dialog p{margin:4px 0 12px;color:#bdc3b5;font-size:13px;line-height:1.5}
.dialog-title{display:flex;justify-content:space-between;align-items:start;gap:14px}
.dialog-actions,.project-fields{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:10px 0}
.project-fields label{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#bdc3b5;font-size:12px}
dialog input:not([type=checkbox]),dialog select{min-width:0;background:#10140e;border:1px solid #505a49;color:#f4f5ee;border-radius:5px;padding:6px 8px}
#project-name{width:min(220px,58vw)}
@media(max-width:670px){header .file-actions{order:3;margin-left:0;width:100%}header nav{margin-left:auto}#transport{padding:8px 12px}#performance{padding:14px;gap:10px}#filter{flex-wrap:wrap}#search{width:min(250px,100%)}}

#editor .cue-insert {touch-action:none}
#editor .cue-insert[data-held]:not(:disabled) {background:var(--accent);color:#142009;border-color:var(--accent)}
