@font-face{font-family:Torus;src:url(/fonts/Torus-Regular.otf)format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Torus;src:url(/fonts/Torus-Bold.otf)format("opentype");font-weight:700;font-display:swap}:root{--bg:#0f1115;--panel:#14171f;--raised:#1a1e28;--input:#202533;--border:#2b3142;--border-soft:#222734;--text:#e9ecf2;--muted:#8c96a8;--faint:#5d6679;--accent:#f6a;--accent-hover:#ff4f9c;--accent-soft:#ff66aa24;--danger:#f05d5d;--warn:#f2b24c;--ok:#4fd18b;--mono:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--radius:6px}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font:inherit;color:inherit}html,body{background:var(--bg);width:100%;height:100%;color:var(--text);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;font-family:Torus,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--muted)}.mono{font-family:var(--mono)}kbd{font-family:var(--mono);border:1px solid var(--border);color:var(--text);border-bottom-width:2px;border-radius:3px;margin-right:2px;padding:0 4px;font-size:.68rem}.studio-app{flex-direction:column;width:100vw;height:100vh;display:flex}.top-bar{background:var(--panel);border-bottom:1px solid var(--border);white-space:nowrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;height:48px;padding:0 12px;display:flex}.bar-group{align-items:center;gap:8px;min-width:0;display:flex}.brand{letter-spacing:-.01em;margin-right:6px;font-size:.95rem;font-weight:700}.brand span{color:var(--accent);margin-left:1px}.tabs{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius);gap:2px;padding:2px;display:flex}.tab-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:.8rem;font-weight:700}.tab-btn:hover{color:var(--text)}.tab-btn.active{background:var(--raised);color:var(--text)}.transport{gap:12px}.readout{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius);align-items:baseline;gap:8px;padding:3px 10px;display:flex}.time-display{font-family:var(--mono);font-variant-numeric:tabular-nums;min-width:82px;font-size:.95rem;font-weight:600}.bpm-display{font-family:var(--mono);color:var(--muted);min-width:56px;font-size:.75rem}.field{color:var(--muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.field.volumes{border-left:1px solid var(--border-soft);gap:4px;padding-left:12px}.field.volumes label{align-items:center;gap:6px;margin-left:6px;display:flex}.btn{background:var(--raised);border:1px solid var(--border);border-radius:var(--radius);height:30px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:.8rem;font-weight:700;transition:background-color .1s,border-color .1s;display:inline-flex}.btn:hover{background:var(--input);border-color:#3a4256}.btn-primary{background:var(--accent);border-color:var(--accent);color:#1a0a12}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--raised);color:var(--text)}.btn-ghost.active{color:var(--accent)}.btn-sm{height:24px;padding:0 8px;font-size:.72rem}.btn-lg{height:38px;padding:0 16px;font-size:.85rem}.btn-link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.75rem}.btn-link:hover{color:var(--text);text-decoration:underline}.file-btn{cursor:pointer}.icon-btn{border-radius:var(--radius);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;line-height:1;display:inline-flex}.icon-btn:hover{background:var(--raised);color:var(--text)}.icon-btn.sm{width:24px;height:24px}.icon-btn.active{color:var(--accent)}.icon-btn.play{background:var(--accent);color:#1a0a12}.icon-btn.play:hover{background:var(--accent-hover)}.dropdown,.input,.input-num,.vol-num-input,.lane-custom-idx,.lane-volume-input{background:var(--input);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none}.dropdown:focus,.input:focus,.input-num:focus,.vol-num-input:focus,.lane-custom-idx:focus,.lane-volume-input:focus,.lane-name-input:focus{border-color:var(--accent)}.dropdown{cursor:pointer;height:26px;padding:0 4px;font-size:.78rem}.dropdown.mini{height:22px;padding:0 2px;font-size:.7rem}.input{-webkit-user-select:text;user-select:text;height:30px;padding:0 8px;font-size:.8rem}.input.invalid{border-color:var(--danger)}.input-num{text-align:center;width:56px;height:28px;font-size:.8rem}.vol-num-input,.lane-volume-input{width:36px;height:22px;font-family:var(--mono);text-align:right;padding:0 3px;font-size:.72rem}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.range-slider{accent-color:var(--accent);cursor:pointer;width:110px}.range-slider.mini{width:56px}.segmented{background:var(--bg);border:1px solid var(--border-soft);border-radius:5px;flex-shrink:0;gap:2px;padding:2px;display:flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 7px;font-size:.68rem;font-weight:700}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--raised);color:var(--accent)}.main-workspace{flex:1;display:flex;position:relative;overflow:hidden}.view-panel{width:100%;height:100%;display:none}.view-panel.active{display:flex}.channel-rack{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:345px;min-width:320px;display:flex;overflow:hidden}.rack-header-container{border-bottom:1px solid var(--border);flex-direction:column;justify-content:center;gap:6px;height:64px;min-height:64px;padding:0 10px;display:flex}.rack-top-line,.rack-sub-line{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.rack-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.rack-top-actions{align-items:center;gap:4px;display:flex}.rack-sub-line select{text-overflow:ellipsis;flex:auto;min-width:0;height:24px}.add-lane-btn-group{display:flex;position:relative}.add-lane-btn-group #btn-add-lane{border-radius:var(--radius) 0 0 var(--radius)}.add-lane-btn-group .btn-arrow{border-radius:0 var(--radius) var(--radius) 0;border-left:none;padding:0 5px}.add-lane-menu{z-index:200;background:var(--raised);border:1px solid var(--border);border-radius:var(--radius);min-width:150px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #00000080}.add-lane-menu-item{cursor:pointer;border-radius:4px;padding:6px 8px;font-size:.76rem}.add-lane-menu-item:hover{background:var(--input)}.lanes-list{flex:1;overflow:hidden}.lane-item{background:var(--panel);border-bottom:1px solid var(--border-soft);border-left:3px solid;flex-direction:column;justify-content:center;gap:5px;height:58px;padding:0 8px 0 10px;transition:background-color .12s;display:flex}.lane-item:hover{background:#171b24}.lane-item.is-playing{background:var(--raised)}.lane-item.drag-over{background:var(--accent-soft);outline:1px dashed var(--accent);outline-offset:-1px}.lane-item.is-muted,.lane-item.is-inactive{opacity:.45}.channel-rack.is-compact .lane-item{gap:0;height:28px}.channel-rack.is-compact .lane-controls-row{display:none}.lane-top-row{justify-content:space-between;align-items:center;gap:4px;min-width:0;display:flex}.lane-name-wrapper{flex:auto;align-items:center;gap:4px;min-width:0;display:flex}.lane-activity-led{background:var(--border);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background-color 80ms}.lane-item.is-playing .lane-activity-led{background:var(--accent)}.lane-name-input{text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:3px;outline:none;flex:auto;min-width:40px;padding:1px 3px;font-size:.8rem;font-weight:700}.lane-name-input:hover{border-color:var(--border-soft)}.lane-name-input:focus{background:var(--input)}.badge-custom-sample{text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-family:var(--mono);background:var(--input);color:var(--muted);cursor:pointer;border-radius:3px;flex-shrink:1;padding:1px 5px;font-size:.62rem;overflow:hidden}.badge-custom-sample:hover{color:var(--danger)}.lane-btns{flex-shrink:0;align-items:center;gap:2px;display:flex}.lane-btns button{border:1px solid var(--border-soft);width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border-radius:3px;justify-content:center;align-items:center;font-size:.66rem;font-weight:700;display:inline-flex}.lane-btns button:hover{color:var(--text);border-color:var(--border)}.lane-btns .btn-mute.active{background:var(--danger);border-color:var(--danger);color:#1a0a0a}.lane-btns .btn-solo.active{background:var(--warn);border-color:var(--warn);color:#1a1205}.lane-btns .btn-del-lane:hover{color:var(--danger)}.channel-rack.is-compact .lane-btns button{width:18px;height:18px}.lane-controls-row{color:var(--faint);align-items:center;gap:4px;font-size:.7rem;display:flex}.lane-idx-group,.lane-vol-group{align-items:center;gap:2px;display:flex}.lane-custom-idx{text-align:center;width:28px;height:22px;font-size:.72rem}.vol-label{margin-left:2px}.sequencer-container{background:var(--bg);flex:1;min-width:0;position:relative}#sequencer-canvas{width:100%;height:100%;display:block}.hint-bar{color:var(--faint);border-radius:var(--radius);pointer-events:none;background:#0f1115d9;gap:12px;padding:4px 10px;font-size:.7rem;display:flex;position:absolute;bottom:22px;right:12px}.copier-container{justify-content:center;align-items:flex-start;width:100%;height:100%;padding:32px 16px;display:flex;overflow-y:auto}.copier-card{flex-direction:column;gap:20px;width:100%;max-width:860px;display:flex}.copier-card h2{font-size:1.25rem;font-weight:700}.subtitle{color:var(--muted);margin-top:-12px;font-size:.85rem}.copier-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.copier-col{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:8px;font-size:.8rem;display:flex}.form-group>label,.flex-between>label{color:var(--muted);font-size:.75rem;font-weight:700}.form-group.inline{flex-direction:row;align-items:center;gap:8px}.flex-between{justify-content:space-between;align-items:center;display:flex}.checkbox-list{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);flex-direction:column;gap:2px;max-height:320px;padding:4px;display:flex;overflow-y:auto}.empty-state{text-align:center;color:var(--faint);padding:24px 8px;font-size:.8rem}.options-list{flex-direction:column;gap:10px;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:.82rem;display:flex}.checkbox-label input{accent-color:var(--accent)}.target-row{border-radius:4px;padding:6px 8px}.target-row:hover{background:var(--raised)}.copier-actions{flex-direction:column;gap:8px;display:flex}.copier-console{max-height:180px;font-family:var(--mono);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);-webkit-user-select:text;user-select:text;padding:12px;font-size:.75rem;display:none;overflow-y:auto}.log-line{color:var(--muted);margin-bottom:4px}.log-line.success{color:var(--ok)}.log-line.error{color:var(--danger)}.toast-container{z-index:9999;pointer-events:none;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast{background:var(--raised);border:1px solid var(--border);border-radius:var(--radius);opacity:0;padding:8px 14px;font-size:.8rem;font-weight:700;transition:opacity .15s,transform .15s;transform:translateY(6px);box-shadow:0 8px 24px #00000073}.toast.show{opacity:1;transform:none}.modal-backdrop{z-index:10000;background:#08090cb8;justify-content:center;align-items:center;padding:16px;animation:.12s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:520px;max-width:100%;max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 60px #0009}.modal-header{justify-content:space-between;align-items:center;padding:14px 16px 0 20px;display:flex}.modal-header h2{font-size:1.05rem;font-weight:700}.modal-body{flex-direction:column;gap:12px;padding:12px 20px 20px;font-size:.84rem;line-height:1.45;display:flex;overflow-y:auto}.modal-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.session-card{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 14px}.session-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.session-meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.78rem;display:flex}.session-meta strong{color:var(--text)}.rename-list{flex-direction:column;gap:8px;display:flex}.rename-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1.3fr);align-items:center;gap:4px 8px;display:grid}.rename-old{font-family:var(--mono);color:var(--warn);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.rename-arrow{color:var(--faint)}.rename-err{color:var(--danger);grid-column:3;font-size:.72rem}.rename-err:empty{display:none}.hint{color:var(--faint);font-size:.72rem}.icon-btn,.btn{flex-shrink:0}@media (width<=1500px){.field.zoom-field{display:none}}@media (width<=1280px){.field.rate-field,.bpm-display,.brand{display:none}}
