.fretboard{width:100%;height:100%;min-height:160px;position:relative}.fretboard svg{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;overflow:visible}.fb-wire{stroke:var(--color-dim);stroke-width:1.5px}.fb-wire--nut{stroke:var(--color-fg);stroke-width:5px}.fb-string{stroke:var(--color-mid)}.fb-marker{fill:none;stroke:var(--color-dim);stroke-width:1px}.fb-fret-number{fill:var(--color-mid);text-anchor:middle;font-size:11px}.fb-fret-number--marker{fill:var(--color-fg)}.fb-string-label{fill:var(--color-mid);text-anchor:end;dominant-baseline:middle;font-size:11px}.fb-cell{fill:#0000;cursor:crosshair}.fb-connector{stroke:var(--color-fg);stroke-width:1px;opacity:.6}.fb-connector--sounding{stroke:var(--color-flash)}.fb-note{cursor:pointer;transform-box:fill-box;transform-origin:50%;transition:transform 80ms ease-out,fill 80ms ease-out}.fb-note circle{fill:var(--color-fg);stroke:none}.fb-note text{fill:var(--color-dot-text);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-weight:700}.fb-note--selected circle{stroke:#fff;stroke-width:2px}.fb-note--sounding{transform:scale(1.25)}.fb-note--sounding circle{fill:var(--color-flash)}.fb-note--low circle{fill:var(--color-warn)}.fb-note--unplayable circle{fill:none;stroke:var(--color-warn);stroke-width:2px}.fb-note--unplayable text{fill:var(--color-warn)}.fb-note--dimmed{opacity:.35}.fb-note--outline circle{fill:none;stroke:var(--color-fg);stroke-width:2.5px}.fb-note--outline text{fill:var(--color-fg)}.fb-note--outline.fb-note--sounding circle{fill:var(--color-flash);stroke:var(--color-flash)}.fb-note--outline.fb-note--selected circle{stroke:#fff}.fb-tooltip{pointer-events:none;background:var(--color-bg);color:var(--color-fg);border:1px solid var(--color-mid);white-space:nowrap;z-index:2;padding:2px 6px;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.fb-scale{pointer-events:none;fill:none;stroke:var(--color-mid);stroke-width:1.5px;opacity:.9}.fb-scale text{fill:var(--color-dot-text);stroke:none;text-anchor:middle;dominant-baseline:central;font-weight:700}.fb-scale--plain text{fill:var(--color-mid)}.fb-scale--root{fill:var(--scale-root);stroke:none}.fb-scale--second{fill:var(--scale-second);stroke:none}.fb-scale--third{fill:var(--scale-third);stroke:none}.fb-scale--third-flat{fill:var(--scale-third-flat);stroke:none}.fb-scale--fourth{fill:var(--scale-fourth);stroke:none}.fb-scale--blue{fill:var(--scale-blue);stroke:none}.fb-scale--fifth{fill:var(--scale-fifth);stroke:none}.fb-scale--sixth{fill:var(--scale-sixth);stroke:none}.fb-scale--sixth-flat{fill:var(--scale-sixth-flat);stroke:none}.fb-scale--seventh{fill:var(--scale-seventh);stroke:none}.fb-scale--seventh-flat{fill:var(--scale-seventh-flat);stroke:none}.fb-scale--dimmed{opacity:.25}.ai-drawer{background:var(--color-bg);border:1px solid var(--color-fg);z-index:50;flex-direction:column;width:380px;display:flex;position:fixed;top:44px;bottom:34px;right:8px}.ai-drawer__head{border-bottom:1px solid var(--color-dim);align-items:center;gap:8px;padding:6px 8px;display:flex}.ai-drawer__head h2{text-transform:lowercase;flex:1;margin:0;font-size:13px;font-weight:700}.ai-drawer__body{flex-direction:column;flex:1;gap:10px;padding:8px;display:flex;overflow-y:auto}.ai-drawer__empty,.ai-card__notes,.ai-card__repairs{color:var(--color-mid);font-size:12px}.ai-card{border:1px solid var(--color-dim);flex-direction:column;gap:6px;padding:6px 8px;display:flex}.ai-card--auditioning{border-color:var(--color-flash)}.ai-card__title{justify-content:space-between;gap:8px;font-size:13px;display:flex}.ai-card__kind{color:var(--color-mid);font-size:11px}.ai-card__rationale{margin:0;font-size:12px}.ai-card__preview{border:1px solid var(--color-dim);height:110px;overflow:hidden}.ai-card__preview .fretboard{min-height:0}.ai-card__buttons{flex-wrap:wrap;gap:6px;display:flex}.ai-card__buttons button{padding:2px 8px;font-size:12px}.ai-card__repairs ul{margin:2px 0 0;padding-left:16px}.ai-analysis__dyads{flex-wrap:wrap;gap:4px;display:flex}.ai-analysis__dyad{border:1px solid var(--color-mid);background:var(--color-bg);color:var(--color-fg);cursor:pointer;padding:1px 6px;font-size:11px}.ai-analysis__dyad--computed{color:var(--color-mid);border-style:dashed}.ai-analysis__dyad--inverted{border-color:var(--color-fg)}.ai-analysis__summary{margin:4px 0 0;font-size:12px}.ai-analysis__devices{color:var(--color-mid);margin:4px 0 0;padding-left:16px;font-size:12px}.ai-analysis__meta{color:var(--color-mid);font-size:11px}.ai-analysis__warn{color:var(--color-warn);font-size:11px}.dialog-backdrop{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{border:1px solid var(--color-fg);background:var(--color-bg);min-width:320px;max-width:520px;color:var(--color-fg);padding:16px 20px}.dialog--danger{border-color:var(--color-warn)}.dialog__title{margin:0 0 8px;font-size:1rem;font-weight:700}.dialog__message{color:var(--color-mid);white-space:pre-wrap;margin:0 0 16px}.dialog__buttons{justify-content:flex-end;gap:10px;display:flex}.dialog__buttons button{padding:4px 12px}.dialog--danger .dialog__confirm{border-color:var(--color-warn);color:var(--color-warn)}.dialog__input{width:100%;margin-bottom:14px;padding:4px 6px}.dialog__form{gap:8px;margin-bottom:14px;display:grid}.dialog__field{grid-template-columns:140px 1fr;align-items:center;gap:8px;display:grid}.dialog__field span{color:var(--color-mid)}.dialog__field input,.dialog__field select{min-width:0;padding:2px 6px}.dialog__table{border-collapse:collapse;max-height:60vh;margin-bottom:14px;font-size:12px;display:block;overflow-y:auto}.dialog__table th,.dialog__table td{text-align:left;border-bottom:1px solid var(--color-dim);padding:2px 10px 2px 0}.dialog__table th{color:var(--color-mid);font-weight:400}.toasts{z-index:90;flex-direction:column;gap:6px;display:flex;position:fixed;bottom:40px;right:16px}.toast{border:1px solid var(--color-fg);background:var(--color-bg);color:var(--color-fg);cursor:pointer;padding:6px 10px;font-size:12px}.toast--warn{border-color:var(--color-warn);color:var(--color-warn)}.toast--error{border-color:var(--color-error);color:var(--color-error)}.import{min-width:520px;max-width:720px}.import__files{grid-template-columns:140px 1fr;align-items:center;gap:8px;margin-bottom:12px;display:grid}.import__files span{color:var(--color-mid)}.import__list{flex-direction:column;gap:6px;max-height:40vh;margin:0 0 12px;padding:0;list-style:none;display:flex;overflow-y:auto}.import__item{border:1px solid var(--color-dim);grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:4px 6px;font-size:12px;display:grid}.import__item--running{border-color:var(--color-mid)}.import__item--done{border-color:var(--color-fg)}.import__item--failed{border-color:var(--color-warn);color:var(--color-warn)}.import__name{color:var(--color-fg)}.import__message{color:var(--color-mid)}.import__report{border-top:1px solid var(--color-dim);color:var(--color-mid);white-space:pre-wrap;grid-column:1/-1;margin:0;padding:6px;font-size:11px}.menubar{border:1px solid var(--color-dim);flex:1;align-items:stretch;gap:2px;padding:0 4px;display:flex}.menubar__menu{position:relative}.menubar__title{color:var(--color-fg);cursor:default;background:0 0;border:none;padding:4px 10px}.menubar__title:hover,.menubar__title--open{background:var(--color-dim)}.menu__list{z-index:50;background:var(--color-bg);border:1px solid var(--color-fg);min-width:240px;box-shadow:0 0 0 1px var(--color-bg);margin:0;padding:4px 0;list-style:none;position:absolute;top:100%;left:0}.menu__list--sub{top:-5px;left:100%}.menu__entry{position:relative}.menu__item{width:100%;color:var(--color-fg);text-align:left;white-space:nowrap;cursor:default;background:0 0;border:none;border-radius:0;grid-template-columns:16px 1fr auto auto;align-items:center;gap:8px;padding:3px 10px 3px 6px;display:grid}.menu__item:hover,.menu__entry--sub-open>.menu__item{background:var(--color-dim)}.menu__item--disabled{color:var(--color-dim)}.menu__item--disabled:hover{background:0 0}.menu__check{text-align:center}.menu__accel,.menu__reason{color:var(--color-mid);padding-left:12px;font-size:11px}.menu__item--disabled .menu__reason{color:var(--color-dim)}.menu__arrow{color:var(--color-mid)}.menu__separator{background:var(--color-dim);height:1px;margin:4px 6px}.inspector{border:1px solid var(--color-dim);flex-direction:column;gap:14px;height:100%;padding:8px;display:flex;overflow-y:auto}.inspector h3{color:var(--color-mid);text-transform:lowercase;margin:0 0 6px;font-size:12px;font-weight:700}.inspector ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.inspector__sections li{grid-template-columns:auto 1fr auto;align-items:center;gap:4px;display:grid}.inspector__sections li>button:nth-child(4),.inspector__sections li>button:nth-child(5){grid-column:span 1}.inspector__sections input{width:100%;min-width:0;padding:1px 4px}.inspector__sections select{padding:1px 2px}.inspector__section-go{white-space:nowrap;padding:1px 6px}.inspector button:disabled{color:var(--color-dim);border-color:var(--color-dim)}.inspector__empty{color:var(--color-dim)}.inspector__field{grid-template-columns:70px 1fr;align-items:center;gap:6px;font-size:12px;display:grid}.inspector__field span:first-child{color:var(--color-mid)}.inspector__techniques{flex-wrap:wrap;gap:4px 10px;font-size:12px;display:flex}.inspector__dyad{border:1px solid var(--color-dim);padding:6px;font-size:12px}.inspector__dyad strong{color:var(--color-fg)}.inspector__section-go--solo{background:var(--color-dim);border-color:var(--color-fg)}.inspector__tags{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.inspector__tag{border:1px solid var(--color-dim);align-items:center;gap:2px;padding:0 4px;font-size:11px;display:inline-flex}.inspector__tag button{border:none;padding:0 2px;line-height:1}.inspector__tags input{width:110px;padding:1px 4px;font-size:11px}.library{border:1px solid var(--color-dim);flex-direction:column;gap:10px;height:100%;padding:8px;font-size:12px;display:flex;position:relative;overflow-y:auto}.library__search{width:100%;padding:4px 6px}.library__tags{flex-wrap:wrap;gap:4px;display:flex}.library__chip{border-color:var(--color-dim);color:var(--color-mid);padding:1px 6px;font-size:11px}.library__chip--on{border-color:var(--color-fg);color:var(--color-fg);background:var(--color-dim)}.library__header{justify-content:space-between;align-items:center;display:flex}.library__toggle{color:var(--color-mid);text-align:left;background:0 0;border:none;padding:2px 0}.library__count{color:var(--color-dim)}.library__new{padding:0 6px;line-height:1.2}.library ul{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.library__item{cursor:pointer;border:1px solid #0000;flex-direction:column;padding:3px 6px;display:flex}.library__item:hover{border-color:var(--color-dim)}.library__item--current{border-color:var(--color-fg);background:var(--color-dim)}.library__item--drop{border-color:var(--color-flash);border-style:dashed}.library__name{color:var(--color-fg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.library__dirty{color:var(--color-warn);vertical-align:middle;margin-left:6px;font-size:9px}.library__meta{color:var(--color-mid);font-size:11px}.library__empty{color:var(--color-dim);padding:2px 6px}.library__menu{z-index:60;background:var(--color-bg);border:1px solid var(--color-fg);min-width:140px;margin:0;padding:4px 0;list-style:none;position:fixed}.library__menu li button{text-align:left;border:none;border-radius:0;width:100%;padding:3px 10px}.library__menu li button:hover{background:var(--color-dim)}.library__menu li button:disabled{color:var(--color-dim)}.library__menu-danger{color:var(--color-warn)}.arr,.song{border:1px solid var(--color-dim);flex-direction:column;gap:8px;max-height:220px;padding:8px 10px;font-size:12px;display:flex;overflow-y:auto}.arr__header,.song__header{align-items:center;gap:12px;display:flex}.arr__name,.song__title{min-width:200px;padding:2px 6px;font-weight:700}.arr__meta,.song__meta{color:var(--color-mid)}.arr__entries,.song__parts{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.arr__entry,.song__part{align-items:center;gap:8px;display:flex}.arr__entry label,.song__part label{color:var(--color-mid);align-items:center;gap:4px;display:inline-flex}.arr__entry input[type=number]{width:52px;padding:1px 4px}.arr__index{color:var(--color-dim);text-align:right;width:16px}.arr__riff{text-align:left;min-width:160px}.arr__label,.song__label{width:140px;padding:1px 4px}.arr__empty,.song__empty{color:var(--color-dim)}.arr__add,.song__add{color:var(--color-mid);align-items:center;gap:12px;display:flex}.arr__hint{color:var(--color-dim)}.song__notes{resize:vertical;width:100%;min-height:48px;padding:4px 6px}.transport{border:1px solid var(--color-dim);flex-wrap:wrap;align-items:center;gap:6px 14px;min-height:40px;padding:4px 10px;display:flex}.transport label{color:var(--color-mid);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.transport__placeholder{color:var(--color-dim)}.transport button:disabled{color:var(--color-dim);border-color:var(--color-dim)}.transport__play{min-width:80px;font-weight:700}.transport__play--on{background:var(--color-dim);color:var(--color-flash);border-color:var(--color-flash)}.transport__toggle--on{background:var(--color-dim);border-color:var(--color-fg)}.transport__bpm input{text-align:center;width:56px;margin:0 2px;padding:2px 4px}.transport__bpm button{padding:2px 5px}.transport__position{color:var(--color-fg);font-variant-numeric:tabular-nums;text-align:right;min-width:80px;margin-left:auto}.transport__hint{color:var(--color-warn)}.easier{min-width:640px;max-width:860px}.easier__table td,.easier__table th{white-space:nowrap}.easier__row--preview td{color:var(--color-flash)}.easier__actions{gap:6px;display:flex}.easier__actions button{padding:1px 8px;font-size:12px}.scale-legend{border-bottom:1px solid var(--color-dim);white-space:nowrap;flex-wrap:wrap;flex:none;align-items:center;gap:2px 14px;padding:2px 8px;font-size:12px;line-height:20px;display:flex}.scale-legend__title{color:var(--color-fg);font-weight:700}.scale-legend__swatches{flex-wrap:wrap;gap:2px;display:flex}.scale-legend__modes:first-of-type{margin-left:auto}.scale-legend__swatch,.scale-legend__mode{color:var(--color-mid);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.scale-legend__swatch[aria-pressed=true]{color:var(--color-fg)}.scale-legend__swatch:disabled{cursor:default}.scale-legend__swatch:not(:disabled):hover,.scale-legend__mode:hover{border-color:var(--color-dim)}.scale-legend__modes{gap:2px;display:flex}.scale-legend__mode[aria-pressed=true],.scale-legend__mode[aria-checked=true]{color:var(--color-fg);border-color:var(--color-mid)}.scale-legend__position{align-items:center;gap:2px;display:inline-flex}.scale-legend__step,.scale-legend__position-name{border:1px solid var(--color-dim);color:var(--color-fg);font:inherit;cursor:pointer;background:0 0;padding:0 6px;line-height:18px}.scale-legend__step:hover,.scale-legend__position-name:hover{border-color:var(--color-mid)}.split-view{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:6px;width:100%;height:100%;display:grid}.split-view__quadrant{border:1px solid var(--color-dim);flex-direction:column;min-height:0;transition:border-color 80ms ease-out;display:flex}.split-view__quadrant--active{border-color:var(--color-flash);box-shadow:0 0 0 1px var(--color-flash) inset}.split-view__title{color:var(--color-mid);margin:0;padding:2px 6px;font-size:11px;font-weight:400}.split-view__board{flex:1;min-height:0}.tab{border:1px solid var(--color-dim);background:var(--color-bg);width:100%;height:100%;min-height:120px;display:flex}.tab__gutter{border-right:1px solid var(--color-dim);flex:0 0 44px}.tab__gutter svg{display:block}.tab__gutter text{fill:var(--color-mid);text-anchor:end;dominant-baseline:middle;font-size:11px}.tab__scroll{flex:1;position:relative;overflow:auto hidden}.tab__scroll svg{-webkit-user-select:none;user-select:none;display:block}.tab-ruler__bar{fill:var(--color-fg);font-size:11px}.tab-ruler__section{fill:var(--color-mid);text-transform:lowercase;font-size:10px}.tab-ruler__hit{fill:#0000;cursor:text}.tab-grid__bar{stroke:var(--color-mid);stroke-width:1.5px}.tab-grid__beat{stroke:var(--color-dim);stroke-width:1px}.tab-grid__step{stroke:var(--color-dim);stroke-width:.5px;opacity:.6}.tab-lane__line{stroke:var(--color-dim);stroke-width:1px}.tab-loop{fill:var(--color-dim);opacity:.12}.tab-note rect{fill:var(--color-bg);stroke:var(--color-fg);stroke-width:1.2px}.tab-note text{fill:var(--color-fg);dominant-baseline:central;pointer-events:none;font-size:12px}.tab-note--palm-mute .tab-note__mute{stroke:var(--color-fg);stroke-width:2px;stroke-dasharray:2 2}.tab-note--selected rect{fill:var(--color-dim);stroke:#fff;stroke-width:1.6px}.tab-note--sounding rect{fill:var(--color-flash)}.tab-note--sounding text{fill:var(--color-dot-text)}.tab-note--low rect{stroke:var(--color-warn)}.tab-note--low text{fill:var(--color-warn)}.tab-note--unplayable rect{stroke:var(--color-warn);stroke-dasharray:3 2}.tab-note--unplayable text{fill:var(--color-warn)}.tab-note__resize{fill:#0000;cursor:ew-resize}.tab-chord{stroke:var(--color-mid);stroke-width:1px;fill:none}.tab-playhead{stroke:var(--color-flash);stroke-width:1.5px;pointer-events:none}.tab-cursor{stroke:var(--color-mid);stroke-width:1px;stroke-dasharray:4 3;pointer-events:none}.tab-marquee{fill:var(--color-dim);fill-opacity:.25;stroke:var(--color-fg);stroke-dasharray:3 2;pointer-events:none}.tab-ruler__marker{stroke:var(--color-mid);stroke-width:2px}.tab[data-read-only=true] .tab-note rect{cursor:default}.tab-dyad-label{fill:var(--color-fg);pointer-events:none;font-size:9px}.tab-dyad-label--computed{fill:var(--color-mid)}.shell{gap:var(--gap);height:100%;padding:var(--gap);grid-template:"menu menu menu""library center inspector"1fr"status status status"/220px 1fr 260px;display:grid}.shell:not(:has(.shell__library)){grid-template-columns:0 1fr 260px}.shell:not(:has(.shell__inspector)){grid-template-columns:220px 1fr 0}.shell:not(:has(.shell__library)):not(:has(.shell__inspector)){grid-template-columns:0 1fr 0}.shell__menu{grid-area:menu;align-items:center;gap:12px;display:flex}.shell__brand{letter-spacing:.1em;border:2px solid var(--color-fg);padding:2px 10px;font-weight:700}.shell__library{grid-area:library}.shell__inspector{grid-area:inspector}.shell__center{gap:var(--gap);flex-direction:column;grid-area:center;min-width:0;display:flex}.shell__fretboard{border:1px solid var(--color-dim);flex-direction:column;display:flex}.shell__board{flex:none;height:238px}.shell__board:has(.split-view){height:380px}.shell__fretboard--two .shell__board{height:190px}.shell__fretboard--two .shell__board:has(.split-view){height:300px}.shell__board--scale{border-bottom:1px solid var(--color-dim)}.shell__fretboard:has(.split-view):not(.shell__fretboard--two){border:none}.shell__transport{flex:none}.shell__tab{flex:1;min-height:120px}.shell__status{border-top:1px solid var(--color-dim);color:var(--color-mid);grid-area:status;gap:24px;padding:4px 8px;font-size:12px;display:flex}@media (width<=1024px){:is(.shell,.shell:not(:has(.shell__library)),.shell:not(:has(.shell__inspector))){grid-template:"menu""library""center"1fr"inspector""status"/1fr}}.shell__warning{color:var(--color-warn);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shell__editor-placeholder{height:60px}.shell.shell--wide{grid-template-columns:0 1fr 0}.harness{flex-direction:column;gap:16px;padding:16px;display:flex}.harness h1{margin:0;font-size:1.1rem}.harness h2{color:var(--color-mid);margin:0 0 6px;font-size:.9rem}.harness a{color:var(--color-fg)}.harness__svg{border:1px solid var(--color-dim);height:220px}:root{--color-bg:#000;--color-fg:#3f3;--color-dim:#0f6b0f;--color-mid:#1fbf1f;--color-warn:#ffb000;--color-flash:#cfc;--color-error:#ff4040;--color-dot-text:#000;--scale-root:#ff5fd2;--scale-second:#8cff8c;--scale-third:#ffd23f;--scale-third-flat:#ff8a3d;--scale-fourth:#8cff8c;--scale-blue:#4a8fff;--scale-fifth:#b36bff;--scale-sixth:#c8ff5a;--scale-sixth-flat:#8fbf5a;--scale-seventh:#3ff;--scale-seventh-flat:#1fc9b8;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--font-size:14px;--line:1px;--radius:2px;--gap:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-mono);font-size:var(--font-size);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}button,input,select{font:inherit;color:var(--color-fg);background:var(--color-bg);border:var(--line) solid var(--color-mid);border-radius:var(--radius)}button:hover{border-color:var(--color-fg)}:root{--crt-scanline:#0000002e;--crt-glow:#33ff338c}body.crt{text-shadow:0 0 2px var(--crt-glow)}body.crt:after{content:"";pointer-events:none;z-index:1000;background:repeating-linear-gradient(to bottom, transparent 0, transparent 2px, var(--crt-scanline) 2px, var(--crt-scanline) 3px);position:fixed;inset:0}
