:root{--bg:#15171b;--panel:#1c1f24;--raised:#23272e;--line:#2f343c;--line-strong:#3d434d;--text:#e3e6ea;--muted:#8b939e;--accent:#319cfe;--accent-ink:#04121f;--accent-soft:#319cfe26;--drums:#437acb;--drums-ink:#fff;--bass:#beb24a;--bass-ink:#1b1904;--danger:#ef6b5e;--danger-soft:#ef6b5e1f;--bass-soft:#beb24a1a;--radius:6px;--mono:ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}h1,h2{margin:0;font-weight:600}button,select,input{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line-strong);background:var(--raised);border-radius:var(--radius);padding:5px 12px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{cursor:default;opacity:.5}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}button.ghost{background:0 0}button.icon{color:var(--muted);background:0 0;border-color:#0000;padding:2px 8px;font-size:18px;line-height:1}button.icon:hover{color:var(--danger)}button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}select,input[type=number]{background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-width:0;padding:6px 8px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:var(--mono)}.error{color:var(--danger);margin:8px 0}.notice{background:var(--bass-soft);border-left:3px solid var(--bass);border-radius:var(--radius);padding:10px 12px}.topbar{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;height:52px;padding:0 20px;display:flex}.brand{align-items:baseline;gap:12px;display:flex}.brand h1{letter-spacing:.02em;font-size:17px}.logo{background:linear-gradient(135deg, var(--accent) 50%, transparent 50%), var(--line-strong);border-radius:3px;align-self:center;width:14px;height:14px;transform:rotate(8deg)}.tagline{color:var(--muted);font-size:13px}.layout{grid-template-columns:300px minmax(0,1fr);min-height:calc(100vh - 52px);display:grid}.panel{border-right:1px solid var(--line);background:var(--panel);min-width:0;padding:4px 0 24px}.main{width:100%;max-width:1000px;padding:20px 24px 40px}@media (width<=760px){.layout{grid-template-columns:minmax(0,1fr)}.file-name .small{display:none}.panel{border-right:none;border-bottom:1px solid var(--line)}.main{padding:16px}.tagline{display:none}}.section{border-bottom:1px solid var(--line);padding:14px 18px}.section:last-child{border-bottom:none}.section-head h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px;font-size:11px}.section-body{gap:12px;display:grid}.field{gap:4px;display:grid}.field>label,.field-label{color:var(--muted);font-size:12px}.row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius);display:flex;overflow:hidden}.segmented button{background:var(--bg);color:var(--muted);border:none;border-radius:0;flex:1;padding:5px 6px}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.slider-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.slider-value{font-family:var(--mono);color:var(--text);background:0 0;border:none;padding:0 2px}.slider-value:disabled{opacity:1}.slider.disabled{opacity:.45}input[type=range]{width:100%;accent-color:var(--accent);margin:4px 0 0}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--line-strong);border-radius:9px;flex:none;width:30px;height:17px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:var(--text);border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{background:var(--accent-ink);transform:translate(13px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.seed{grid-template-columns:1fr auto;gap:8px;display:grid}.seed input{font-family:var(--mono)}.map-import button{width:100%}.custom-maps{margin:0;padding:0;font-size:13px;list-style:none}.custom-maps li{justify-content:space-between;align-items:center;display:flex}.drop{border:1.5px dashed var(--line-strong);text-align:center;border-radius:10px;padding:48px 24px;transition:border-color .15s,background .15s}.drop p{margin:0 0 8px}.drop-title{font-size:17px;font-weight:600}.drop .primary{margin-top:10px}.drop.compact{color:var(--muted);padding:12px}.drop.compact p{margin:0}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.files{margin-top:20px}.files-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.files-head h2,.detail-title{font-size:15px}.files ul{border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.files li{background:var(--panel);align-items:center;gap:8px;padding:6px 8px;display:flex}.files li+li{border-top:1px solid var(--line)}.files li.selected{background:var(--raised);box-shadow:inset 3px 0 0 var(--muted)}.files li.selected.kind-row-drums{box-shadow:inset 3px 0 0 var(--drums)}.files li.selected.kind-row-bass{box-shadow:inset 3px 0 0 var(--bass)}.file-name{text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;min-width:0;padding:4px;display:flex}.file-name .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kind{text-transform:uppercase;letter-spacing:.06em;background:var(--line);color:var(--muted);border-radius:4px;flex:none;padding:2px 6px;font-size:10px;font-weight:700}.kind-drums{background:var(--drums);color:var(--drums-ink)}.kind-bass{background:var(--bass);color:var(--bass-ink)}.kind-error{background:var(--danger-soft);color:var(--danger)}.badge{font-family:var(--mono);background:var(--line-strong);color:var(--text);border-radius:9px;flex:none;padding:1px 7px;font-size:11px}.stale{opacity:.6;transition:opacity .2s .15s}.detail{margin-top:24px}.detail-title{overflow-wrap:anywhere;margin-bottom:12px}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.stat-value{font-family:var(--mono);margin-top:2px;font-size:19px}.stat-sub{color:var(--muted);font-size:12px}.warnings{gap:6px;margin-top:16px;display:grid}.warning{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.warning.serious{background:var(--danger-soft);border-color:#ef6b5e73}.warning summary{cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.warning-title{flex:1}.warning ul{color:var(--muted);max-height:240px;margin:0;padding:0 12px 10px 28px;font-size:13px;overflow:auto}.warning .bar{font-family:var(--mono);color:var(--text);margin-right:8px}.toms{flex-wrap:wrap;align-items:center;gap:6px;margin:16px 0 0;display:flex}.chip{font-family:var(--mono);border:1px solid var(--line-strong);border-radius:4px;padding:2px 8px;font-size:12px}table.notes{border-collapse:collapse;width:100%;margin-top:16px;font-size:13px}.notes th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line-strong);padding:6px 8px;font-size:11px;font-weight:500}.notes td{border-bottom:1px solid var(--line);padding:5px 8px}.notes .num{text-align:right;font-family:var(--mono);width:64px}.notes tr.unknown td{color:var(--danger)}.topbar{justify-content:space-between;gap:12px}.topbar-actions{align-items:center;gap:6px;min-width:0;display:flex}.topbar-actions .small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.section-head{justify-content:space-between;align-items:baseline;display:flex}.pill{color:var(--accent);border:1px solid var(--accent);border-radius:9px;padding:0 7px;font-size:11px}.preset-desc{margin:-4px 0 0}.button-row{flex-wrap:wrap;gap:6px;display:flex}.button-row button,.small-btn{padding:4px 10px;font-size:13px}button.danger{color:var(--danger)}.name-form{grid-template-columns:minmax(0,1fr) auto auto;gap:6px;display:grid}.name-form input{background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);min-width:0;padding:5px 8px}.modified-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.badge.accent{background:var(--accent-soft);color:var(--accent)}.param-groups{gap:2px;margin:0 -8px;display:grid}.param-group summary{border-radius:var(--radius);cursor:pointer;align-items:center;padding:6px 8px;list-style:none;display:flex}.param-group summary::-webkit-details-marker{display:none}.param-group summary:before{content:"";border-left:5px solid var(--muted);border-top:4px solid #0000;border-bottom:4px solid #0000;margin-right:10px;transition:transform .15s}.param-group[open] summary:before{transform:rotate(90deg)}.param-group summary span:first-of-type{flex:1}.param-group summary:hover{background:var(--raised)}.param-group-body{gap:12px;padding:8px 8px 16px 23px;display:grid}.param-group-body p{margin:0}@media (width>=761px){.layout{align-items:start}.panel{scrollbar-width:thin;height:calc(100vh - 52px);position:sticky;top:0;overflow-y:auto}}@media (width<=760px){.topbar-actions .small{display:none}}.roll{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:20px;overflow:hidden}.roll-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.roll-toolbar .spacer{flex:1}.roll-toolbar button.play{min-width:76px;font-weight:600}.roll-toolbar button.play.on{border-color:var(--accent);color:var(--accent)}.segmented.compact button{padding:4px 10px;font-size:13px}.roll-time{color:var(--muted);min-width:52px}.zoom{gap:4px;display:flex}.zoom button{padding:4px 10px;font-size:13px}.roll-canvas-wrap{position:relative}.roll-canvas-wrap canvas{display:block}.roll-tip{pointer-events:none;background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--radius);white-space:nowrap;z-index:2;padding:6px 9px;font-size:12px;position:absolute}.roll-scroll{scrollbar-width:thin;height:14px;overflow:auto hidden}.roll-help{border-top:1px solid var(--line);margin:0;padding:6px 10px 8px}button.link-bar{cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.roll-selbar{border-bottom:1px solid var(--line);background:var(--accent-soft);flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:5px 8px;display:flex}.roll-selbar.hint{background:0 0}.roll-selbar button{padding:3px 10px;font-size:13px}.roll-selbar>span:first-child{margin-right:4px;font-weight:600}.roll-canvas-wrap:focus{outline:none}.kick-bars{flex-wrap:wrap;align-items:center;gap:6px;margin:-8px 0 18px;display:flex}.kick-bars .chip{align-items:center;padding:0 0 0 8px;font-family:inherit;font-size:12px;display:inline-flex}.chip.kick-double{border-color:var(--drums);background:#437acb40}.chip.kick-single{border-color:var(--line-strong)}.chip.kick-auto{border-style:dashed;border-color:var(--drums)}.chip-link{background:0 0;border:none;padding:2px 0}.kick-bars .icon{padding:0 6px;font-size:15px}.kick-text{flex:1;gap:6px;min-width:260px;display:flex}.kick-text input{background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);min-width:0;font-family:var(--mono);flex:1;padding:4px 8px}.kick-bars .error{flex-basis:100%;margin:0}[hidden]{display:none!important}.tabs{gap:2px;margin-left:24px;margin-right:auto;display:flex}.tabs button{color:var(--muted);border-radius:var(--radius);background:0 0;border:none;padding:6px 12px}.tabs button.on{color:var(--text);background:var(--raised)}.maps-view{max-width:1280px;padding:20px 24px 60px}.maps-home h2{margin-bottom:6px;font-size:18px}.start-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:18px 0 28px;display:grid}.start-card{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex}.start-card h3,.list-title{margin:0;font-size:14px}.start-card p{flex:1;margin:0 0 4px}.row-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-inline select{flex:1;width:auto}.my-maps{border:1px solid var(--line);border-radius:var(--radius);margin:10px 0 0;padding:0;list-style:none}.my-maps li{background:var(--panel);align-items:center;gap:10px;padding:8px 12px;display:flex}.my-maps li+li{border-top:1px solid var(--line)}.my-maps button{padding:4px 10px;font-size:13px}.warn-pill{color:#d9a441;border-color:#d9a441}.editor-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.editor-head h2{align-items:center;gap:10px;font-size:17px;display:flex}.editor-head .spacer,.editor-foot .spacer,.step-head .spacer,.step-actions .spacer{flex:1}.convention{align-items:center;gap:6px;display:flex}.convention select{width:auto}.editor-body{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width<=900px){.editor-body{grid-template-columns:minmax(0,1fr)}}.editor-meta{gap:12px;display:grid}.editor-meta section{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);gap:8px;padding:12px 14px;display:grid}.editor-meta h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:11px}.editor-meta p{margin:0}.editor-meta label,.import-meta label{color:var(--muted);gap:3px;font-size:12px;display:grid}.editor-meta label.check,.step-head label.check{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.editor-meta input[type=text],.editor-meta input[type=number],.editor-meta textarea,.import-meta input,.table-tools input,.notes-input input,.fallback-edit input{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);min-width:0;padding:5px 8px}.editor-meta textarea{resize:vertical;font-size:13px}.editor-meta .row-inline label{flex:1}.cc-values{grid-template-columns:1fr 1fr;gap:6px;display:grid}.unmapped{gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.unmapped li{grid-template-columns:32px minmax(0,1fr);align-items:center;gap:4px 8px;display:grid}.unmapped li select{grid-column:1/-1}.problems{border-radius:var(--radius);background:var(--danger-soft);border:1px solid #ef6b5e73;gap:4px;margin-bottom:12px;padding:10px 12px;display:grid}.problems p{margin:0;font-size:13px}.warn{color:#d9a441}.table-tools{align-items:center;gap:8px;margin-bottom:8px;display:flex}.table-tools input{flex:1}table.arts,table.slots{border-collapse:collapse;width:100%;font-size:13px}.arts td,.slots td,.slots th{border-bottom:1px solid var(--line);vertical-align:middle;padding:4px 8px}.slots th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:500}.arts .family-row th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--drums);border-bottom:1px solid var(--line-strong);padding:14px 8px 4px;font-size:11px}.arts td.art{width:34%}.art-id{font-family:var(--mono);color:var(--muted);font-size:11px;display:block}.arts tr:not(.has) td.art{color:var(--muted)}.arts td.result{text-align:right;white-space:nowrap;width:30%}.via{color:var(--muted);margin-right:6px;font-size:12px}.missing{color:var(--danger);margin-right:6px;font-size:12px}.chain{color:var(--muted);padding:2px 8px;font-size:11px}.chain.own{color:var(--accent);border-color:var(--accent)}.fallback-row td{background:var(--panel)}.fallback-edit{align-items:center;gap:8px;display:flex}.fallback-edit input{font-family:var(--mono);flex:1;font-size:12px}.notes-input{align-items:center;gap:8px;display:flex}.notes-input input{font-family:var(--mono);max-width:100%}.segmented button{white-space:nowrap}.notes-input.invalid input{border-color:var(--danger)}.note-names{font-family:var(--mono);color:var(--muted);margin-left:6px;font-size:11px}.note-error{color:var(--danger);font-size:12px}.slots td.num{font-family:var(--mono);text-align:right;white-space:nowrap;width:90px}.slots select{max-width:320px}.slots tr.row-guess td,.slots tr.row-none td{background:#d9a44112}.src{border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:9px;padding:1px 8px;font-size:11px}.src-library,.src-known{color:var(--drums);border-color:var(--drums)}.src-guess{color:#d9a441;border-color:#d9a441}.src-none{color:var(--danger);border-color:var(--danger)}.src-edited{color:var(--text)}.import-summary .notice.ok{border-left-color:var(--drums);background:#437acb1a}.source-counts{flex-wrap:wrap;gap:6px;margin:8px 0 14px;display:flex}.import-meta{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.import-meta label{min-width:220px}.editor-foot{background:var(--bg);border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:12px;padding:12px 0;display:flex;position:sticky;bottom:0}.overlay{z-index:10;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.step-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:10px;width:min(560px,100%);overflow:hidden}.step-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 14px;display:flex}.step-head select{width:auto}.step-progress{background:var(--line);height:3px}.step-progress div{background:var(--accent);height:100%;transition:width .15s}.step-body{gap:8px;padding:20px 18px 16px;display:grid}.step-body p{margin:0}.step-family{text-transform:uppercase;letter-spacing:.08em;color:var(--drums);font-size:11px}.step-title{font-size:22px;font-weight:600}.step-input{margin:10px 0 2px}.step-input .notes-input input{min-width:220px;padding:8px 10px;font-size:16px}.step-actions{gap:8px;margin-top:10px;display:flex}.map-import{gap:6px;display:flex}.map-import button{flex:1;padding:5px 6px;font-size:13px}.toggle.disabled{opacity:.45;cursor:default}.bass-detail{gap:14px;display:grid}.bass-follow{max-width:520px}.tuning{border:1px solid var(--line);border-left:3px solid var(--bass);border-radius:var(--radius);background:var(--panel);gap:8px;padding:12px;display:grid}.tuning-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tuning-strings{flex-wrap:wrap;gap:6px 14px;display:flex}.tuning-string{align-items:center;gap:2px;display:flex}.tuning-string>.muted{text-align:right;width:14px;margin-right:2px}.tuning-string button.icon{padding:2px 6px;font-size:16px}.tuning-string button.icon:hover:not(:disabled){color:var(--text)}.tuning-note{text-align:center;border:1px solid var(--line-strong);background:var(--raised);border-radius:4px;min-width:34px;padding:2px 4px}.tuning-string.changed .tuning-note{border-color:var(--bass);color:var(--bass)}.tuning .notice{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}@media (width<=760px){.topbar{padding:0 16px}.tabs{margin-left:12px}.tabs button,.topbar-actions button{padding:6px 8px}}.roll-check{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;display:inline-flex}.roll-check input{accent-color:var(--accent);margin:0}.panel-tabs{margin:14px 18px 6px}.panel-tabs button{padding:7px 6px;font-size:13px}.panel-tabs button.tab-drums.on{color:var(--drums);background:#437acb29}.panel-tabs button.tab-bass.on{color:var(--bass);background:var(--bass-soft)}.help{grid-template-columns:240px minmax(0,1fr);gap:32px;max-width:1180px;padding:24px 24px 80px;display:grid}.help-toc{align-self:start;position:sticky;top:16px}.help-toc h2{margin:0 0 10px;font-size:15px}.help-toc ol{gap:5px;margin:0;padding-left:20px;font-size:13px;display:grid}.help-toc a{color:var(--muted);text-decoration:none}.help-toc a:hover{color:var(--accent)}.help-body{min-width:0;max-width:820px;line-height:1.55}.help-lead{margin-top:0;font-size:15px}.help-h2{border-top:1px solid var(--line);margin:36px 0 12px;padding-top:12px;scroll-margin-top:16px;font-size:19px}.help-body h3{color:var(--text);margin:20px 0 8px;font-size:14px}.help-body code{font-family:var(--mono);background:var(--raised);border-radius:4px;padding:1px 5px;font-size:12px}.help-dl,.help-params{grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:10px 20px;margin:0;display:grid}.help-dl dt,.help-params dt{font-weight:600}.help-dl dd,.help-params dd{color:var(--text);margin:0}.help-dl dd ul{margin:6px 0;padding-left:18px}.help-params dt{align-content:start;gap:2px;display:grid}.help-meta{color:var(--muted);font-size:11px;font-weight:400}.help-group{margin-bottom:8px}.help-serious{color:var(--danger)}.help-faq dt{color:var(--accent)}.help-steps li+li{margin-top:6px}@media (width<=760px){.help{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}.help-toc{position:static}.help-dl,.help-params{grid-template-columns:minmax(0,1fr);gap:2px}.help-dl dd,.help-params dd{margin-bottom:10px}.topbar{flex-wrap:wrap;row-gap:6px;height:auto;min-height:52px;padding:8px 16px}}
