:root{--color-bg-base: #0a0a0a;--color-bg-surface: #111111;--color-bg-elevated: #161616;--color-text-primary: #ededed;--color-text-secondary: #a1a1a1;--color-text-muted: #6e6e6e;--color-text-faint: #4a4a4a;--color-text-bright: #fafafa;--color-accent: #f5a623;--color-accent-hover: #f7b955;--color-exercise: #6366f1;--color-info: #52a8ff;--color-info-hover: #3d97f0;--color-success: #4ade80;--color-danger: #ef4444;--color-warning: #f5a623;--color-gold: #f5a623;--color-gold-hover: #f7b955;--color-action: var(--color-accent);--color-action-hover: var(--color-accent-hover);--color-action-text: #0a0a0a;--color-nav-active: var(--color-accent);--color-nav-active-hover: var(--color-accent-hover);--color-nav-active-text: #0a0a0a;--color-premium: var(--color-accent);--color-premium-hover: var(--color-accent-hover);--color-premium-text: #0a0a0a;--color-border: #242424;--color-border-strong: #383838;--border-subtle: 1px solid rgba(255, 255, 255, .07);--border-default: 1px solid var(--color-border);--border-strong: 1px solid var(--color-border-strong);--border-accent: 1px solid var(--color-action);--instrument-surface: #0d1b2e;--instrument-surface-recessed: color-mix(in srgb, #000 16%, #0d1b2e);--instrument-surface-border: #1e3a5f;--instrument-stage-bg: #0d0d1a;--instrument-accent: #42a5f5;--instrument-text-strong: #ffffff;--instrument-text-muted: #7f99b8;--instrument-text-faint: #4a5e7a;--instrument-border-muted: #4a6080;--instrument-tag-dominant: #ffa726;--instrument-tag-secondary: #ffd740;--instrument-tag-interchange: #ce93d8;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--border-width: 1px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", ui-monospace, "Geist Mono", monospace;--font-size-xs: 10px;--font-size-sm: 11px;--font-size-md: 12px;--font-size-base: 13px;--font-size-lg: 14px;--font-size-body-sm: 13px;--font-size-body: 15px;--font-size-body-lg: 17px;--font-size-h3: 18px;--font-size-h2: 22px;--font-size-h1: 28px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6);--transition-fast: .15s ease;--transition-normal: .25s ease}[data-theme=navy]{--color-bg-base: #0f1729;--color-bg-surface: #1a2744;--color-bg-elevated: #131d33;--color-text-primary: #c8d6e5;--color-text-secondary: #8899aa;--color-text-muted: #5a6e8a;--color-text-faint: #3f5170;--color-text-bright: #f0f4f8;--color-accent: #e67e22;--color-accent-hover: #d35400;--color-exercise: #6366f1;--color-info: #3498db;--color-info-hover: #2980b9;--color-success: #2ecc71;--color-danger: #e74c3c;--color-warning: #f39c12;--color-gold: #ffd166;--color-gold-hover: #f5c14e;--color-action: var(--color-accent);--color-action-hover: var(--color-accent-hover);--color-action-text: #ffffff;--color-nav-active: var(--color-info);--color-nav-active-hover: var(--color-info-hover);--color-nav-active-text: #ffffff;--color-premium: var(--color-gold);--color-premium-hover: var(--color-gold-hover);--color-premium-text: #2a1f00;--color-border: #2d3f5e;--color-border-strong: #3d5278;--border-subtle: 1px solid rgba(255, 255, 255, .08)}[data-theme=light]{--color-bg-base: #f4f6fb;--color-bg-surface: #ffffff;--color-bg-elevated: #eef2f9;--color-text-primary: #1f2a3d;--color-text-secondary: #4a5a72;--color-text-muted: #7a8aa3;--color-text-faint: #9aa6b8;--color-text-bright: #0d1526;--color-accent: #e67e22;--color-accent-hover: #d35400;--color-exercise: #6366f1;--color-info: #3498db;--color-info-hover: #2980b9;--color-success: #2ecc71;--color-danger: #e74c3c;--color-warning: #f39c12;--color-gold: #d99a00;--color-gold-hover: #c08a00;--color-action: var(--color-accent);--color-action-hover: var(--color-accent-hover);--color-action-text: #ffffff;--color-nav-active: var(--color-info);--color-nav-active-hover: var(--color-info-hover);--color-nav-active-text: #ffffff;--color-premium: var(--color-gold);--color-premium-hover: var(--color-gold-hover);--color-premium-text: #2a1f00;--color-border: #d8e0ec;--color-border-strong: #c2cddd;--border-subtle: 1px solid rgba(0, 0, 0, .06);--shadow-sm: 0 1px 3px rgba(15, 23, 41, .12);--shadow-md: 0 4px 16px rgba(15, 23, 41, .14);--shadow-lg: 0 12px 40px rgba(15, 23, 41, .18)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg-base);color:var(--color-text-primary);height:100vh;display:flex;flex-direction:column;overflow:hidden}#root{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto}.studio-shell{display:flex;flex:1;min-height:0;overflow:hidden}.studio-canvas__waveform{flex-shrink:0}.studio-canvas__score{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.studio-canvas__score .alphatab-wrapper{flex:1;min-height:0}.studio-canvas__score .alphatab-score-area{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.studio-canvas__score .alphatab-container{flex:1;min-height:0}.btn{background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:6px 14px;border-radius:4px;cursor:pointer;font-size:13px;transition:background .15s}.btn:hover{background:var(--color-border-strong)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-accent);border-color:var(--color-accent-hover);color:#fff}.btn-primary:hover{background:var(--color-accent-hover)}.btn-small{padding:3px 8px;font-size:12px}.btn-small.active{background:var(--color-info);border-color:var(--color-info-hover);color:#fff}.waveform-container{position:relative;background:var(--color-bg-elevated);height:160px}.waveform-scroll-container{position:relative;height:100%;overflow-x:auto;overflow-y:hidden;padding:12px 5px}.waveform-timeline{position:relative;height:128px;min-width:100%}.sync-markers{position:absolute;inset:0;pointer-events:none;z-index:5}.sync-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--color-accent);opacity:.8}.section-overlays{position:absolute;top:0;left:0;right:0;height:70%;pointer-events:none;z-index:3}.section-region{position:absolute;top:0;height:40%;pointer-events:auto}.section-label{position:absolute;top:5px;left:6px;font-size:10px;font-weight:700;color:#fffffff2;background:#0000008c;padding:1px 6px 2px;border-radius:3px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto;cursor:text;-webkit-user-select:none;user-select:none}.section-boundary{position:absolute;top:0;bottom:0;width:20px;transform:translate(-50%);background:transparent;cursor:ew-resize;pointer-events:auto;z-index:4}.section-boundary:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);background:#fff6;pointer-events:none;transition:width .1s ease,background .1s ease}.section-boundary:hover:before{width:3px;background:#ffffffb3;box-shadow:0 0 6px #ffffff4d}.section-boundary.dragging:before{width:3px;background:#ffffffe6;box-shadow:0 0 8px #ffffff80}.sync-marker-label{position:absolute;top:-2px;left:4px;font-size:10px;color:var(--color-accent);white-space:nowrap;font-weight:600}.transport-left{display:flex;align-items:center;gap:16px}.transport-right{font-family:SF Mono,Fira Code,monospace;font-size:14px}.time-sep{color:var(--color-text-muted);margin:0 4px}.transport-buttons{display:flex;gap:4px;align-items:center}.transport-buttons .btn{min-width:36px;font-size:14px}.transport-btn{width:36px;height:36px;padding:0;font-size:16px;display:flex;align-items:center;justify-content:center;border-radius:50%}.transport-btn-play{width:42px;height:42px;font-size:18px;background:var(--color-info);border-color:var(--color-info-hover);color:#fff}.transport-btn-play:hover:not(:disabled){background:var(--color-info-hover)}.transport-btn-play:disabled{background:var(--color-border);border-color:var(--color-border-strong);color:var(--color-text-primary)}.transport-toggles{display:flex;gap:4px;align-items:center;padding-left:8px;border-left:1px solid var(--color-border)}.transport-toggle{height:26px;padding:0 8px;font-size:11px;font-weight:500;border-radius:13px;white-space:nowrap;color:var(--color-text-secondary);background:var(--color-bg-elevated);border-color:var(--color-border)}.transport-toggle:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.transport-toggle.active{color:var(--color-info);border-color:var(--color-info);background:#4e7dd61f}.speed-group{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.speed-selector{background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:4px 8px;border-radius:4px;font-size:12px;cursor:pointer;min-width:70px}.speed-input{background:var(--color-bg-base);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:4px 6px;border-radius:4px;font-size:12px;font-family:SF Mono,Fira Code,monospace;width:52px;text-align:center}.speed-input:focus{outline:none;border-color:var(--color-info)}.speed-input:disabled{opacity:.4;cursor:not-allowed}.speed-selector:hover{background:var(--color-border-strong)}.speed-selector:focus{outline:none;border-color:var(--color-info)}.speed-selector:disabled{opacity:.4;cursor:not-allowed}.volume-controls{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted);margin-left:8px}.volume-controls__title{color:var(--color-text-muted);white-space:nowrap}.volume-track{display:flex;align-items:center;gap:4px}.volume-track__label{color:#7a8ea8;white-space:nowrap;min-width:32px;text-align:right}.volume-track__slider{width:64px;accent-color:var(--color-info);cursor:pointer}.audio-source-group,.playhead-mode-group,.beat-grid-group,.waveform-layers-group{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted)}.waveform-layers-label{color:var(--color-text-muted)}.snap-threshold-select{background:#2a3342cc;border:1px solid rgba(100,149,237,.2);border-radius:4px;color:#e8e8e8;padding:2px 6px;font-size:11px;cursor:pointer}.snap-threshold-select:hover{border-color:#6495ed66}.time-display{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.success-message{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:8px 12px;background:#2ecc7126;border:1px solid rgba(46,204,113,.4);border-radius:4px;color:var(--color-success);font-size:12px}.btn-close{background:none;border:none;color:inherit;cursor:pointer;font-size:20px;font-weight:700;padding:0 4px;line-height:1;opacity:.7;transition:opacity .15s;margin-left:8px}.btn-close:hover{opacity:1}.panels-wrapper{display:flex;flex-direction:column;position:relative;z-index:100}.panels-toggle-bar{display:flex;align-items:center;justify-content:space-between;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.panels-toggle-btn{background:transparent;border:none;color:var(--color-text-secondary);padding:5px 16px;cursor:pointer;font-size:11px;font-weight:500;letter-spacing:.05em;transition:color .15s;white-space:nowrap}.panels-toggle-btn:hover{color:var(--color-text-primary)}.panel-visibility-toggles{display:flex;align-items:center;gap:4px;padding:0 12px}.panel-chip{background:transparent;border:1px solid var(--color-border);border-radius:12px;color:#4a5e7a;padding:2px 10px;cursor:pointer;font-size:10px;font-weight:500;letter-spacing:.04em;transition:border-color .15s,color .15s,background .15s}.panel-chip.active{border-color:#e8834a;color:#e8834a;background:#e8834a14}.panel-chip:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.panel-chip.active:hover{border-color:#f09560;color:#f09560}.panels-float{position:absolute;top:100%;left:0;right:0;z-index:100;border-bottom:1px solid var(--color-border)}.panels{display:flex;overflow-x:auto;align-items:stretch;background:transparent;overscroll-behavior-x:contain}.panel{display:flex;flex-direction:column;flex-shrink:0;min-width:180px;border-right:1px solid var(--color-border);max-height:430px;overflow-x:hidden;overflow-y:auto;background:var(--color-bg-base)}.bar-list-panel,.sync-list-panel{min-width:220px}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:0 16px;height:40px;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1;flex-shrink:0}.panel-header h2{font-size:14px;font-weight:600;color:var(--color-text-bright)}.sync-auto-align-btn{font-size:11px;padding:3px 10px;border-radius:4px;cursor:pointer;background:#64b4ff26;border:1px solid rgba(100,180,255,.35);color:inherit}.sync-auto-align-btn:hover:not(:disabled){background:#64b4ff47}.sync-auto-align-btn:disabled{opacity:.4;cursor:default}.bar-count{font-size:12px;color:var(--color-text-muted)}.panel-body{flex:1;overflow-y:visible;padding:4px 0}.panel-footer{padding:12px 16px;background:var(--color-bg-surface);border-top:1px solid var(--color-border)}.bar-item{display:flex;align-items:center;padding:5px 16px;cursor:pointer;font-size:13px;transition:background .1s}.bar-item:hover{background:#1e2f4d}.bar-item.active{background:#1e3a5f}.bar-item.has-sync{color:var(--color-accent);font-weight:600}.bar-number{width:52px;font-weight:600;color:var(--color-text-muted)}.bar-item.has-sync .bar-number{color:var(--color-accent)}.bar-time-sig{width:40px;font-size:11px;color:var(--color-border-strong)}.bar-expected{flex:1;text-align:right;font-size:11px;color:var(--color-border-strong);font-family:SF Mono,Fira Code,monospace}.section-header{padding:6px 16px;font-size:12px;font-weight:700;color:var(--color-info);background:#15203a;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:1}.bar-item.section-start{background:#6495ed14;font-weight:600}.bar-item.section-start .bar-number{color:#6495ed}.sync-item{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;border-bottom:1px solid #1e2f4d}.sync-item-info{display:flex;align-items:center;gap:12px;flex:1}.sync-bar{font-weight:700;color:var(--color-accent);min-width:60px}.sync-arrow{color:var(--color-border-strong)}.sync-time{font-family:SF Mono,Fira Code,monospace;color:var(--color-text-primary)}.sync-tempo{font-size:11px;color:#888;margin-left:8px;font-weight:500}.sync-editable{cursor:pointer;border-bottom:1px dashed rgba(100,149,237,.3);transition:border-color .2s,background-color .2s;padding:2px 4px;border-radius:2px}.sync-editable:hover{border-bottom-color:#6495ed99;background-color:#6495ed0d}.sync-edit-input{font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-size:13px;padding:2px 6px;border:1px solid #6495ed;border-radius:3px;outline:none;background:#6495ed1a;color:var(--color-text-primary)}.sync-edit-bar{width:60px}.sync-edit-time{width:110px}.sync-edit-input:focus{background:#6495ed26;box-shadow:0 0 0 2px #6495ed33}.sync-item-error{background-color:#ff3b300d;border-left:2px solid #ff3b30}.sync-error{font-size:11px;color:#ff3b30;margin-top:4px;margin-left:4px}.sync-toggle{background:none;border:none;color:var(--color-accent);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;line-height:1;transition:color .15s;flex-shrink:0}.sync-toggle:hover{color:var(--color-warning)}.sync-point-disabled .sync-toggle{color:var(--color-text-muted)}.sync-point-disabled .sync-toggle:hover{color:#7f8c9b}.sync-point-disabled .sync-item-info{opacity:.4}.sync-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:3px}.sync-remove:hover{background:#3d1a1a;color:var(--color-danger)}.sync-empty{padding:20px 16px;text-align:center;color:var(--color-border-strong);font-size:13px}.sync-versions{border-top:1px solid var(--color-border);margin-top:8px;padding-top:8px}.sync-versions__header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 6px}.sync-versions__title{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.sync-versions__save-btn{background:var(--color-bg-base);border:1px solid var(--color-border-strong);border-radius:4px;color:var(--color-text-secondary);cursor:pointer;font-size:11px;padding:3px 10px;transition:background .15s,color .15s,border-color .15s}.sync-versions__save-btn:hover:not(:disabled){background:var(--color-bg-elevated);color:var(--color-text-primary);border-color:var(--color-info)}.sync-versions__save-btn.saved{border-color:var(--color-success);color:var(--color-success)}.sync-versions__save-btn:disabled{opacity:.4;cursor:default}.sync-versions__list{list-style:none;margin:0;padding:0}.sync-versions__item{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;border-radius:4px;gap:8px}.sync-versions__item:hover{background:var(--color-bg-elevated)}.sync-versions__item-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.sync-versions__item-name{font-size:12px;color:var(--color-text-primary);font-weight:500}.sync-versions__item-date,.sync-versions__item-count{font-size:11px;color:var(--color-text-muted)}.sync-versions__item-actions{display:flex;gap:4px;flex-shrink:0}.sync-versions__restore-btn{background:none;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary);cursor:pointer;font-size:13px;line-height:1;padding:2px 6px;transition:border-color .15s,color .15s}.sync-versions__restore-btn:hover{border-color:var(--color-info);color:var(--color-info)}.sync-versions__restore-btn.restored{border-color:var(--color-success);color:var(--color-success)}.sync-versions__delete-btn{background:none;border:1px solid transparent;border-radius:4px;color:var(--color-text-muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 5px;transition:color .15s}.sync-versions__delete-btn:hover{color:var(--color-danger)}.sync-versions__empty{padding:6px 8px 10px;font-size:11px;color:var(--color-text-muted)}.command-preview{background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;padding:8px 12px;margin-bottom:8px;font-family:SF Mono,Fira Code,monospace;font-size:11px;color:#7fb3d3;word-break:break-all;max-height:60px;overflow-y:auto;min-height:36px}.modal{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal.hidden{display:none}.modal-content{background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:8px;padding:24px;min-width:320px}.modal-content h3{font-size:16px;margin-bottom:12px;color:var(--color-text-bright)}.modal-content p{margin-bottom:16px;font-size:14px}.modal-field{display:flex;align-items:center;gap:8px;margin-bottom:16px}.modal-field label{font-size:13px;color:var(--color-text-muted)}.modal-field input{background:var(--color-bg-base);border:1px solid var(--color-border-strong);color:var(--color-text-bright);padding:6px 10px;border-radius:4px;font-size:14px;width:80px}.suggestion{font-size:12px;color:var(--color-text-muted)}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-track{background:var(--color-bg-base)}.panel-body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.command-preview::-webkit-scrollbar{width:4px}.command-preview::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.bar-item.placing{background:#2d1f00;border-left:3px solid var(--color-accent)}.bar-item.selected{background:#1e3a5f;border-left:3px solid var(--color-info)}.bar-item.selected .bar-number{color:var(--color-info)}.alphatab-wrapper{display:flex;flex-direction:column;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.alphatab-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:8px 20px;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.alphatab-header-left{display:flex;align-items:center;gap:12px}.midi-transport{display:flex;align-items:center;gap:4px;padding-left:8px;border-left:1px solid var(--color-border)}.midi-transport-label{font-size:10px;font-weight:600;letter-spacing:.05em;color:#8a99b3;text-transform:uppercase;margin-right:2px}.midi-transport-hint{font-size:11px;color:#8a99b3;font-style:italic;margin-left:4px}.alphatab-header-right{display:flex;align-items:center;gap:8px}.alphatab-title{font-size:14px;font-weight:600;color:var(--color-text-bright)}.alphatab-track-name{font-size:12px;color:var(--color-text-muted)}.track-selector{position:relative}.track-selector-trigger{display:flex;align-items:center;gap:5px;background:var(--color-bg-surface);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.track-selector-trigger:hover,.track-selector-trigger.open{background:var(--color-border);color:var(--color-text-primary)}.track-selector-caret{transition:transform var(--transition-fast)}.track-selector-caret.open{transform:rotate(180deg)}.track-selector-dropdown{position:absolute;right:0;top:calc(100% + 4px);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:6px 8px;font-size:12px;color:var(--color-text-primary);z-index:100;box-shadow:0 4px 16px #0006;min-width:180px}.track-selector-actions{display:flex;gap:4px;margin-bottom:4px}.track-selector-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.track-selector-item{display:flex;align-items:center;justify-content:space-between;gap:6px}.track-selector-label{display:flex;align-items:center;gap:5px;cursor:pointer;flex:1;min-width:0}.track-selector-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-selector-controls{display:flex;gap:2px;flex-shrink:0}.track-selector-btn{background:var(--color-bg-surface);border:1px solid var(--color-border);color:var(--color-text-muted);padding:1px 5px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;cursor:pointer;line-height:1.4;transition:background var(--transition-fast),color var(--transition-fast)}.track-selector-btn:hover{background:var(--color-border);color:var(--color-text-primary)}.track-selector-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.playhead-selector{background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:4px 8px;border-radius:4px;font-size:12px;cursor:pointer;min-width:120px}.playhead-selector:hover{background:var(--color-border-strong)}.playhead-selector:focus{outline:none;border-color:var(--color-info)}.alphatab-score-area{position:relative;min-height:300px;height:auto;width:100%;overflow:visible}.alphatab-container{position:relative;min-height:300px;height:auto;width:100%;overflow-x:auto;overflow-y:visible;background:var(--color-bg-base);will-change:transform}.alphatab-container[data-theme=light]{background:#fff}.alphatab-loading,.alphatab-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#00000073;font-size:.85rem;color:var(--color-text-muted);z-index:10;pointer-events:none}.alphatab-error{color:var(--color-danger)}.score-fullscreen-toggle{background:transparent;border:1px solid var(--color-border);border-radius:6px;padding:3px 8px;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:background .12s,color .12s;line-height:1;margin-left:8px}.score-fullscreen-toggle:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.score-fullscreen-toggle.active{background:var(--color-bg-elevated);color:var(--color-accent);border-color:var(--color-accent)}.alphatab-wrapper--fullscreen{position:fixed;inset:0;z-index:200;background:var(--color-bg-surface);border-bottom:none}.alphatab-wrapper--fullscreen .alphatab-score-area{flex:1;min-height:0;overflow:hidden}.alphatab-wrapper--fullscreen .alphatab-container{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto}.alphatab-wrapper--fullscreen .score-playhead-overlay{bottom:auto;height:60000px}.score-theme-toggle{display:flex;gap:2px;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;margin-left:8px}.score-theme-toggle button{background:transparent;border:none;padding:3px 8px;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:background .12s;line-height:1}.score-theme-toggle button.active{background:var(--color-bg-elevated);color:var(--color-text-primary)}.score-theme-toggle button:hover:not(.active){background:var(--color-bg-surface)}.waveform-scroll-container::-webkit-scrollbar{height:8px}.waveform-scroll-container::-webkit-scrollbar-track{background:var(--color-bg-base)}.waveform-scroll-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.waveform-scroll-container::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.alphatab-container .at-surface{background:transparent}.alphatab-container .at-surface svg{background:transparent}.alphatab-container::-webkit-scrollbar{height:8px}.alphatab-container::-webkit-scrollbar-track{background:var(--color-bg-base)}.alphatab-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.alphatab-container::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:16px;color:var(--color-text-muted)}.score-playhead-overlay{position:absolute;inset:0;pointer-events:none;z-index:10;will-change:transform;transform:translateZ(0)}.score-playhead-bar-highlight{position:absolute;background:#e67e2226;border-left:1px solid rgba(230,126,34,.3);border-right:1px solid rgba(230,126,34,.3)}.score-playhead-line{position:absolute;width:2px;background:var(--color-accent);box-shadow:0 0 4px #e67e2280}.audio-offset-indicator{position:absolute;top:8px;right:24px;background:#3498dbe6;color:#fff;font-size:12px;font-family:SF Mono,Fira Code,monospace;padding:4px 10px;border-radius:4px;z-index:20}.offset-drag-hint{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#000c;color:#fff;font-size:12px;padding:6px 12px;border-radius:4px;z-index:20;white-space:nowrap}.waveform-container.dragging-offset{cursor:ew-resize}.waveform-offset-overlay{position:absolute;inset:0;cursor:ew-resize;z-index:15;background:#3498db1a}.waveform-silence-gap{position:absolute;top:0;left:0;bottom:0;background:repeating-linear-gradient(-45deg,#3498db26,#3498db26 4px,#3498db0d 4px 8px);border-right:2px dashed rgba(52,152,219,.6);z-index:2}.waveform-inner{position:absolute;top:0;height:128px}.waveform-container [part=cursor]{display:none!important}.timeline-playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--color-accent);z-index:20;pointer-events:none;box-shadow:0 0 4px #e67e2280}.sync-warning-indicator{position:absolute;top:10px;right:10px;background-color:#ff0000b3;color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;font-weight:700;z-index:1000;animation:pulse 1s infinite}@keyframes pulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.waveform-placeholder,.alphatab-placeholder{display:flex;align-items:center;justify-content:center;height:100%;background:var(--color-bg-elevated);padding:20px}.waveform-placeholder{height:160px;padding:16px 24px}.audio-source-input.compact{max-width:520px}.waveform-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#00000073;color:var(--color-text-muted);font-size:.85rem;z-index:10;pointer-events:none;border-radius:inherit}@keyframes waveform-spin{to{transform:rotate(360deg)}}.waveform-loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-text-muted, #888);border-top-color:var(--color-primary, #3498db);border-radius:50%;animation:waveform-spin .8s linear infinite;flex-shrink:0}.audio-source-input.compact .source-type-tabs{margin-bottom:8px}.audio-source-input.compact .source-type-tabs .tab{padding:5px 16px;font-size:12px}.audio-source-input.compact .file-drop-zone{padding:10px 20px}.audio-source-input.compact .youtube-form{margin-top:0}.alphatab-placeholder{height:280px;background:var(--color-bg-surface)}.placeholder-content{text-align:center;max-width:500px}.placeholder-content h3{font-size:16px;color:var(--color-text-bright);margin-bottom:8px}.placeholder-content p{font-size:14px;color:var(--color-text-muted);margin-bottom:20px}.audio-source-input,.gp-source-input{width:100%;max-width:480px}.source-type-tabs{display:flex;gap:0;margin-bottom:16px;border:1px solid var(--color-border-strong);border-radius:4px;overflow:hidden}.source-type-tabs .tab{flex:1;background:var(--color-border);border:none;color:var(--color-text-primary);padding:8px 16px;cursor:pointer;font-size:13px;transition:all .15s}.source-type-tabs .tab:hover:not(:disabled){background:var(--color-border-strong)}.source-type-tabs .tab.active{background:var(--color-info);color:#fff;font-weight:600}.source-type-tabs .tab:disabled{opacity:.4;cursor:not-allowed}.file-drop-zone{border:2px dashed var(--color-border-strong);border-radius:8px;padding:32px 20px;text-align:center;cursor:pointer;transition:all .2s;background:var(--color-bg-base)}.file-drop-zone:hover{border-color:var(--color-info);background:var(--color-bg-elevated)}.file-drop-zone.dragging{border-color:var(--color-accent);background:#1e2f1e}.file-drop-zone p{margin:0 0 4px;color:var(--color-text-primary);font-size:14px}.file-hint{font-size:12px!important;color:var(--color-text-muted)!important}.youtube-form{display:flex;gap:8px}.youtube-input{flex:1;background:var(--color-bg-base);border:1px solid var(--color-border-strong);color:var(--color-text-bright);padding:8px 12px;border-radius:4px;font-size:14px}.youtube-input:focus{outline:none;border-color:var(--color-info)}.youtube-submit{background:var(--color-accent);border:1px solid var(--color-accent-hover);color:#fff;padding:8px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:background .15s;white-space:nowrap}.youtube-submit:hover:not(:disabled){background:var(--color-accent-hover)}.youtube-submit:disabled{opacity:.5;cursor:not-allowed}.yt-auth-prompt{margin-top:12px;padding:12px 14px;background:var(--color-bg-elevated);border:1px solid var(--color-accent);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.yt-auth-prompt__title{font-weight:600;color:var(--color-text-bright);margin:0 0 6px}.yt-auth-prompt__instruction{margin:0 0 8px;color:var(--color-text-secondary)}.yt-auth-prompt__instruction a{color:var(--color-accent)}.yt-auth-prompt__code{font-family:var(--font-mono);font-size:1.4em;letter-spacing:.12em;color:var(--color-text-bright);text-align:center;padding:8px 0;margin-bottom:8px}.yt-auth-prompt__hint{margin:0;color:var(--color-text-muted);font-style:italic}.error-message{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:10px 14px;background:#e74c3c26;border:1px solid rgba(231,76,60,.4);border-radius:4px;color:var(--color-danger);font-size:13px}.error-dismiss{background:none;border:none;color:var(--color-danger);cursor:pointer;font-size:20px;font-weight:700;padding:0 4px;line-height:1;opacity:.7;transition:opacity .15s}.error-dismiss:hover{opacity:1}.info-message{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:10px 14px;background:#2ecc7126;border:1px solid rgba(46,204,113,.4);border-radius:4px;color:var(--color-success);font-size:13px}.info-dismiss{background:none;border:none;color:var(--color-success);cursor:pointer;font-size:20px;font-weight:700;padding:0 4px;line-height:1;opacity:.7;transition:opacity .15s}.info-dismiss:hover{opacity:1}@media(max-width:768px){.placeholder-content{padding:0 20px}.audio-source-input,.gp-source-input{max-width:100%}.file-drop-zone{padding:24px 16px}.youtube-form{flex-direction:column}.youtube-submit{width:100%}}.cue-marker{position:absolute;top:0;bottom:0;cursor:grab;pointer-events:auto;z-index:10;transition:transform .1s ease}.cue-marker:hover{z-index:15}.cue-marker.dragging{cursor:grabbing;z-index:20}.cue-marker-handle{position:absolute;top:0;bottom:0;width:3px;background:#9b59b6;border-radius:1px;transition:background .15s,width .15s,box-shadow .15s}.cue-marker:hover .cue-marker-handle{width:4px;background:#a66bbe;box-shadow:0 0 6px #9b59b680}.cue-marker.dragging .cue-marker-handle{width:4px;background:#c39bd3;box-shadow:0 0 10px #9b59b6b3}.cue-marker-label{position:absolute;top:2px;left:6px;font-size:10px;font-weight:600;color:#9b59b6;white-space:nowrap;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.5);transition:color .15s}.cue-marker:hover .cue-marker-label{color:#c39bd3}.cue-marker.dragging .cue-marker-label{color:#d7bde2}.cue-marker--off-timeline .cue-marker-handle{background:#ffa500e6;box-shadow:0 0 6px #ffa50099}.cue-marker--off-timeline .cue-marker-label{color:#ffa500e6}.cue-marker--off-timeline .cue-marker-label:before{content:"← "}.cue-marker-tempo{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#000000d9;color:var(--color-accent);font-size:11px;font-weight:600;font-family:SF Mono,Fira Code,monospace;padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:25;box-shadow:0 2px 8px #0000004d}.loop-marker-popover{position:fixed;z-index:200;background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:6px;padding:8px 10px;display:flex;gap:6px;align-items:center;box-shadow:0 4px 16px #0006}.loop-marker-popover__input{background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:12px;padding:3px 6px;width:90px;outline:none}.loop-marker-popover__input:focus{border-color:var(--color-info)}.loop-marker-popover__delete{background:none;border:1px solid var(--color-danger);border-radius:4px;color:var(--color-danger);cursor:pointer;font-size:14px;line-height:1;padding:2px 7px}.cue-marker-popover{position:fixed;z-index:200;background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:6px;padding:10px 12px;box-shadow:0 4px 16px #0006;display:flex;flex-direction:column;gap:8px;min-width:230px}.cue-marker-popover__row{display:flex;align-items:center;gap:6px}.cue-marker-popover__label{font-size:11px;color:var(--color-text-muted);white-space:nowrap;min-width:40px}.cue-marker-popover__input{background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:12px;padding:3px 6px;width:64px;outline:none}.cue-marker-popover__input:focus{border-color:var(--color-info)}.cue-marker-popover__time{width:100px}.cue-marker-popover__actions{display:flex;gap:6px;justify-content:flex-end}.cue-marker-popover__save{background:var(--color-info);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:4px 12px}.cue-marker-popover__save:hover{background:var(--color-info-hover)}.cue-marker-popover__delete{background:none;border:1px solid var(--color-danger);border-radius:4px;color:var(--color-danger);cursor:pointer;font-size:12px;padding:4px 12px}.cue-marker-popover__delete:hover{background:#e74c3c1a}.midi-trigger-markers{position:absolute;inset:0;pointer-events:none}.midi-trigger-marker{position:absolute;top:0;bottom:0;cursor:grab;pointer-events:auto!important;z-index:9}.midi-trigger-marker:hover{z-index:14}.midi-trigger-marker.dragging{cursor:grabbing;z-index:19}.midi-trigger-marker-handle{position:absolute;top:0;bottom:8px;width:2px;background:#888;border-radius:1px 1px 0 0;transition:background .15s,width .15s,box-shadow .15s}.midi-trigger-marker-handle:after{content:"";position:absolute;bottom:-7px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #888;transition:border-top-color .15s}.midi-trigger-marker:hover .midi-trigger-marker-handle{background:#bbb;box-shadow:0 0 5px #c8c8c84d}.midi-trigger-marker:hover .midi-trigger-marker-handle:after{border-top-color:#bbb}.midi-trigger-marker.dragging .midi-trigger-marker-handle{background:#ddd;box-shadow:0 0 8px #dcdcdc66}.midi-trigger-marker.dragging .midi-trigger-marker-handle:after{border-top-color:#ddd}.midi-trigger-marker-label{position:absolute;top:4px;left:5px;font-size:9px;font-weight:600;color:#888;white-space:nowrap;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.6);transition:color .15s}.midi-trigger-marker:hover .midi-trigger-marker-label{color:#bbb}.midi-trigger-marker-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:6px;background:#000000e0;border:1px solid rgba(180,180,180,.3);border-radius:5px;padding:4px 8px;white-space:nowrap;pointer-events:none;z-index:30;display:flex;flex-direction:column;gap:1px}.midi-trigger-marker-tooltip-time{font-size:11px;font-weight:700;color:#ccc;font-family:SF Mono,Fira Code,monospace}.midi-trigger-marker-tooltip-msg{font-size:10px;color:#ffffff73}.measure-markers{position:absolute;inset:0;pointer-events:none;z-index:4}.measure-marker{position:absolute;top:0;bottom:0;width:12px;transform:translate(-5px);pointer-events:auto;cursor:context-menu;z-index:4}.measure-marker__line{position:absolute;top:0;bottom:0;left:5px;width:1px;background:#fff6;transition:background .12s}.measure-marker:hover .measure-marker__line{background:#64d2ffe6;box-shadow:0 0 4px #64d2ff80}.measure-marker--synced .measure-marker__line{background:#ffffff1f}.measure-marker--synced:hover .measure-marker__line{background:#64d2ff66}.measure-marker__label{position:absolute;top:2px;left:8px;font-size:9px;font-weight:700;color:#c8ebffd9;white-space:nowrap;pointer-events:none;line-height:1;text-shadow:0 1px 3px rgba(0,0,0,.9);letter-spacing:.03em}.measure-marker:hover .measure-marker__label{color:#fff}.measure-marker-menu{position:fixed;z-index:1000;background:#1e2535;border:1px solid rgba(100,210,255,.35);border-radius:6px;padding:8px;min-width:190px;box-shadow:0 4px 16px #00000080;display:flex;flex-direction:column;gap:6px}.measure-marker-menu__header{font-size:11px;font-weight:700;color:#c8ebffe6;display:flex;align-items:center;gap:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08)}.measure-marker-menu__synced-badge{font-size:9px;font-weight:600;color:#9b59b6;background:#9b59b626;border:1px solid rgba(155,89,182,.4);border-radius:3px;padding:1px 4px}.measure-marker-menu__row{display:flex;align-items:center;gap:6px}.measure-marker-menu__label{font-size:10px;color:#ffffff8c;white-space:nowrap}.measure-marker-menu__input{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff;font-size:11px;padding:3px 6px;outline:none;min-width:0}.measure-marker-menu__input:focus{border-color:#64d2ff99;background:#64d2ff0f}.measure-marker-menu__actions{display:flex;gap:6px}.measure-marker-menu__save{flex:1;padding:4px 8px;font-size:10px;font-weight:600;background:#64d2ff26;border:1px solid rgba(100,210,255,.4);border-radius:4px;color:#64d2fff2;cursor:pointer;transition:background .15s}.measure-marker-menu__save:hover{background:#64d2ff40}.measure-marker-menu__delete{padding:4px 8px;font-size:10px;font-weight:600;background:#e74c3c1a;border:1px solid rgba(231,76,60,.4);border-radius:4px;color:#e74c3ce6;cursor:pointer;transition:background .15s}.measure-marker-menu__delete:hover{background:#e74c3c33}.section-context-menu{position:fixed;z-index:1000;background:#1e2535;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px;min-width:170px;box-shadow:0 4px 16px #00000080;display:flex;flex-direction:column;gap:2px}.section-context-menu__header{font-size:10px;font-weight:700;color:#c8ebff99;padding:4px 8px 6px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-context-menu__item{background:transparent;border:none;color:#ffffffd9;font-size:12px;text-align:left;padding:6px 10px;border-radius:4px;cursor:pointer;width:100%}.section-context-menu__item:hover{background:#ffffff14}.section-context-menu__item--merge{color:#ffd250e6}.section-context-menu__item--merge:hover{background:#ffd2501a}.timeline-playhead.playhead-audio,.score-playhead-line.playhead-audio{background:var(--color-accent);box-shadow:0 0 4px #e67e2280}.timeline-playhead.playhead-midi,.score-playhead-line.playhead-midi{background:var(--color-info);box-shadow:0 0 4px #3498db80;opacity:.8}.bar-ruler-markers{position:absolute;top:0;left:0;right:0;height:24px;pointer-events:none;z-index:5}.bar-ruler-marker{position:absolute;top:0;height:24px;display:flex;align-items:center;justify-content:center}.bar-ruler-marker-indicator{position:absolute;top:0;left:0;right:0;height:4px;background:#9b59b6;border-radius:0 0 2px 2px;opacity:.8}.bar-ruler-marker.dragging .bar-ruler-marker-indicator{background:#c39bd3;opacity:1;height:6px}.bar-ruler-marker-label{font-size:9px;font-weight:600;color:#9b59b6;margin-top:6px;pointer-events:none}.bar-ruler-marker.dragging .bar-ruler-marker-label{color:#d7bde2}.export-video-progress{display:flex;align-items:center;gap:8px;min-width:200px}.export-video-progress-bar{flex:1;height:6px;background:var(--color-bg-surface);border-radius:3px;overflow:hidden}.export-video-progress-fill{height:100%;background:#ff9800;transition:width .3s ease}.export-video-progress-text{font-size:11px;color:var(--color-text-secondary);white-space:nowrap}.export-video-controls{display:flex;flex-direction:row;align-items:center;gap:8px}.export-video-options{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:11px}.export-video-playhead-mode{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--color-text-secondary)}.export-video-label{font-size:11px;font-weight:500;color:#abc}.export-video-radio{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--color-text-secondary)}.export-video-radio input[type=radio]{cursor:pointer}.export-video-radio span{font-size:11px}.export-video-checkbox{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--color-text-secondary)}.export-video-checkbox input[type=checkbox]{cursor:pointer}.export-video-time-inputs{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary)}.export-video-time-input{width:60px;padding:2px 6px;background:var(--color-bg-surface);border:1px solid #2a3f66;border-radius:3px;color:#fff;font-size:11px}.export-video-time-input:focus{outline:none;border-color:#ff9800}.export-video-time-hint{font-size:10px;color:#678}.export-overlay{position:absolute;inset:0;background:#1a2744f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.export-overlay-content{display:flex;flex-direction:column;align-items:center;gap:24px;padding:40px;background:#2a3f6699;border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;min-width:400px}.export-spinner-container{position:relative;width:80px;height:80px}.export-spinner{position:relative;width:100%;height:100%}.export-spinner-ring{position:absolute;width:100%;height:100%;border:3px solid transparent;border-radius:50%;animation:spin 2s cubic-bezier(.5,0,.5,1) infinite}.export-spinner-ring:nth-child(1){border-top-color:#ff9800;animation-delay:-.45s}.export-spinner-ring:nth-child(2){border-top-color:#ffc947;animation-delay:-.3s}.export-spinner-ring:nth-child(3){border-top-color:#ffe082;animation-delay:-.15s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.export-status{text-align:center}.export-status-title{font-size:18px;font-weight:600;color:var(--color-text-bright);margin-bottom:8px}.export-status-subtitle{font-size:14px;color:#abc}.export-progress-container{width:100%;display:flex;flex-direction:column;gap:8px}.export-progress-bar{width:100%;height:8px;background:var(--color-bg-surface);border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 3px #0000004d}.export-progress-fill{height:100%;background:linear-gradient(90deg,#ff9800,#ffc947);border-radius:4px;transition:width .5s ease-out;box-shadow:0 0 10px #ff980080;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.export-progress-text{font-size:12px;color:var(--color-text-secondary);text-align:center;font-weight:500}.export-overlay .export-cancel-btn{margin-top:8px;padding:10px 24px;background:var(--color-danger);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease}.export-overlay .export-cancel-btn:hover{background:#c0392b}.exporting .btn:not(.export-cancel-btn),.exporting input:not(.export-cancel-btn),.exporting select:not(.export-cancel-btn),.exporting .waveform-container,.exporting .alphatab-container{pointer-events:none;opacity:.5;cursor:not-allowed}.stem-mixer{display:flex;flex-direction:column;background:var(--color-bg-base)}.stem-mixer__body{padding:16px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.stem-mixer__toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-primary);cursor:pointer}.stem-mixer__toggle input[type=checkbox]{cursor:pointer}.stem-mixer__start{display:flex;flex-direction:column;gap:12px}.stem-mixer__description{font-size:13px;color:var(--color-text-secondary);margin:0;line-height:1.4}.stem-mixer__notice,.stem-mixer__hint{font-size:12px;color:var(--color-text-secondary);margin:0;line-height:1.4}.stem-mixer__warning{font-size:12px;line-height:1.4;margin:0;padding:6px 8px;border-radius:4px;background:#ff98001f;border:1px solid rgba(255,152,0,.35);color:var(--color-text-primary)}.stem-mixer__stop-btn{align-self:center;font-size:12px;padding:4px 14px;border-radius:12px;border:1px solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer}.stem-mixer__stop-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.stem-mixer__model-select{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-primary)}.stem-mixer__model-select label{font-weight:500}.stem-mixer__model-select select{flex:1;background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:6px 8px;border-radius:4px;font-size:12px;cursor:pointer}.stem-mixer__model-select select:focus{outline:none;border-color:var(--color-info)}.stem-mixer__start-btn{background:var(--color-accent);border:1px solid var(--color-accent-hover);color:#fff;padding:10px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s}.stem-mixer__start-btn:hover{background:var(--color-accent-hover)}.stem-mixer__progress{display:flex;flex-direction:column;gap:8px}.stem-mixer__progress-bar{width:100%;height:6px;background:var(--color-bg-surface);border-radius:3px;overflow:hidden}.stem-mixer__progress-fill{height:100%;background:var(--color-info);transition:width .3s ease}.stem-mixer__progress-bar--indeterminate .stem-mixer__progress-fill{width:40%!important;animation:stem-progress-shimmer 1.5s ease-in-out infinite}@keyframes stem-progress-shimmer{0%{transform:translate(-100%);opacity:.6}50%{transform:translate(150%);opacity:1}to{transform:translate(150%);opacity:.6}}.stem-mixer__elapsed{color:var(--color-text-muted);font-size:.85em;margin-left:4px}.stem-mixer__progress-text{font-size:12px;color:var(--color-text-secondary);text-align:center}.stem-mixer__error{display:flex;flex-direction:column;gap:12px}.stem-mixer__error-message{padding:10px 12px;background:#e74c3c26;border:1px solid rgba(231,76,60,.4);border-radius:4px;color:var(--color-danger);font-size:12px;margin:0}.stem-mixer__header-actions{display:flex;gap:6px;align-items:center}.stem-mixer__mode-toggle{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;border:1px solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.stem-mixer__mode-toggle.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.stem-mixer__master{padding:4px 0 8px;border-bottom:1px solid var(--color-border)}.stem-mixer__master-label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--color-text-secondary);font-weight:500}.stem-mixer__master-label input[type=range]{width:100%}.stem-mixer__model-select{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);font-size:12px;padding:6px 8px;width:100%;margin-bottom:8px;cursor:pointer}.stem-mixer__model-select--compact{font-size:11px;padding:2px 4px;width:auto;margin-bottom:0}.stem-mixer__separate-btn{background:var(--color-accent);border:1px solid var(--color-accent-hover, var(--color-accent));color:#fff;padding:10px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s;width:100%}.stem-mixer__separate-btn:hover{filter:brightness(1.1)}.stem-mixer__separate-btn--locked{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;background:var(--color-premium);border-color:var(--color-premium);color:var(--color-premium-text);text-decoration:none}.stem-mixer__pro-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;padding:1px 6px;border-radius:3px;background:var(--color-premium-text);color:var(--color-premium)}.stem-mixer__stage{font-size:12px;color:var(--color-text-secondary);margin:0}.stem-mixer__progress-pct{font-size:12px;color:var(--color-text-secondary);text-align:center;margin:0}.stem-mixer__retry-btn{background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:8px 14px;border-radius:4px;cursor:pointer;font-size:12px;transition:background .15s}.stem-mixer__retry-btn:hover{background:var(--color-border-strong)}.stem-mixer__tracks{display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto;padding-bottom:12px}.stem-mixer__track{display:flex;flex-direction:column;gap:6px}.stem-mixer__track-header{display:flex;align-items:center;justify-content:space-between}.stem-mixer__track-name{font-size:12px;font-weight:600;color:var(--color-text-bright)}.stem-mixer__track-btns{display:flex;gap:4px;align-items:center}.stem-mixer__pan-knob{cursor:ns-resize;flex-shrink:0;display:block;-webkit-user-select:none;user-select:none}.stem-mixer__mute,.stem-mixer__solo{width:22px;height:22px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-text-secondary);border-radius:3px;cursor:pointer;font-size:10px;font-weight:700;padding:0;line-height:1}.stem-mixer__mute.active{background:var(--color-warning);border-color:var(--color-warning);color:#000}.stem-mixer__solo.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.stem-mixer__download-btn{width:22px;height:22px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}.stem-mixer__download-btn:hover{background:var(--color-bg-hover)}.stem-mixer__reseparate-btn,.stem-mixer__download-all-btn{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;border:1px solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;text-decoration:none}.stem-mixer__reseparate-btn:hover,.stem-mixer__download-all-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.stem-mixer__track-slider{width:100%}.stem-mixer__slider-wrap{position:relative;flex:1}.stem-mixer__slider-wrap input[type=range]{width:100%}.stem-mixer__slider-edit{display:flex;align-items:center;gap:3px;width:100%}.stem-mixer__slider-edit input[type=number]{flex:1;min-width:0;background:var(--color-bg-elevated);border:1px solid var(--color-info);color:var(--color-text-bright);font-size:12px;font-weight:600;text-align:right;border-radius:3px;padding:1px 4px;outline:none;-moz-appearance:textfield}.stem-mixer__slider-edit input[type=number]::-webkit-outer-spin-button,.stem-mixer__slider-edit input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.stem-mixer__slider-edit-unit{font-size:11px;color:var(--color-text-secondary);flex-shrink:0}.stem-mixer__gradient-slider{-webkit-appearance:none;appearance:none;margin:0;height:4px;border-radius:2px;outline:none;cursor:pointer}.stem-mixer__gradient-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--color-info);border-radius:50%;cursor:pointer;transition:background .15s}.stem-mixer__gradient-slider::-webkit-slider-thumb:hover{background:var(--color-info-hover, var(--color-info));filter:brightness(1.2)}.stem-mixer__gradient-slider::-moz-range-thumb{width:14px;height:14px;background:var(--color-info);border:none;border-radius:50%;cursor:pointer;transition:background .15s}.stem-mixer__master{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.stem-mixer__master-label{font-size:12px;font-weight:600;color:var(--color-text-bright);min-width:50px}.stem-mixer__master-slider{flex:1;height:4px;background:var(--color-border);border-radius:2px;outline:none;cursor:pointer}.stem-mixer__master-slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:var(--color-info);border-radius:50%;cursor:pointer;transition:background .15s}.stem-mixer__master-slider::-webkit-slider-thumb:hover{background:var(--color-info-hover)}.stem-mixer__master-slider::-moz-range-thumb{width:14px;height:14px;background:var(--color-info);border:none;border-radius:50%;cursor:pointer;transition:background .15s}.stem-mixer__master-slider::-moz-range-thumb:hover{background:var(--color-info-hover)}.stem-track{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--color-bg-surface);border-radius:4px;transition:opacity .15s}.stem-track__header{display:flex;align-items:center;gap:8px}.stem-track__color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.stem-track__name{font-size:13px;font-weight:600;color:var(--color-text-bright);flex:1}.stem-track__controls{display:flex;gap:4px}.stem-btn-mute,.stem-btn-solo{min-width:28px;height:24px;background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);border-radius:3px;cursor:pointer;font-size:11px;font-weight:600;transition:all .15s}.stem-btn-mute:hover,.stem-btn-solo:hover{background:var(--color-border-strong);color:var(--color-text-primary)}.stem-btn-mute.active{background:var(--color-danger);border-color:#c0392b;color:#fff}.stem-btn-solo.active{background:var(--color-warning);border-color:var(--color-accent);color:#fff}.stem-track__sliders{display:flex;flex-direction:column;gap:6px}.stem-track__slider-group{display:flex;align-items:center;gap:8px}.stem-track__slider-label{font-size:11px;color:var(--color-text-secondary);min-width:28px;font-weight:500}.stem-volume-slider,.stem-pan-slider{flex:1;height:3px;background:var(--color-border);border-radius:2px;outline:none;cursor:pointer}.stem-volume-slider::-webkit-slider-thumb,.stem-pan-slider::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:var(--color-info);border-radius:50%;cursor:pointer;transition:background .15s}.stem-volume-slider::-webkit-slider-thumb:hover,.stem-pan-slider::-webkit-slider-thumb:hover{background:var(--color-info-hover)}.stem-volume-slider::-moz-range-thumb,.stem-pan-slider::-moz-range-thumb{width:12px;height:12px;background:var(--color-info);border:none;border-radius:50%;cursor:pointer;transition:background .15s}.stem-volume-slider::-moz-range-thumb:hover,.stem-pan-slider::-moz-range-thumb:hover{background:var(--color-info-hover)}.stem-mixer__tracks::-webkit-scrollbar{width:4px}.stem-mixer__tracks::-webkit-scrollbar-track{background:var(--color-bg-base)}.stem-mixer__tracks::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.stem-mixer__tracks::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.practice-panel{flex:1;min-width:280px;max-width:380px}.practice-panel__body{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-bg-base);height:100%;box-sizing:border-box;overflow-y:auto}.practice-panel__mode-toggle{display:flex;gap:0;border:1px solid var(--color-border);border-radius:4px;overflow:hidden}.practice-panel__mode-btn{flex:1;padding:5px 0;font-size:12px;font-weight:500;background:var(--color-bg-surface);color:var(--color-text-secondary);border:none;cursor:pointer;transition:background .15s,color .15s}.practice-panel__mode-btn:first-child{border-right:1px solid var(--color-border)}.practice-panel__mode-btn:hover:not(:disabled){background:#1e2e4a;color:var(--color-text-primary)}.practice-panel__mode-btn.active{background:var(--color-border);color:var(--color-text-bright)}.practice-panel__mode-btn:disabled{opacity:.5;cursor:not-allowed}.practice-panel__mode-desc{font-size:10px;color:var(--color-text-secondary);text-align:center;margin-top:-6px}.practice-panel__settings{display:flex;flex-direction:column;gap:10px}.practice-panel__setting-row{display:flex;align-items:center;gap:8px}.practice-panel__setting-row--col{flex-direction:column;align-items:flex-start}.practice-panel__label{font-size:12px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;min-width:72px}.practice-panel__hint{font-size:11px;color:var(--color-text-secondary)}.practice-panel__select{background:var(--color-border);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:5px 8px;border-radius:4px;font-size:12px;cursor:pointer}.practice-panel__select:focus{outline:none;border-color:var(--color-accent)}.practice-panel__pitch-grid{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:4px}.practice-panel__checkbox-label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-primary);cursor:pointer}.practice-panel__checkbox-label input[type=checkbox]{cursor:pointer;accent-color:var(--color-accent)}.btn-generate{background:var(--color-accent);color:#fff;border:none;padding:9px 16px;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;width:100%;transition:background .15s}.btn-generate:hover:not(:disabled){background:var(--color-accent-hover)}.btn-generate:disabled{opacity:.5;cursor:not-allowed}.practice-panel__progress-area{display:flex;flex-direction:column;gap:6px}.practice-panel__progress-label{font-size:11px;color:var(--color-text-secondary);min-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-panel__progress-track{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.practice-panel__progress-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width .2s ease}.practice-panel__error{font-size:12px;color:var(--color-danger);background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:4px;padding:8px 10px}.practice-panel__files{flex:1;overflow-y:auto}.practice-panel__table{width:100%;border-collapse:collapse;font-size:12px;color:var(--color-text-primary)}.practice-panel__table th{text-align:left;padding:5px 6px;font-size:11px;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.practice-panel__table td{padding:5px 6px;border-bottom:1px solid var(--color-bg-surface);vertical-align:middle}.practice-panel__table tr.active td{background:#1a3060}.practice-panel__table tr:hover td{background:#1e2e4a}.practice-panel__table tr.active:hover td{background:#1a3060}.practice-panel__actions{display:flex;gap:4px;align-items:center}.btn-xs{padding:2px 7px;font-size:11px;background:var(--color-border);color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:3px;cursor:pointer;text-decoration:none;display:inline-block;line-height:1.4}.btn-xs:hover{background:var(--color-border-strong)}.btn-sm{padding:5px 10px;font-size:12px;background:var(--color-border);color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:4px;cursor:pointer}.btn-sm:hover{background:var(--color-border-strong)}.btn-sm.active{background:var(--color-info);border-color:var(--color-info-hover);color:#fff}.btn-danger{background:#e74c3c26;border-color:#e74c3c66;color:var(--color-danger)}.btn-danger:hover{background:#e74c3c40}.loop-region{position:absolute;top:0;height:100%;background:#3498db1f;pointer-events:none;z-index:1}.loop-marker{position:absolute;top:0;height:100%;width:12px;cursor:ew-resize;z-index:6}.loop-marker-in{border-left:2px solid #27ae60;background:linear-gradient(to right,rgba(39,174,96,.15),transparent)}.loop-marker-in:before{content:"";position:absolute;top:0;left:0;width:0;height:0;border-left:8px solid #27ae60;border-bottom:8px solid transparent}.loop-marker-out{transform:translate(-12px);border-right:2px solid var(--color-accent);background:linear-gradient(to left,rgba(230,126,34,.15),transparent)}.loop-marker-out:before{content:"";position:absolute;top:0;right:0;width:0;height:0;border-right:8px solid var(--color-accent);border-bottom:8px solid transparent}.load-panel{min-width:260px;max-width:320px}.load-panel__new-btn{margin-left:auto;flex-shrink:0}.load-panel__drop-row-wrap{display:flex;align-items:stretch;gap:4px}.load-panel__drop-row-wrap .load-panel__drop-row{flex:1;min-width:0}.load-panel__remove-btn{flex-shrink:0;width:26px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.load-panel__remove-btn:hover{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.load-panel__confirm-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.load-panel__confirm-dialog{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:20px;max-width:280px;display:flex;flex-direction:column;gap:10px}.wizard{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:420px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden}.wizard__header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.wizard__title{font-size:13px;font-weight:600;color:var(--color-text-primary);flex:1}.wizard__step-indicator{font-size:11px;color:var(--color-text-muted)}.wizard__body{padding:16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;flex:1}.wizard__name-input{width:100%;box-sizing:border-box;background:var(--color-bg-input, var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:13px;padding:7px 10px}.wizard__name-input:focus{outline:none;border-color:var(--color-info)}.wizard__name-input::placeholder{color:var(--color-text-muted)}.wizard__name-input:disabled{opacity:.5}.wizard__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px;padding-top:10px;border-top:1px solid var(--color-border)}.wizard__file-ok{font-size:11px;color:var(--color-success, #4caf50);padding:6px 0}.load-panel__confirm-title{font-size:14px;font-weight:600;color:var(--color-text-bright)}.load-panel__confirm-body{font-size:13px;color:var(--color-text-secondary);line-height:1.4}.load-panel__confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.load-panel__body{padding:12px 14px;display:flex;flex-direction:column;gap:14px}.load-panel__section{display:flex;flex-direction:column;gap:5px}.load-panel__section-label{font-size:10px;font-weight:600;color:#5a7a9a;letter-spacing:.06em;text-transform:uppercase}.load-panel__drop-row{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;padding:6px 10px;cursor:pointer;transition:border-color .15s,background .15s}.load-panel__drop-row:hover,.load-panel__drop-row.dragging{border-color:var(--color-info);background:#12203a}.load-panel__filename{font-size:11px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.load-panel__browse{font-size:10px;color:#5a7a9a;white-space:nowrap;flex-shrink:0}.load-panel__hint{font-size:11px;color:var(--color-text-muted);margin:4px 0 0;padding:0}.load-panel__info{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#27ae60;background:#27ae6014;border:1px solid rgba(39,174,96,.2);border-radius:4px;padding:4px 8px;gap:6px}.load-panel__error{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--color-danger);background:#e74c3c14;border:1px solid rgba(231,76,60,.2);border-radius:4px;padding:4px 8px;gap:6px}.load-panel__dismiss{background:none;border:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;opacity:.7;flex-shrink:0}.load-panel__dismiss:hover{opacity:1}.load-panel__yt-row{display:flex;gap:6px}.load-panel__yt-input{flex:1;min-width:0;background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);padding:5px 8px;font-size:11px}.load-panel__yt-input:focus{outline:none;border-color:var(--color-info)}.load-panel__yt-input::placeholder{color:#4a5e7a}.load-panel__yt-input:disabled{opacity:.5}.load-panel__yt-history{width:100%;margin-top:6px;background:var(--color-bg-base);border:1px solid var(--color-border-strong);color:var(--color-text-primary);border-radius:4px;padding:4px 8px;font-size:11px;cursor:pointer}.load-panel__yt-history:focus{outline:none;border-color:var(--color-info)}.load-panel__yt-history:disabled{opacity:.5;cursor:not-allowed}.load-panel__yt-progress{margin-top:6px}.load-panel__yt-stage{font-size:10px;color:var(--color-text-secondary);margin-bottom:4px}.load-panel__progress-track{position:relative;height:4px;background:#1e2d45;border-radius:2px;overflow:hidden}.load-panel__progress-fill{height:100%;background:#e8834a;border-radius:2px;transition:width .2s ease}@keyframes yt-indeterminate{0%{left:-40%;width:40%}50%{left:30%;width:60%}to{left:100%;width:40%}}.load-panel__progress-indeterminate{position:absolute;height:100%;background:#e8834a;border-radius:2px;animation:yt-indeterminate 1.4s ease-in-out infinite}.library-card-list{display:flex;flex-direction:column;gap:5px}.library-card{background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;padding:6px 8px;display:flex;flex-direction:column;gap:4px;transition:border-color .15s}.library-card--active{border-color:var(--color-accent);background:#4e7dd612}.library-card__header{display:flex;align-items:center;gap:6px;min-width:0}.library-card__title{font-size:11px;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-card__actions{display:flex;align-items:center;gap:3px;flex-shrink:0}.library-card__load-btn{font-size:10px;padding:2px 7px;background:var(--color-accent);color:#fff;border:none;border-radius:3px;cursor:pointer;transition:opacity .15s;white-space:nowrap}.library-card__load-btn:hover:not(:disabled){opacity:.85}.library-card__load-btn:disabled{opacity:.4;cursor:not-allowed}.library-card__load-btn--small{font-size:9px;padding:2px 5px}.library-card__meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.library-card__meta-time{font-size:10px;color:var(--color-text-muted);margin-left:auto}.library-card__badge{font-size:9px;padding:1px 5px;border-radius:2px;border:1px solid}.library-card__badge--present{color:var(--color-success);border-color:#27ae604d;background:#27ae6012}.library-card__badge--absent{color:var(--color-text-muted);border-color:var(--color-border)}.library-card__variations-toggle{font-size:9px;background:none;border:1px solid var(--color-border);border-radius:2px;color:var(--color-text-secondary);padding:1px 5px;cursor:pointer;transition:border-color .15s,color .15s}.library-card__variations-toggle:hover{border-color:var(--color-info);color:var(--color-info)}.library-card__variations{display:flex;flex-direction:column;gap:3px;margin-top:2px;padding-top:4px;border-top:1px solid var(--color-border)}.library-card__variation{display:flex;align-items:center;gap:6px}.library-card__variation-label{font-size:10px;color:var(--color-text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ug-search__credentials-form{display:flex;flex-direction:column;gap:5px;padding:8px;background:#0a1020;border:1px solid var(--color-border);border-radius:4px}.ug-search__credentials-label{font-size:10px;color:#7a9ab8;text-transform:uppercase;letter-spacing:.05em}.ug-search__credentials-input{background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);padding:5px 8px;font-size:11px}.ug-search__credentials-input:focus{outline:none;border-color:var(--color-info)}.ug-search__credentials-input::placeholder{color:#4a5e7a}.ug-search__credentials-input:disabled{opacity:.5}.ug-search__credentials-actions{display:flex;gap:6px}.ug-search__credentials-status{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:11px}.ug-search__credentials-user{color:#4caf7d;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ug-search__credentials-change{background:none;border:none;color:#5a7a9a;font-size:10px;cursor:pointer;padding:0;flex-shrink:0}.ug-search__credentials-change:hover{color:var(--color-info)}.ug-search__form{display:flex;gap:6px}.ug-search__input{flex:1;min-width:0;background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-primary);padding:5px 8px;font-size:11px}.ug-search__input:focus{outline:none;border-color:var(--color-info)}.ug-search__input::placeholder{color:#4a5e7a}.ug-search__input:disabled{opacity:.5}.ug-search__results{max-height:160px;overflow-y:auto;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-base)}.ug-search__row{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:11px;border-bottom:1px solid #1e2d45}.ug-search__row:last-child{border-bottom:none}.ug-search__rating{color:#e8834a;font-weight:600;min-width:22px;text-align:right;flex-shrink:0}.ug-search__votes{color:#5a7a9a;font-size:10px;min-width:36px;flex-shrink:0}.ug-search__title{color:var(--color-text-primary);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ug-search__version{color:#5a7a9a;font-size:10px;flex-shrink:0}.ug-search__dl-btn{flex-shrink:0;padding:1px 6px!important;font-size:10px!important}.ug-search__pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.ug-search__page-info{font-size:10px;color:#5a7a9a}.ug-search__auth-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#e8834a;background:#e8834a14;border:1px solid rgba(232,131,74,.2);border-radius:4px;padding:6px 8px}.harmonic-panel,.harmonic-side-panel{width:300px;min-width:300px;background:var(--instrument-surface);border-left:1px solid var(--instrument-surface-border);display:flex;flex-direction:column}.harmonic-side-panel .panel-header{padding:8px 12px 6px;border-bottom:1px solid var(--instrument-surface-border)}.harmonic-side-panel .panel-header h2{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#fff6}.harmonic-side-panel .panel-body{padding:0;flex:1}.harmonic-side-panel .fretboard-harmonic-info{width:100%;min-width:0;background:none;border-left:none}.harmonic-panel .panel-header{padding:0 0 6px;border-bottom:1px solid var(--instrument-surface-border);background:transparent;margin-bottom:2px}.harmonic-panel .panel-header h2{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#fff6}.harmonic-panel .panel-body{padding:0;flex:1;overflow-y:visible}.harmonic-body{display:flex;flex-direction:column;gap:8px}.harmonic-hint{font-size:12px;color:var(--instrument-text-faint)}.harmonic-error{font-size:12px;color:var(--color-danger)}.harmonic-result{display:flex;flex-direction:column;gap:2px}.harmonic-key-label{font-size:22px;font-weight:700;color:var(--color-text-bright);letter-spacing:.5px}.harmonic-confidence{font-size:12px;color:var(--instrument-text-muted)}.harmonic-realtime{display:flex;flex-direction:column;gap:8px;margin-top:4px}.harmonic-divider{font-size:10px;color:var(--instrument-text-faint);text-transform:uppercase;letter-spacing:.08em;border-top:1px solid var(--color-border);padding-top:6px}.harmonic-chord-display{display:flex;flex-direction:column;gap:2px}.harmonic-chord-label{font-size:32px;font-weight:700;color:var(--color-text-bright);letter-spacing:.5px;line-height:1}.harmonic-chord-placeholder{font-size:32px;color:var(--color-border)}.harmonic-progression{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}.harmonic-next-chord{display:flex;align-items:baseline;gap:4px;font-size:22px;font-weight:600;color:var(--instrument-text-muted)}.harmonic-next-arrow{font-size:16px;color:var(--instrument-text-faint)}.harmonic-key-context{font-size:11px;color:var(--instrument-text-muted)}.harmonic-scales{display:flex;flex-direction:column;gap:4px}.harmonic-scales-label{font-size:10px;color:var(--instrument-text-faint);text-transform:uppercase;letter-spacing:.06em}.harmonic-scale-pills{display:flex;flex-wrap:wrap;gap:4px}.harmonic-scale-pill{background:#2d3f5e80;border:1px solid var(--color-border);border-radius:10px;color:var(--instrument-text-muted);padding:2px 8px;font-size:10px;font-weight:500;letter-spacing:.03em;cursor:pointer;white-space:nowrap}.harmonic-scale-pill.active{background:color-mix(in srgb,var(--instrument-accent) 20%,transparent);border-color:var(--instrument-accent);color:var(--instrument-accent)}.harmonic-scale-pill:hover:not(.active){border-color:var(--instrument-border-muted);color:var(--instrument-text-muted)}.harmonic-target-notes{margin-top:8px}.harmonic-note-row{display:flex;align-items:center;gap:6px;margin-top:4px}.harmonic-note-row-label{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--instrument-text-faint);width:36px;flex-shrink:0}.harmonic-note-pills{display:flex;flex-wrap:wrap;gap:3px}.harmonic-note-pill{border-radius:8px;padding:2px 7px;font-size:11px;font-weight:600;letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow .1s}.harmonic-note-pill.pinned{box-shadow:0 0 0 2px var(--instrument-accent)}.harmonic-note-chord{background:color-mix(in srgb,var(--color-success) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-success) 40%,transparent);color:var(--color-success)}.harmonic-note-guide{background:color-mix(in srgb,var(--instrument-accent) 15%,transparent);border:1px solid color-mix(in srgb,var(--instrument-accent) 40%,transparent);color:var(--instrument-accent)}.harmonic-note-extension{background:color-mix(in srgb,var(--instrument-tag-dominant) 15%,transparent);border:1px solid color-mix(in srgb,var(--instrument-tag-dominant) 40%,transparent);color:var(--instrument-tag-dominant)}.harmonic-note-avoid{background:color-mix(in srgb,var(--color-danger) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-danger) 40%,transparent);color:var(--color-danger)}.harmonic-note-altered{background:color-mix(in srgb,var(--instrument-tag-interchange) 15%,transparent);border:1px solid color-mix(in srgb,var(--instrument-tag-interchange) 40%,transparent);color:var(--instrument-tag-interchange)}.harmonic-chord-function{display:flex;align-items:center;gap:6px;margin-top:2px}.harmonic-roman-numeral{font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:700;color:var(--color-text-bright)}.harmonic-tag{font-size:9px;font-weight:600;letter-spacing:.04em;padding:1px 6px;border-radius:6px;text-transform:uppercase}.harmonic-tag-dominant{border:1px solid color-mix(in srgb,var(--instrument-tag-dominant) 50%,transparent);color:var(--instrument-tag-dominant)}.harmonic-tag-secondary-dom{border:1px solid color-mix(in srgb,var(--instrument-tag-secondary) 50%,transparent);color:var(--instrument-tag-secondary)}.harmonic-tag-interchange{border:1px solid color-mix(in srgb,var(--instrument-tag-interchange) 50%,transparent);color:var(--instrument-tag-interchange)}.fretboard-section{display:flex;flex-direction:row;background:var(--instrument-surface);border-top:1px solid var(--instrument-surface-border);border-bottom:1px solid var(--instrument-surface-border)}.fretboard-neck-wrapper{position:relative;flex:1 1 0;min-width:0;height:400px;overflow:hidden}.fretboard-neck-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:fill;display:block;z-index:0}.fretboard-svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:visible}.fretboard-tools{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding:10px;width:180px;overflow-y:auto;background:var(--instrument-surface-recessed);border-left:1px solid var(--instrument-surface-border)}.instrument-controls-eyebrow{font-family:var(--font-mono);font-size:9px;font-weight:var(--font-weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--instrument-text-faint);margin:0 0 2px}.scale-box-selector{display:flex;flex-direction:column;gap:6px}.scale-follow-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.scale-follow-label{display:flex;align-items:center;gap:4px;font-size:10px;color:#ffffff8c;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.scale-follow-label input[type=checkbox]{accent-color:var(--instrument-accent);width:12px;height:12px;cursor:pointer}.scale-root-select{font-size:10px;font-weight:600;padding:2px 4px;border:1px solid color-mix(in srgb,var(--instrument-accent) 40%,transparent);border-radius:4px;background:color-mix(in srgb,var(--instrument-accent) 8%,transparent);color:var(--instrument-accent);cursor:pointer;outline:none}.scale-box-systems{display:flex;gap:4px}.scale-box-system-btn{font-size:10px;font-weight:600;padding:3px 8px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:transparent;color:#ffffff80;cursor:pointer;transition:all .15s}.scale-box-system-btn:hover{border-color:color-mix(in srgb,var(--instrument-accent) 50%,transparent);color:#fffc}.scale-box-system-btn.active{background:color-mix(in srgb,var(--instrument-accent) 15%,transparent);border-color:color-mix(in srgb,var(--instrument-accent) 60%,transparent);color:var(--instrument-accent)}.scale-box-buttons{display:flex;gap:3px;flex-wrap:wrap}.scale-box-btn{width:24px;height:24px;font-size:10px;font-weight:700;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:transparent;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.scale-box-btn:hover{border-color:color-mix(in srgb,var(--instrument-accent) 50%,transparent);color:#fffc}.scale-box-btn.active{background:color-mix(in srgb,var(--instrument-accent) 20%,transparent);border-color:var(--instrument-accent);color:var(--instrument-accent)}.scale-manual-controls{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.scale-reset-btn{background:color-mix(in srgb,var(--color-danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-danger) 40%,transparent);color:var(--color-danger);border-radius:6px;padding:3px 8px;font-size:11px;cursor:pointer;transition:background .15s}.scale-reset-btn:hover{background:color-mix(in srgb,var(--color-danger) 25%,transparent)}.fretboard-side-panel{width:235px;min-width:235px;background:var(--instrument-surface);border-left:1px solid var(--instrument-surface-border)}.fretboard-harmonic-info{width:235px;min-width:200px;background:var(--instrument-surface);border-left:1px solid var(--instrument-surface-border);padding:12px 14px;display:flex;flex-direction:column;gap:8px;height:400px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.fretboard-harmonic-info>*{min-width:0}.fretboard-harmonic-progress{display:flex;flex-direction:column;gap:5px}.fretboard-harmonic-progress-label{font-size:11px;color:#ffffff80;letter-spacing:.04em}.fretboard-harmonic-progress-track{height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden}.fretboard-harmonic-progress-bar{height:100%;width:40%;border-radius:2px;background:linear-gradient(90deg,transparent,var(--instrument-accent),transparent);animation:harmonic-scan 1.6s ease-in-out infinite}@keyframes harmonic-scan{0%{transform:translate(-150%)}to{transform:translate(350%)}}.fretboard-harmonic-chord{display:flex;flex-direction:column;gap:2px}.fretboard-harmonic-chord-label{font-size:28px;font-weight:700;color:var(--instrument-text-strong);line-height:1.1}.fretboard-harmonic-key-context{font-size:12px;color:#ffffff8c}.fretboard-harmonic-progression{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}.fretboard-harmonic-next-chord{display:flex;align-items:baseline;gap:4px;font-size:20px;font-weight:600;color:#ffffff73}.fretboard-harmonic-arrow{font-size:14px;color:#ffffff40}.fretboard-harmonic-scales{display:flex;flex-direction:column;gap:4px}.fretboard-harmonic-scales-header{display:flex;align-items:center;justify-content:space-between}.fretboard-harmonic-scale-mode-select{background:#141e30cc;border:1px solid var(--color-border);border-radius:4px;color:var(--instrument-text-muted);font-size:9px;padding:1px 4px;cursor:pointer;outline:none}.fretboard-harmonic-scale-mode-select:hover{border-color:var(--instrument-border-muted);color:var(--instrument-text-muted)}.fretboard-harmonic-notes{display:flex;flex-wrap:wrap;gap:4px}.fretboard-harmonic-hint{font-size:11px;color:#ffffff59;margin:0;line-height:1.4}.fretboard-harmonic-empty{display:flex;flex-direction:column;gap:8px;padding:8px 0}.fretboard-harmonic-empty-title{font-size:13px;font-weight:600;color:var(--instrument-text-strong);margin:0}.fretboard-harmonic-empty-cta{align-self:flex-start;margin-top:2px;padding:5px 12px;font-size:11px;font-weight:600;color:var(--instrument-text-strong);background:color-mix(in srgb,var(--instrument-accent) 22%,transparent);border:1px solid color-mix(in srgb,var(--instrument-accent) 55%,transparent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.fretboard-harmonic-empty-cta:hover{background:color-mix(in srgb,var(--instrument-accent) 32%,transparent);border-color:var(--instrument-accent)}.fretboard-harmonic-function{display:flex;align-items:center;gap:5px;margin-top:1px}.fretboard-harmonic-roman{font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:700;color:#ffffffe6}.fretboard-harmonic-tag{font-size:8px;font-weight:600;letter-spacing:.04em;padding:1px 5px;border-radius:5px;text-transform:uppercase}.fretboard-tag-dominant{border:1px solid color-mix(in srgb,var(--instrument-tag-dominant) 50%,transparent);color:var(--instrument-tag-dominant)}.fretboard-tag-sec-dom{border:1px solid color-mix(in srgb,var(--instrument-tag-secondary) 50%,transparent);color:var(--instrument-tag-secondary)}.fretboard-tag-interchange{border:1px solid color-mix(in srgb,var(--instrument-tag-interchange) 50%,transparent);color:var(--instrument-tag-interchange)}.music-tooltip-wrap{display:inline-flex;align-items:center;cursor:default}.music-tooltip-content{position:fixed;transform:translateY(calc(-100% - 10px));background:var(--instrument-surface);border:1px solid var(--instrument-surface-border);color:var(--instrument-text-muted);font-size:11px;font-weight:400;font-family:system-ui,sans-serif;text-transform:none;letter-spacing:0;padding:8px 11px;border-radius:7px;width:210px;white-space:normal;line-height:1.55;pointer-events:none;z-index:9999;box-shadow:0 6px 18px #0000008c;animation:music-tooltip-in .12s ease-out}@keyframes music-tooltip-in{0%{opacity:0;transform:translateY(calc(-100% - 7px))}to{opacity:1;transform:translateY(calc(-100% - 10px))}}.fretboard-voice-leading-section{display:flex;flex-direction:column;gap:6px;margin-top:4px}.fretboard-voice-leading-toggle{font-size:10px;font-weight:600;padding:3px 8px;border-radius:6px;border:1px solid color-mix(in srgb,var(--instrument-tag-interchange) 40%,transparent);background:transparent;color:#ffffff80;cursor:pointer;align-self:flex-start;letter-spacing:.03em;transition:all .15s}.fretboard-voice-leading-toggle:hover{border-color:color-mix(in srgb,var(--instrument-tag-interchange) 70%,transparent);color:#fffc}.fretboard-voice-leading-toggle.active{background:color-mix(in srgb,var(--instrument-tag-interchange) 15%,transparent);border-color:color-mix(in srgb,var(--instrument-tag-interchange) 60%,transparent);color:var(--instrument-tag-interchange)}.fretboard-voice-leading{display:flex;flex-direction:column;gap:3px}.fretboard-vl-common{display:flex;align-items:center;gap:4px}.fretboard-vl-label{font-size:9px;font-weight:600;color:#fff6;text-transform:uppercase;letter-spacing:.06em;width:30px}.fretboard-vl-tone{font-size:11px;font-weight:600;color:var(--instrument-tag-interchange)}.fretboard-vl-movement{display:flex;align-items:center;gap:4px;font-size:11px}.fretboard-vl-from{color:#fff9;font-weight:600}.fretboard-vl-arrow{color:#ffffff40;font-size:10px}.fretboard-vl-to{color:var(--instrument-tag-interchange);font-weight:600}.fretboard-vl-interval{font-size:9px;color:#ffffff4d}.tuner-panel{width:210px}.tuner-instruments{display:flex;width:100%;border-bottom:1px solid var(--color-border);margin-bottom:8px}.tuner-instrument-btn{flex:1;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);font-size:12px;font-weight:600;padding:8px 4px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);margin-bottom:-1px}.tuner-instrument-btn:hover{color:var(--color-text-primary)}.tuner-instrument-btn.active{color:var(--color-text-bright);border-bottom-color:var(--color-accent)}.tuner-tuning-select{width:100%;background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:12px;padding:5px 8px;cursor:pointer;margin-bottom:12px;outline:none}.tuner-tuning-select:focus{border-color:var(--color-info)}.tuner-string-target{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted);margin-top:2px}.tuner-string-target-name{font-weight:600;color:var(--color-text-secondary)}.tuner-string-target-cents{font-variant-numeric:tabular-nums}.tuner-string-target-cents.in-tune{color:var(--color-success)}.tuner-body{display:flex;flex-direction:column;align-items:center;padding:12px 12px 16px;gap:0}.tuner-idle{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0;color:var(--color-text-muted)}.tuner-idle-icon{font-size:32px;line-height:1}.tuner-idle-text{font-size:12px}.tuner-error{font-size:12px;color:var(--color-danger);text-align:center;padding:8px 0}.tuner-display{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.tuner-note{font-size:52px;font-weight:700;line-height:1;color:var(--color-text-primary);letter-spacing:-2px;font-variant-numeric:tabular-nums;transition:color .15s;min-width:3ch;text-align:center}.tuner-note.in-tune{color:var(--color-success)}.tuner-freq{font-size:13px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.tuner-meter{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px}.tuner-meter-labels{display:flex;justify-content:space-between;width:100%;font-size:11px;color:var(--color-text-muted);padding:0 2px}.tuner-meter-track{position:relative;width:100%;height:12px;border-radius:6px;overflow:visible;display:flex;background:var(--color-bg-base);border:1px solid var(--color-border)}.tuner-meter-zone{flex:1;height:100%}.flat-zone{background:linear-gradient(to right,color-mix(in srgb,var(--color-info) 42%,var(--color-bg-base)),var(--color-border));border-radius:6px 0 0 6px}.in-tune-zone{background:color-mix(in srgb,var(--color-success) 32%,var(--color-bg-base));flex:0 0 20%}.sharp-zone{background:linear-gradient(to right,var(--color-border),color-mix(in srgb,var(--color-danger) 40%,var(--color-bg-base)));border-radius:0 6px 6px 0}.tuner-needle{position:absolute;top:-4px;width:3px;height:calc(100% + 8px);background:var(--color-text-primary);border-radius:2px;transform:translate(-50%);transition:left .05s linear,background .15s;box-shadow:0 0 4px #0009}.tuner-needle.in-tune{background:var(--color-success);box-shadow:0 0 6px #2ecc71b3}.tuner-cents{font-size:11px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.tuner-strings{display:flex;gap:4px;justify-content:center;margin-top:2px}.tuner-string{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--color-bg-surface);color:var(--color-text-muted);border:1px solid var(--color-border);transition:background .15s,color .15s}.tuner-string.closest{background:var(--color-border);color:var(--color-text-bright);border-color:var(--color-border-strong)}.mini-scale-diagram{margin-top:6px;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}.mini-scale-diagram-label{font-size:10px;font-weight:600;color:#ffffff80;margin-bottom:4px}.mini-scale-diagram-canvas{overflow:hidden;border-radius:4px}.mini-scale-diagram-canvas svg{background:transparent}.chord-diagram-section{padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}.chord-diagram-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.chord-diagram-label{font-size:10px;font-weight:600;color:#ffffff80}.chord-diagram-nav{display:flex;align-items:center;gap:4px}.chord-diagram-nav-btn{width:18px;height:18px;font-size:10px;border:1px solid rgba(255,255,255,.15);border-radius:3px;background:transparent;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.chord-diagram-nav-btn:hover{border-color:#ffffff4d;color:#fffc}.chord-diagram-voicing-name{font-size:9px;color:#fff6}.chord-diagram-canvas{display:flex;justify-content:center;overflow:hidden}.chord-diagram-canvas svg{background:transparent}.triad-map-section{padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}.triad-map-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.triad-map-label{font-size:10px;font-weight:600;color:#ffffff80}.triad-map-groups{display:flex;gap:3px}.triad-map-group-btn{font-size:9px;padding:2px 5px;border:1px solid rgba(255,255,255,.15);border-radius:3px;background:transparent;color:#fff6;cursor:pointer;transition:all .15s}.triad-map-group-btn:hover{border-color:#ffffff40;color:#fff9}.triad-map-group-btn.active{background:#ffffff14;border-color:#ffffff4d;color:#fffc}.triad-map-legend{display:flex;gap:8px;font-size:9px;margin-bottom:4px}.triad-map-canvas{overflow:hidden}.triad-map-canvas svg{background:transparent}.tuning-selector{display:flex;flex-direction:column;gap:3px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}.tuning-selector-label{font-size:10px;font-weight:600;color:#ffffff80}.tuning-selector-select{font-size:10px;padding:3px 6px;background:#141e30cc;border:1px solid var(--color-border);border-radius:4px;color:#ffffffb3;cursor:pointer}.tuning-selector-select:hover{border-color:var(--instrument-border-muted)}.scales-info{display:flex;flex-direction:column;gap:0;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}.label-mode-selector{display:flex;flex-direction:column;gap:3px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}.label-mode-label{font-size:10px;font-weight:600;color:#ffffff80}.label-mode-buttons{display:flex;gap:3px}.label-mode-btn{font-size:9px;padding:2px 6px;border:1px solid rgba(255,255,255,.15);border-radius:3px;background:transparent;color:#ffffff80;cursor:pointer;transition:all .15s}.label-mode-btn:hover{border-color:#ffffff4d;color:#fffc}.label-mode-btn.active{background:#ffffff14;border-color:#fff6;color:#ffffffe6}.fretboard-click-ring{animation:fretboard-ring-pulse .3s ease-out}@keyframes fretboard-ring-pulse{0%{opacity:0;r:8}60%{opacity:1;r:22}to{opacity:1;r:18}}.fretboard-note-tooltip{position:absolute;top:4px;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#0d1b2eeb;border:1.5px solid var(--instrument-accent);border-radius:8px;padding:4px 10px;pointer-events:none;z-index:10;animation:fretboard-tooltip-in .15s ease-out;white-space:nowrap}@keyframes fretboard-tooltip-in{0%{opacity:0;transform:translate(-50%) translateY(-4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.fretboard-note-tooltip-note{font-size:15px;font-weight:700;color:var(--instrument-text-strong);letter-spacing:.02em}.fretboard-note-tooltip-interval{font-size:12px;font-weight:500;color:var(--instrument-accent)}.instrument-section{display:flex;flex-direction:column;gap:4px}.instrument-selector{display:flex;gap:4px;padding:4px 8px}.instrument-selector button{background:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:3px 10px;font-size:var(--font-size-md);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.instrument-selector button:hover:not(.active):not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.instrument-selector button.active{background:color-mix(in srgb,var(--color-action) 16%,transparent);color:var(--color-action);border-color:color-mix(in srgb,var(--color-action) 55%,transparent)}.instrument-selector button:disabled{opacity:.35;cursor:not-allowed}.piano-section{display:flex;flex-direction:column;gap:4px}.piano-keyboard-wrapper{position:relative;width:100%;height:160px;overflow:hidden}.piano-keyboard-svg{display:block;width:100%;height:100%}.piano-note-tooltip{position:absolute;top:-28px;transform:translate(-50%);background:#1e1e3cf2;color:var(--instrument-text-strong);padding:3px 8px;border-radius:4px;font-size:12px;white-space:nowrap;pointer-events:none;z-index:10;display:flex;gap:6px;align-items:center}.piano-note-tooltip-note{font-weight:700}.piano-note-tooltip-interval{opacity:.7;font-size:11px}.piano-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 10px;background:var(--instrument-surface-recessed);border-top:1px solid var(--instrument-surface-border);border-bottom:1px solid var(--instrument-surface-border)}.piano-tools .instrument-controls-eyebrow{flex-basis:100%;margin:0}.octave-range-selector{display:flex;align-items:center;gap:6px}.octave-range-label{font-size:12px;color:#ffffffb3}.octave-range-select{background:#ffffff14;color:var(--instrument-text-strong);border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:2px 6px;font-size:12px;cursor:pointer}.octave-count-buttons{display:flex;gap:2px}.octave-count-btn{background:#ffffff14;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:2px 6px;font-size:11px;cursor:pointer;line-height:1.4}.octave-count-btn:hover{background:#ffffff26;color:var(--instrument-text-strong)}.octave-count-btn.active{background:color-mix(in srgb,var(--instrument-accent) 35%,transparent);border-color:color-mix(in srgb,var(--instrument-accent) 60%,transparent);color:var(--instrument-text-strong)}.octave-range-current{font-size:11px;color:#ffffff80;white-space:nowrap}.note-control-panel{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.piano-chord-diagram-section{margin-top:4px}.piano-chord-diagram-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.piano-chord-diagram-label{font-size:12px;font-weight:600;color:#ffffffb3}.piano-chord-diagram-nav{display:flex;gap:4px}.piano-chord-diagram-btn{background:#ffffff14;color:#fff9;border:1px solid rgba(255,255,255,.1);border-radius:3px;padding:1px 6px;font-size:11px;cursor:pointer}.piano-chord-diagram-btn.active{background:color-mix(in srgb,var(--instrument-accent) 25%,transparent);color:var(--instrument-text-strong);border-color:color-mix(in srgb,var(--instrument-accent) 50%,transparent)}.piano-chord-diagram-svg{display:block;max-width:350px}.piano-scale-diagram-section{margin-top:4px}.piano-scale-diagram-label{font-size:11px;color:#ffffff80;margin-bottom:2px}.piano-scale-diagram-svg{display:block;max-width:350px}.synthesia-view-wrapper{position:fixed;inset:0;z-index:9999;background:var(--instrument-stage-bg);overflow:hidden}.synthesia-canvas{display:block;width:100%;height:100%}.synthesia-close-btn{position:absolute;top:14px;right:18px;width:36px;height:36px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#ffffffa6;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;z-index:1}.synthesia-close-btn:hover{background:#ffffff38;color:var(--instrument-text-strong)}.synth-toggle-btn{background:#ffffff14;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:2px 10px;font-size:12px;cursor:pointer}.synth-toggle-btn.active{background:color-mix(in srgb,var(--instrument-accent) 25%,transparent);color:var(--instrument-text-strong);border-color:color-mix(in srgb,var(--instrument-accent) 50%,transparent)}.synthesia-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0d0d1abf;color:#ffffffb3;font-size:13px;pointer-events:none}.synthesia-overlay-error{color:var(--color-danger)}.exercise-overlay{position:fixed;inset:0;z-index:9999;background:var(--instrument-stage-bg);display:flex;flex-direction:column;align-items:center;overflow-y:auto}.exercise-header{display:flex;align-items:center;width:100%;padding:12px 18px;gap:12px}.exercise-title{flex:1;text-align:center;font-size:16px;font-weight:600;color:#ffffffd9;margin:0}.exercise-close-btn{width:36px;height:36px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#ffffffa6;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.exercise-close-btn:hover{background:#ffffff38;color:#fff}.exercise-header-actions{display:flex;gap:8px;flex-shrink:0}.exercise-reset-btn,.exercise-settings-btn,.exercise-preset-btn{background:#ffffff14;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:4px 10px;font-size:13px;cursor:pointer}.exercise-reset-btn:hover,.exercise-settings-btn:hover,.exercise-preset-btn:hover{background:#ffffff26;color:#fff}.exercise-preset-btn[aria-pressed=true]{background:color-mix(in srgb,var(--color-exercise) 25%,transparent);border-color:color-mix(in srgb,var(--color-exercise) 60%,transparent);color:color-mix(in srgb,var(--color-exercise) 65%,white)}.preset-picker{background:var(--color-bg-elevated);border-bottom:var(--border-subtle);padding:12px 24px;width:100%}.preset-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.preset-picker-title{font-size:13px;font-weight:600;color:var(--color-text-bright);letter-spacing:.05em;text-transform:uppercase}.preset-picker-close{background:none;border:none;color:var(--color-text-secondary);font-size:18px;cursor:pointer;line-height:1;padding:2px 6px}.preset-picker-close:hover{color:#fff}.preset-picker-empty{color:var(--color-text-muted);font-size:13px;text-align:center;padding:16px 0}.preset-picker-section-title{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:8px 0 6px}.preset-picker-recent,.preset-picker-all{margin-bottom:12px}.preset-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}@media(min-width:900px){.preset-picker-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.preset-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:10px 12px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;width:100%}.preset-card:hover{background:#ffffff1a;border-color:color-mix(in srgb,var(--color-exercise) 50%,transparent)}.preset-card-title{font-size:13px;font-weight:600;color:var(--color-text-bright);margin-bottom:4px}.preset-card-desc{font-size:11px;color:var(--color-text-secondary);line-height:1.4;margin-bottom:8px}.preset-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.preset-card-time{font-size:11px;color:var(--color-text-muted)}.preset-card-tags{display:flex;gap:4px;flex-wrap:wrap}.preset-tag{font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}.preset-tag--beginner{background:color-mix(in srgb,var(--color-success) 20%,transparent);color:color-mix(in srgb,var(--color-success) 70%,white)}.preset-tag--intermediate{background:color-mix(in srgb,var(--color-warning) 20%,transparent);color:color-mix(in srgb,var(--color-warning) 70%,white)}.preset-tag--advanced{background:color-mix(in srgb,var(--color-danger) 20%,transparent);color:color-mix(in srgb,var(--color-danger) 70%,white)}.preset-tag--daily{background:color-mix(in srgb,var(--color-exercise) 20%,transparent);color:color-mix(in srgb,var(--color-exercise) 65%,white)}.exercise-content{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;padding:0 20px 40px}.exercise-start-prompt{display:flex;align-items:center;justify-content:center;flex:1;padding:60px 0}.exercise-start-btn{background:#42a5f526;border:1px solid rgba(66,165,245,.4);border-radius:8px;color:#42a5f5;font-size:18px;padding:14px 40px;cursor:pointer;transition:background .15s,border-color .15s}.exercise-start-btn:hover{background:#42a5f547;border-color:#42a5f5b3}.exercise-fretboard{position:relative;width:100%}.exercise-fretboard .fretboard-neck-img{position:static;width:100%;display:block;border-radius:6px}.exercise-fretboard .fretboard-svg-overlay{position:absolute;inset:0;pointer-events:none}@keyframes exercise-dot-pulse{0%,to{opacity:.4;r:20}50%{opacity:.8;r:24}}.exercise-dot-pulse{animation:exercise-dot-pulse 1.5s ease-in-out infinite}.exercise-answer-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.exercise-answer-btn{min-width:48px;height:44px;border-radius:6px;border:2px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,transform .1s}.exercise-answer-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff59;transform:translateY(-1px)}.exercise-answer-btn:disabled{opacity:.5;cursor:not-allowed}.exercise-answer-btn.accidental{min-width:42px;font-size:13px;height:38px;background:#ffffff0a;border-color:#ffffff1f;margin-top:-2px}.exercise-answer-btn.correct{background:#66bb6a66;border-color:#66bb6a;color:#c8e6c9}.exercise-answer-btn.wrong{background:#ef535066;border-color:#ef5350;color:#ffcdd2}.exercise-answer-btn.reveal{background:#66bb6a4d;border-color:#66bb6a;animation:exercise-reveal-pulse .4s ease-in-out 3}@keyframes exercise-reveal-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.exercise-score{display:flex;gap:24px;justify-content:center}.exercise-score-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.exercise-score-label{font-size:11px;color:#fff6;text-transform:uppercase;letter-spacing:.5px}.exercise-score-value{font-size:20px;font-weight:700;color:#ffffffe6}.exercise-score-value small{font-size:13px;font-weight:400;color:#ffffff80}.exercise-settings-panel{position:absolute;top:54px;right:18px;width:280px;background:#1a2235;border:1px solid rgba(255,255,255,.12);border-radius:8px;z-index:10;box-shadow:0 8px 32px #00000080}.exercise-settings-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px;font-weight:600;color:#fffc}.exercise-settings-close{background:none;border:none;color:#ffffff80;font-size:18px;cursor:pointer}.exercise-settings-body{padding:12px 14px;display:flex;flex-direction:column;gap:12px}.exercise-setting-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#ffffffb3}.exercise-setting-row>span:first-child{min-width:80px}.exercise-fret-range{display:flex;align-items:center;gap:6px}.exercise-fret-range input{width:44px;padding:2px 4px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:3px;color:#fff;font-size:12px;text-align:center}.exercise-string-checks{display:flex;flex-wrap:wrap;gap:4px 8px}.exercise-string-checks label{display:flex;align-items:center;gap:3px;font-size:11px;color:#fff9}.exercise-radio-group{display:flex;flex-wrap:wrap;gap:12px}.exercise-radio-group label{display:flex;align-items:center;gap:3px;font-size:12px;color:#ffffffb3}.exercise-note-filter-section{display:flex;flex-direction:column;gap:6px}.exercise-note-filter-label{font-size:12px;color:#ffffffb3}.exercise-note-filter-grid{display:grid;grid-template-columns:18px repeat(3,1fr);gap:3px}.exercise-note-filter-grid .nfg-col-header{text-align:center;font-size:11px;color:#ffffff59;padding-bottom:2px}.exercise-note-filter-grid .nfg-row-label{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff6}.exercise-note-filter-btn{padding:4px 2px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#ffffff59;cursor:pointer;text-align:center;font-size:11px;font-family:inherit;line-height:1;transition:background .1s,border-color .1s,color .1s}.exercise-note-filter-btn:hover{background:#ffffff1a;color:#ffffffb3}.exercise-note-filter-btn.natural.enabled{background:#ffd54f40;border-color:#ffd54f80;color:#ffd54f}.exercise-note-filter-btn.accidental.enabled{background:#4a7fcf4d;border-color:#4a7fcf99;color:#82b4ff}.exercise-launch-btn{background:#ffd54f26!important;color:#ffd54f!important;border-color:#ffd54f4d!important}.exercise-launch-btn:hover{background:#ffd54f40!important}.exercise-tabs{display:flex;gap:4px;flex:1;justify-content:center}.exercise-tab-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#ffffff80;font-size:13px;font-weight:500;padding:5px 16px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.exercise-tab-btn:hover{background:#ffffff1f;color:#fffc}.exercise-tab-btn.active{background:#42a5f52e;border-color:#42a5f580;color:#42a5f5}.exercise-fretboard.clickable{cursor:crosshair}.interval-answer-grid{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:600px}.interval-answer-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.interval-answer-row .exercise-answer-btn{min-width:100px;height:48px;font-size:15px}.interval-action-row{display:flex;gap:12px;justify-content:center;margin-top:4px}.interval-action-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#ffffff8c;font-size:13px;padding:8px 20px;cursor:pointer;transition:background .12s,color .12s;min-width:140px}.interval-action-btn:hover:not(:disabled){background:#ffffff1f;color:#ffffffd9}.interval-action-btn:disabled{opacity:.4;cursor:not-allowed}.interval-find-instruction{font-size:22px;font-weight:600;color:#ffffffd9;text-align:center;padding:4px 0}.interval-find-label-badge{display:inline-block;margin-left:10px;background:#42a5f533;border:1px solid rgba(66,165,245,.4);border-radius:4px;padding:2px 10px;font-size:16px;color:#42a5f5;vertical-align:middle}.interval-click-hint{font-size:13px;color:#ffffff59;text-align:center;font-style:italic}.interval-select{background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:4px;color:#fffc;font-size:12px;padding:3px 6px;cursor:pointer;max-width:160px}.interval-select option{background:#1a2235;color:#fff}.interval-next-btn{background:#42a5f52e;border:1px solid rgba(66,165,245,.4);border-radius:6px;color:#42a5f5;font-size:14px;font-weight:600;padding:10px 28px;cursor:pointer;transition:background .12s}.interval-next-btn:hover{background:#42a5f547}.interval-filter-grid{display:flex;flex-wrap:wrap;gap:4px}.interval-filter-btn{min-width:36px;padding:4px 6px;font-size:11px}.interval-filter-btn.enabled{background:#42a5f540;border-color:#42a5f580;color:#42a5f5}.scale-answer-section{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:600px}.scale-answer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%}.scale-answer-btn{min-height:70px;padding:16px 12px;border-radius:8px;border:2px solid rgba(255,255,255,.18);background:#ffffff12;color:#ffffffd9;font-size:15px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,transform .1s;text-align:center;line-height:1.3}.scale-answer-btn:hover:not(:disabled){background:#ffffff21;border-color:#ffffff52;transform:translateY(-1px)}.scale-answer-btn:disabled{opacity:.5;cursor:not-allowed}.scale-answer-btn.correct{background:#66bb6a59;border-color:#66bb6a;color:#c8e6c9}.scale-answer-btn.wrong{background:#ef535059;border-color:#ef5350;color:#ffcdd2}.scale-answer-btn.reveal{background:#66bb6a4d;border-color:#66bb6a;animation:exercise-reveal-pulse .4s ease-in-out 3}.scale-action-row{display:flex;gap:10px;justify-content:center;width:100%}.scale-action-btn{flex:1;max-width:200px;padding:10px 16px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#ffffffa6;font-size:13px;cursor:pointer;transition:background .12s,color .12s}.scale-action-btn:hover:not(:disabled){background:#ffffff1f;color:#ffffffe0}.scale-action-btn:disabled{opacity:.4;cursor:not-allowed}.scale-filter-grid{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.scale-root-filter-grid{display:flex;flex-wrap:wrap;gap:4px;max-width:160px}.ear-training-controls{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:4px}.ear-training-play-btn{background:#42a5f526;border:1px solid rgba(66,165,245,.4);border-radius:6px;color:#42a5f5;font-size:14px;font-weight:500;padding:8px 20px;cursor:pointer;transition:background .15s,border-color .15s}.ear-training-play-btn:hover{background:#42a5f547;border-color:#42a5f5b3}.ear-training-reference-btn{background:#66bb6a26;border-color:#66bb6a66;color:#66bb6a}.ear-training-reference-btn:hover{background:#66bb6a47;border-color:#66bb6ab3}.ear-training-note-buttons{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:560px}.ear-training-note-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.ear-training-note-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:#ffffffbf;font-size:15px;font-weight:500;min-width:52px;padding:8px 10px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;text-align:center}.ear-training-note-btn:hover:not(:disabled){background:#ffffff24;border-color:#ffffff47;color:#fff}.ear-training-note-btn:disabled{cursor:default;opacity:.5}.ear-training-note-btn.correct{background:#66bb6a38;border-color:#66bb6a;color:#66bb6a;opacity:1}.ear-training-note-btn.wrong{background:#ef535038;border-color:#ef5350;color:#ef5350;opacity:1}.ear-training-interval-buttons{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;max-width:400px}.ear-training-interval-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:#ffffffbf;font-size:14px;font-weight:500;width:100%;padding:9px 12px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;text-align:center}.ear-training-interval-btn:hover:not(:disabled){background:#ffffff24;border-color:#ffffff47;color:#fff}.ear-training-interval-btn:disabled{cursor:default;opacity:.5}.ear-training-interval-btn.correct{background:#66bb6a38;border-color:#66bb6a;color:#66bb6a;opacity:1}.ear-training-interval-btn.wrong{background:#ef535038;border-color:#ef5350;color:#ef5350;opacity:1}.ear-training-scale-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:500px}.ear-training-scale-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:#ffffffd9;font-size:14px;font-weight:500;padding:12px 16px;cursor:pointer;transition:background .12s,border-color .12s;text-align:center}.ear-training-scale-btn:hover:not(:disabled){background:#ffffff24;border-color:#ffffff47}.ear-training-scale-btn:disabled{cursor:default;opacity:.5}.ear-training-scale-btn.correct{background:#66bb6a38;border-color:#66bb6a;color:#66bb6a;opacity:1}.ear-training-scale-btn.wrong{background:#ef535038;border-color:#ef5350;color:#ef5350;opacity:1}.ear-training-chord-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:500px}.ear-training-chord-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:#ffffffd9;font-size:14px;font-weight:500;padding:12px 16px;cursor:pointer;transition:background .12s,border-color .12s;text-align:center}.ear-training-chord-btn:hover:not(:disabled){background:#ffffff24;border-color:#ffffff47}.ear-training-chord-btn:disabled{cursor:default;opacity:.5}.ear-training-chord-btn.correct{background:#66bb6a38;border-color:#66bb6a;color:#66bb6a;opacity:1}.ear-training-chord-btn.wrong{background:#ef535038;border-color:#ef5350;color:#ef5350;opacity:1}.keyboard-ear-info-rows{display:flex;flex-direction:column;gap:8px;width:100%;max-width:700px}.keyboard-ear-info-row{display:flex;align-items:center;gap:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 16px}.keyboard-ear-play-btn{flex-shrink:0;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:16px}.keyboard-ear-info-label{flex:1;font-size:13px;color:#ffffff80;text-align:center}.keyboard-ear-info-value{min-width:40px;text-align:right;font-size:18px;font-weight:700;color:#ffffffd9}.keyboard-ear-info-value.correct{color:#66bb6a}.keyboard-ear-info-value.wrong{color:#ef5350}.keyboard-ear-piano-wrapper{width:100%;max-width:860px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px}.keyboard-ear-piano-svg{display:block;width:100%}.challenge-screen{display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px 16px}.challenge-screen-title{font-size:18px;font-weight:600;color:#ffffffd9;margin:0;letter-spacing:.5px}.challenge-score-boxes{display:flex;gap:16px}.challenge-score-box{display:flex;flex-direction:column;align-items:center;gap:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px 20px;min-width:110px}.challenge-score-box-label{font-size:11px;color:#ffffff73;text-transform:uppercase;letter-spacing:.8px}.challenge-score-box-main{font-size:22px;font-weight:700;color:#ffffffe6;font-variant-numeric:tabular-nums}.challenge-score-box-detail{font-size:12px;color:#ffffff80;font-variant-numeric:tabular-nums}.challenge-start-btn{margin-top:4px}.challenge-hud{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:640px;padding:6px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;margin-bottom:4px}.challenge-timer{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:#ffffffd9;letter-spacing:1px}.challenge-timer--urgent{color:#ef5350}.challenge-session-score{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:#ffffffb3}.challenge-settings-section{border-left:2px solid rgba(255,255,255,.12);margin-left:8px;padding-left:8px;display:flex;flex-direction:column;gap:2px}.challenge-setting-group{display:flex;flex-direction:column;gap:2px}.challenge-setting-inline{display:flex;align-items:center;gap:6px}.challenge-subrow{display:flex;align-items:center;gap:6px;padding:0 2px}.challenge-number-input{width:44px;padding:2px 4px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:3px;color:#fff;font-size:12px;text-align:center}.challenge-unit{font-size:11px;color:#ffffff73}.challenge-slider{width:90px;accent-color:#ef5350}.challenge-slider--full{flex:1;width:100%;accent-color:#ef5350}.live-video-overlay{position:fixed;bottom:20px;right:20px;width:300px;background:#000;border-radius:var(--radius-sm);box-shadow:0 4px 24px #0009;overflow:hidden;z-index:1000;display:flex;flex-direction:column}.live-video-overlay--minimized{width:auto}.live-video-overlay--fullscreen{width:100%;height:100%;bottom:0;right:0;border-radius:0}.live-video-stage{position:relative;width:100%;aspect-ratio:16 / 9;background:#111}.live-video-remote{width:100%;height:100%;object-fit:cover;display:block}.live-video-local{position:absolute;bottom:8px;right:8px;width:90px;aspect-ratio:4 / 3;object-fit:cover;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#222}.live-video-waiting{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);color:var(--color-text-muted);background:#111}.live-video-controls{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#000c;gap:8px}.live-video-btn{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.live-video-btn:hover{background:#ffffff26;color:#fff}.live-panel{width:260px}.live-session-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.live-session-panel .panel-body{padding:8px 14px}.live-session-panel .panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.live-section{margin-bottom:12px}.live-section h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin:0 0 6px}.live-divider{border-top:1px solid var(--color-border);margin:12px 0}.live-btn{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:12px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.live-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-border-strong)}.live-btn:disabled{opacity:.5;cursor:not-allowed}.live-btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.live-btn-primary:hover{filter:brightness(1.1)}.live-btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.live-btn-sm{padding:3px 8px;font-size:11px}.live-btn-icon{min-width:70px}.live-join-row{display:flex;gap:6px;min-width:0}.live-join-row .live-btn{flex-shrink:0}.live-join-input{flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-base);color:var(--color-text-primary);font-size:14px;font-family:var(--font-mono);letter-spacing:2px;text-align:center;text-transform:uppercase}.live-join-input::placeholder{letter-spacing:normal;text-transform:none}.live-join-code-display{display:flex;align-items:center;gap:8px}.live-join-code{font-family:var(--font-mono);font-size:22px;font-weight:700;letter-spacing:3px;color:var(--color-accent)}.live-status-badge{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:8px;letter-spacing:.5px}.live-status-waiting{background:var(--color-warning);color:#000}.live-status-active{background:var(--color-success);color:#fff}.live-status-ended{background:var(--color-text-muted);color:#fff}.live-connected-badge{font-size:11px;color:var(--color-success);font-weight:600}.live-error{font-size:12px;color:var(--color-danger);padding:6px 8px;background:#ef53501a;border-radius:var(--radius-sm);margin-bottom:8px}.live-audio-controls{display:flex;gap:6px;margin-top:6px}.live-empty-text{font-size:12px;color:var(--color-text-muted);font-style:italic;margin:0}.live-participant-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.live-participant{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--radius-sm);background:var(--color-bg-base);font-size:12px}.live-participant-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.live-participant-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary)}.live-participant-role{font-size:10px;font-weight:600;text-transform:uppercase;padding:1px 4px;border-radius:4px}.live-role-instructor{background:var(--color-accent);color:#fff}.live-role-student{background:var(--color-info);color:#fff}.live-recording-controls{display:flex;align-items:center;gap:8px}.live-btn-recording{animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{opacity:1}50%{opacity:.6}}.live-recording-timer{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-danger);font-weight:600}.translation-panel{display:flex;flex-direction:column;height:100%}.translation-panel .panel-body{padding:8px 14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.translation-panel .panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.translation-listening-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--color-success);color:#fff;font-weight:600}.translation-no-session{color:var(--color-text-muted);font-size:var(--font-size-sm);padding:8px 0}.translation-error{background:var(--color-danger);color:#fff;padding:6px 10px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:8px}.translation-section{display:flex;flex-direction:column;gap:6px}.translation-language-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.translation-panel select{padding:3px 6px;border-radius:var(--radius-sm);border:var(--border-default);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;width:130px}.translation-panel select:disabled{opacity:.5;cursor:default}.translation-provider{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.translation-provider-local{color:var(--color-success);font-weight:600}.translation-provider-cloud{color:var(--color-text-primary);font-weight:600}.translation-provider-toggle{padding:2px 8px;border:var(--border-default);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:11px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap}.translation-provider-toggle:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.translation-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--font-size-sm)}.translation-language-row{display:flex;gap:12px}.translation-language-row label{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.translation-language-row select{padding:4px 8px;border-radius:var(--radius-sm);border:var(--border-default);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--font-size-sm)}.translation-cost-note{font-size:11px;color:var(--color-text-muted);margin-top:4px;line-height:1.6}.translation-companion-link{color:var(--color-action);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-action) 50%,transparent);text-underline-offset:2px;font-weight:600;transition:text-decoration-color var(--transition-fast)}.translation-companion-link:hover{text-decoration-color:var(--color-action)}.translation-usage{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.translation-usage-bar{height:4px;background:var(--color-bg-base);border-radius:2px;margin-top:4px;overflow:hidden}.translation-usage-fill{height:100%;background:var(--color-accent);border-radius:2px;transition:width .3s ease}.translation-overlay{position:fixed;bottom:80px;left:20px;right:20px;text-align:center;z-index:1000;pointer-events:none;animation:translation-fade-in .3s ease}@keyframes translation-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.translation-overlay-translated{font-size:18px;font-weight:600;color:var(--color-text-bright);background:#000000bf;padding:8px 16px;border-radius:var(--radius-md);display:inline-block}.translation-overlay-local{background:#3b82f6d9}.translation-overlay-remote{background:#22c55ed9}.translation-overlay-original{font-size:13px;color:var(--color-text-muted);margin-top:4px}.translation-test-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:4px;display:flex;align-items:center;gap:8px}.translation-test-hint{font-size:var(--font-size-xs);font-weight:400;color:var(--color-text-muted)}.translation-test{display:flex;flex-direction:column;gap:8px}.translation-test>.live-btn{align-self:flex-start;font-size:var(--font-size-sm);padding:4px 14px}.translation-test-result{font-size:var(--font-size-sm);padding:6px 8px;background:var(--color-bg-base);border-radius:var(--radius-sm)}.translation-test-transcript{color:var(--color-text-secondary);margin-bottom:4px}.translation-test-translation{color:var(--color-accent);font-weight:500}.translation-context-toggle{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.translation-context-toggle:hover{color:var(--color-text-primary)}.translation-context-toggle-arrow{font-size:10px}.translation-context-body{margin-top:8px}.translation-context-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0 0 6px}.translation-context-textarea{width:100%;box-sizing:border-box;padding:6px 8px;border:var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono);resize:vertical}.translation-context-meta{display:flex;align-items:center;justify-content:space-between;margin-top:4px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.translation-context-warning{color:var(--color-warning)}.translation-calibrate-btn{background:none;border:var(--border-default);border-radius:var(--radius-sm);padding:2px 8px;font-size:var(--font-size-xs);cursor:pointer;color:var(--color-text-secondary)}.translation-calibrate-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.translation-calibration{margin-top:10px;padding:10px;border:var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-elevated)}.translation-calibration-header{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:6px}.translation-calibration-close{background:none;border:none;padding:0;cursor:pointer;color:var(--color-text-muted);font-size:12px}.translation-calibration-close:hover{color:var(--color-text-primary)}.translation-calibration-phrase{font-size:var(--font-size-sm);color:var(--color-text-primary);font-style:italic;margin-bottom:8px;padding:6px 8px;background:var(--color-bg-surface);border-radius:var(--radius-sm)}.translation-calibration-nav{display:flex;align-items:center;justify-content:center;gap:8px;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:8px}.translation-calibration-nav-btn{background:none;border:none;padding:2px 4px;cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.translation-calibration-nav-btn:disabled{opacity:.4;cursor:default}.translation-calibration-record{display:block;width:100%;padding:6px 12px;border:var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;text-align:center}.translation-calibration-record:disabled{opacity:.6;cursor:default}.translation-calibration-record--active{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.translation-calibration-error{margin-top:6px;font-size:var(--font-size-xs);color:var(--color-danger)}.translation-calibration-result{margin-top:8px}.translation-calibration-result-label{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:4px}.translation-calibration-actions{display:flex;gap:6px;margin-top:6px}.translation-models-toggle{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500}.translation-models-toggle:hover{color:var(--color-text-primary)}.translation-models-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.translation-model-item{padding:8px 10px;border:var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-elevated)}.translation-model-info{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.translation-model-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.translation-model-size{font-size:var(--font-size-xs);color:var(--color-text-muted)}.translation-model-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:6px}.translation-model-installed{display:inline-block;font-size:var(--font-size-xs);font-weight:600;color:var(--color-success);padding:2px 6px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-success) 15%,transparent)}.translation-model-actions{display:flex;align-items:center;gap:8px}.translation-model-download{padding:4px 12px;border:var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.translation-model-download:hover:not(:disabled){background:var(--color-bg-elevated);border-color:var(--color-accent);color:var(--color-accent)}.translation-model-download:disabled{opacity:.5;cursor:default}.translation-model-delete{padding:4px 10px;border:1px solid var(--color-danger);border-radius:var(--radius-sm);background:transparent;color:var(--color-danger);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.translation-model-delete:hover:not(:disabled){background:var(--color-danger);color:#fff}.translation-model-delete:disabled{opacity:.5;cursor:default}.translation-model-delete-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:4px}.translation-model-progress{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.translation-model-progress-bar{flex:1;height:4px;background:var(--color-bg-base);border-radius:2px;overflow:hidden}.translation-model-progress-fill{height:100%;background:var(--color-accent);border-radius:2px;transition:width .2s ease}.ptt-button{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:1000;padding:12px 28px;border:none;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:var(--font-size-base);font-weight:600;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:background var(--transition-fast),transform var(--transition-fast)}.ptt-button:hover:not(:disabled){transform:translate(-50%) scale(1.04)}.ptt-button:disabled{opacity:.6;cursor:not-allowed}.ptt-button-recording{background:var(--color-danger);animation:ptt-pulse 1.2s ease-in-out infinite}.ptt-button-processing{background:var(--color-warning)}@keyframes ptt-pulse{0%,to{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 0 10px #ef444400}}.drum-highway-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;background:var(--instrument-stage-bg);border-radius:8px;overflow:hidden;margin:8px 0}.drum-highway-wrapper.fullscreen{position:fixed;inset:0;z-index:100;border-radius:0;margin:0;justify-content:center}.drum-highway-canvas{display:block;width:100%;max-width:600px;height:auto}.drum-highway-wrapper.fullscreen .drum-highway-canvas{max-width:none;width:auto;height:calc(100vh - 36px)}.drum-highway-labels{display:flex;width:100%;max-width:600px}.drum-highway-wrapper.fullscreen .drum-highway-labels{max-width:none;width:calc((100vh - 36px) * 600 / 580);max-width:100vw}.drum-highway-label{flex:1;text-align:center;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:4px 0 6px;opacity:.85}.drum-highway-fullscreen-btn,.drum-highway-close-btn{position:absolute;top:8px;right:10px;width:36px;height:36px;background:#0000008c;border:1px solid rgba(255,255,255,.25);border-radius:6px;color:#ffffffbf;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s;z-index:10}.drum-highway-fullscreen-btn:hover,.drum-highway-close-btn:hover{background:#ffffff26;border-color:#ffffff80;color:var(--instrument-text-strong)}.drum-highway-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0d0d1ad9;color:#fff9;font-size:14px;text-align:center;padding:16px;pointer-events:none}.app-shell{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.app-shell__main{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.status-bar{display:flex;align-items:center;gap:10px;height:28px;flex-shrink:0;padding:0 var(--space-md);border-top:1px solid var(--color-border);background:var(--color-bg-base);font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.status-bar__item{display:flex;align-items:center;gap:6px;white-space:nowrap}.status-bar__item--faint{color:var(--color-text-faint)}.status-bar__dot{width:6px;height:6px;border-radius:50%;background:var(--color-success)}.status-bar__dot--offline{background:var(--color-text-faint)}.status-bar__spacer{flex:1}.tuner-drawer-backdrop{position:fixed;inset:0;z-index:199}.tuner-drawer{position:fixed;left:var(--nav-rail-width, 232px);top:0;bottom:0;width:260px;z-index:200;display:flex;flex-direction:column;background:var(--color-bg-surface);border-right:1px solid var(--color-border-strong);box-shadow:4px 0 24px #0006}.tuner-header-actions{display:flex;align-items:center;gap:6px}.tuner-close-btn{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;font-size:13px;padding:3px 6px;border-radius:4px;line-height:1;transition:color var(--transition-fast),background var(--transition-fast)}.tuner-close-btn:hover{color:var(--color-text-primary);background:var(--color-border)}.app-shell-content,.editor-page-mount{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.studio-page-mount{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.library-page{display:flex;flex-direction:column;flex:1;min-height:0}.library-page-body{display:flex;flex-direction:column;gap:var(--space-lg);max-width:1080px;padding:var(--space-lg) var(--space-xl)}.library-page__content{display:flex;flex-direction:column;gap:0}.page-mount{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.page-loading{flex:1;min-height:0}.page-mount.library-page-mount{overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.page-mount.library-page-mount::-webkit-scrollbar{display:none}.app-shell-content[data-page=practice]{overflow-y:auto;overflow-x:hidden}.app-shell-content[data-page=practice] .editor-page-mount,.app-shell-content[data-page=practice] .page-mount{flex:none;overflow:visible;min-height:0}.app-shell-content[data-page=lessons] .lessons-page-mount{overflow-y:auto;scrollbar-width:none}.app-shell-content[data-page=lessons] .lessons-page-mount::-webkit-scrollbar{display:none}.practice-page{border-top:2px solid var(--color-border-strong)}.practice-page__content{display:flex;flex-direction:column}.page-mount.apps-page-mount{overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.page-mount.apps-page-mount::-webkit-scrollbar{display:none}.page-mount.theory-page-mount{overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.page-mount.theory-page-mount::-webkit-scrollbar{display:none}.theory-page{display:flex;flex-direction:column;gap:8px;min-height:0}.theory-connected-header{display:flex;align-items:center;gap:12px;flex-shrink:0}.theory-connected-badge{font-size:11px;font-weight:600;color:var(--color-action);text-transform:uppercase;letter-spacing:.05em}.theory-connected-key{font-size:12px;color:var(--color-text-secondary)}.theory-connected-chord{font-size:18px;font-weight:700;color:var(--color-text-bright);margin-left:auto}.apps-page{display:flex;flex-direction:column;flex:1;min-height:0}.apps-layout{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl) var(--space-xl);max-width:920px}.app-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--space-xl);align-items:center;padding:var(--space-xl);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.app-hero__media{display:flex;justify-content:center}.browser-mock{position:relative;width:100%;max-width:340px;aspect-ratio:16 / 10;background:var(--color-bg-base);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.browser-mock__bar{display:flex;align-items:center;gap:var(--space-sm);padding:8px 10px;background:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.browser-mock__dots{display:flex;gap:4px}.browser-mock__dots i{width:8px;height:8px;border-radius:50%;background:var(--color-border-strong)}.browser-mock__omnibox{flex:1;font-size:10px;color:var(--color-text-muted);background:var(--color-bg-base);border:1px solid var(--color-border);border-radius:999px;padding:3px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.browser-mock__ext{font-size:14px;line-height:1;filter:saturate(1.1)}.browser-mock__popup{position:absolute;top:44px;right:12px;width:150px;display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.browser-mock__popup-title{font-size:11px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.browser-mock__speed{height:4px;border-radius:2px;background:var(--color-border);overflow:hidden}.browser-mock__speed-fill{display:block;height:100%;width:75%;background:var(--color-action);border-radius:2px}.browser-mock__popup-meta{font-size:9px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.app-hero__content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.app-hero__eyebrow{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-success)}.app-hero__eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-success)}.app-hero__name{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--color-text-bright);margin:0}.app-hero__desc{font-size:var(--font-size-body);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}.app-hero__features{list-style:none;margin:var(--space-xs) 0 var(--space-sm);padding:0;display:flex;flex-direction:column;gap:6px}.app-hero__feature{position:relative;padding-left:20px;font-size:var(--font-size-body-sm);color:var(--color-text-primary)}.app-hero__feature:before{content:"✓";position:absolute;left:0;color:var(--color-success);font-weight:var(--font-weight-bold)}.app-hero__cta{display:inline-flex;align-items:center;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--color-action-text);background:var(--color-action);text-decoration:none;padding:9px 18px;border-radius:var(--radius-md);transition:background var(--transition-fast)}.app-hero__cta:hover{background:var(--color-action-hover)}@media(max-width:720px){.app-hero{grid-template-columns:1fr}}.apps-soon-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}@media(max-width:720px){.apps-soon-row{grid-template-columns:1fr}}.app-card{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md)}.app-card--coming-soon{opacity:.65}.app-card__icon{font-size:28px;line-height:1}.app-card__body{flex:1}.app-card__name{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 6px}.app-card__desc{font-size:13px;color:var(--color-text-muted);margin:0;line-height:1.5}.app-card__badge{display:inline-block;font-size:11px;font-weight:500;color:var(--color-text-muted);background:var(--color-border);border-radius:4px;padding:3px 8px;align-self:flex-start;text-transform:uppercase;letter-spacing:.05em}.static-free-load{max-width:560px;margin:0 auto;padding:32px 20px;width:100%}.whats-new-badge-btn{position:relative;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast),background var(--transition-fast)}.whats-new-badge-btn:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.whats-new-icon{width:20px;height:20px}.whats-new-badge-count{position:absolute;top:0;right:0;background:var(--color-accent);color:#fff;font-size:10px;font-weight:700;border-radius:10px;min-width:16px;height:16px;padding:0 4px;display:flex;align-items:center;justify-content:center;line-height:1}.whats-new-drawer{position:fixed;top:48px;right:12px;width:360px;max-height:520px;background:var(--color-bg-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;z-index:2000;overflow:hidden}.whats-new-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width) solid var(--color-border)}.whats-new-drawer-header h3{margin:0;font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:600}.whats-new-close-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:16px;line-height:1;padding:2px 6px;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.whats-new-close-btn:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.whats-new-drawer-body{overflow-y:auto;flex:1;padding:var(--space-sm) 0}.whats-new-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;padding:var(--space-lg);margin:0}.whats-new-entry{padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width) solid var(--color-border)}.whats-new-entry:last-child{border-bottom:none}.whats-new-entry-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.whats-new-entry-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);flex:1}.whats-new-entry-date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.whats-new-item{display:flex;align-items:baseline;gap:8px;padding:2px 0}.whats-new-item-text{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.5}.whats-new-pill{font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;line-height:1.6;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.whats-new-pill-new{background:color-mix(in srgb,var(--color-accent) 18%,transparent);color:var(--color-accent)}.whats-new-pill-improved{background:color-mix(in srgb,var(--color-info) 18%,transparent);color:var(--color-info)}.whats-new-pill-fixed{background:color-mix(in srgb,var(--color-success) 18%,transparent);color:var(--color-success)}.notification-badge-btn{position:relative;background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast),background var(--transition-fast)}.notification-badge-btn:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.notification-bell-icon{width:20px;height:20px}.notification-badge-count{position:absolute;top:0;right:0;background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;border-radius:10px;min-width:16px;height:16px;padding:0 4px;display:flex;align-items:center;justify-content:center;line-height:1}.notification-drawer{position:fixed;top:48px;right:12px;width:340px;max-height:480px;background:var(--color-bg-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;z-index:2000;overflow:hidden}.notification-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:var(--border-width) solid var(--color-border)}.notification-drawer-header h3{margin:0;font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:600}.notification-mark-all-btn{background:none;border:none;cursor:pointer;color:var(--color-accent);font-size:var(--font-size-xs);padding:4px 8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.notification-mark-all-btn:hover{background:var(--color-bg-elevated)}.notification-drawer-body{overflow-y:auto;flex:1}.notification-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;padding:var(--space-lg);margin:0}.notification-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:none;border-bottom:var(--border-width) solid var(--color-border);cursor:pointer;padding:var(--space-sm) var(--space-md);transition:background var(--transition-fast)}.notification-item:hover{background:var(--color-bg-elevated)}.notification-item-unread{background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.notification-item-unread:hover{background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.notification-item-text{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:1.4}.notification-item-time{font-size:var(--font-size-xs);color:var(--color-text-muted)}.login-page{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-base);z-index:1000;overflow-y:auto;padding:2rem 1rem}.login-page-inner{display:flex;gap:3rem;align-items:flex-start;width:100%;max-width:960px}.login-pricing{flex:1;min-width:0}.login-pricing-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .75rem}.login-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:12px;padding:2.5rem 2rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:1.5rem}.login-logo{text-align:center}.login-logo-icon{font-size:2.5rem}.login-title{font-size:1.6rem;font-weight:700;color:var(--color-text-bright);margin:.4rem 0 .2rem}.login-subtitle{color:var(--color-text-secondary);margin:0;font-size:.9rem}.login-buttons{display:flex;flex-direction:column;gap:.75rem}.login-btn{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;border-radius:8px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s;width:100%;text-align:left}.login-btn:hover{background:var(--color-border);border-color:var(--color-border-strong)}.login-btn-icon{width:20px;height:20px;flex-shrink:0}.login-footer{text-align:center;color:var(--color-text-muted);font-size:.75rem;margin:0}.login-divider{display:flex;align-items:center;gap:.75rem;color:var(--color-text-muted);font-size:.8rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-btn-email{color:var(--color-text-primary)}.login-mode-tabs{display:flex;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.login-mode-tab{flex:1;padding:.6rem;border:none;background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.login-mode-tab.active{background:var(--color-bg-elevated);color:var(--color-text-bright)}.login-email-form{display:flex;flex-direction:column;gap:.6rem}.login-input{padding:.65rem .85rem;border-radius:8px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-text-primary);font-size:.9rem;outline:none;transition:border-color .15s;width:100%;box-sizing:border-box}.login-input:focus{border-color:var(--color-nav-active)}.login-input::placeholder{color:var(--color-text-muted)}.login-error{color:var(--color-danger);font-size:.82rem;margin:0}.login-btn-submit{background:var(--color-action);color:var(--color-action-text);border-color:var(--color-action);justify-content:center;font-weight:600}.login-btn-submit:hover:not(:disabled){background:var(--color-action-hover);border-color:var(--color-action-hover)}.login-btn-submit:disabled{opacity:.6;cursor:not-allowed}.login-back{background:none;border:none;color:var(--color-text-muted);font-size:.82rem;cursor:pointer;padding:0;text-align:left;transition:color .15s}.login-back:hover{color:var(--color-text-secondary)}.language-switcher{position:relative}.language-switcher-trigger{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s;padding:0}.language-switcher-trigger:hover{background:var(--color-border);color:var(--color-text-primary)}.language-switcher-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:8px;min-width:130px;overflow:hidden;z-index:200;box-shadow:var(--shadow-md)}.language-switcher-item{display:block;width:100%;padding:.55rem 1rem;border:none;background:none;color:var(--color-text-primary);font-size:.85rem;text-align:left;cursor:pointer;transition:background .12s}.language-switcher-item:hover{background:var(--color-border)}.language-switcher-item.active{color:var(--color-text-bright);font-weight:600}.user-menu-wrapper{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;padding:.3rem .6rem;border-radius:8px;border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-text-primary);cursor:pointer;font-size:.85rem;transition:background .15s}.user-menu-trigger:hover{background:var(--color-border)}.user-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover}.user-avatar-placeholder{width:24px;height:24px;border-radius:50%;background:var(--color-border-strong);display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--color-text-primary);flex-shrink:0}.tier-badge{font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.tier-badge-free{background:var(--color-border-strong);color:var(--color-text-secondary)}.tier-badge-pro{background:color-mix(in srgb,var(--color-info) 22%,transparent);color:var(--color-info)}.tier-badge-premium{background:color-mix(in srgb,var(--color-premium) 22%,transparent);color:var(--color-premium)}.user-menu-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:8px;min-width:180px;overflow:hidden;z-index:200;box-shadow:var(--shadow-md)}.user-menu-item{display:block;width:100%;padding:.65rem 1rem;border:none;background:none;color:var(--color-text-primary);font-size:.85rem;text-align:left;cursor:pointer;transition:background .12s}.user-menu-item:hover{background:var(--color-border)}.user-menu-item-danger{color:var(--color-danger)}.user-menu-item-subtle{color:var(--color-text-muted);font-size:12px}.user-menu-divider{height:1px;background:var(--color-border);margin:.25rem 0}.upgrade-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:500}.upgrade-modal{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:12px;padding:2rem;max-width:420px;width:100%}.upgrade-modal h2{margin:0 0 .5rem;font-size:1.3rem;color:var(--color-text-bright)}.upgrade-modal-desc{color:var(--color-text-secondary);font-size:.9rem;margin:0 0 1.5rem}.upgrade-modal-tiers{display:flex;gap:.5rem;margin-bottom:1.5rem;align-items:center;font-size:.85rem;color:var(--color-text-secondary)}.upgrade-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-upgrade-pro{background:color-mix(in srgb,var(--color-info) 22%,transparent);color:var(--color-info);border:1px solid var(--color-info)}.btn-upgrade-premium{background:color-mix(in srgb,var(--color-premium) 22%,transparent);color:var(--color-premium);border:1px solid color-mix(in srgb,var(--color-premium) 50%,transparent)}.pricing-table{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem 0}.pricing-col{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:10px;padding:1.25rem}.pricing-col-popular{border-color:var(--color-info)}.pricing-col-name{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.pricing-col-price{font-size:1.6rem;font-weight:700;color:var(--color-text-bright);margin-bottom:1rem}.pricing-col-price span{font-size:.8rem;color:var(--color-text-secondary);font-weight:400}.pricing-feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;color:var(--color-text-primary)}.pricing-feature-list li:before{content:"✓ ";color:var(--color-success)}.tier-gate-wrapper{position:relative}.tier-gate-locked{opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none}.tier-gate-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#00000080;border-radius:6px;z-index:10}.tier-gate-label{font-size:.8rem;color:var(--color-premium);font-weight:600}.user-menu-section{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md)}.user-menu-section__label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint)}.theme-switcher{display:flex;gap:var(--space-xs)}.theme-swatch{display:flex;align-items:center;gap:6px;flex:1;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-base);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.theme-swatch:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.theme-swatch--active{border-color:var(--color-action);color:var(--color-text-bright)}.theme-swatch__dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--color-border-strong);flex-shrink:0}.theme-swatch__label{line-height:1}.page-header{display:flex;align-items:center;height:56px;padding:0 var(--space-lg);gap:var(--space-lg);box-sizing:border-box;border-bottom:1px solid var(--color-border);background:var(--color-bg-surface);flex-shrink:0}.page-header__left{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;flex-shrink:0;max-width:320px}.page-header__eyebrow{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);line-height:1}.page-header__title{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-bright);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header__subtitle{font-size:var(--font-size-body-sm);color:var(--color-text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header__right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0;margin-left:auto}.page-header__actions,.global-header-actions{display:flex;align-items:center;gap:var(--space-sm)}._toggle_cy7i2_1{display:inline-flex;align-items:center;gap:2px;padding:2px;background:var(--color-bg-base);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md)}._option_cy7i2_11{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}._option_cy7i2_11:hover:not(._active_cy7i2_29){color:var(--color-text-primary)}._active_cy7i2_29{background:var(--color-action);color:var(--color-action-text)}._lock_cy7i2_38{font-size:.85em;line-height:1}._layout_zg6t8_13{display:grid;grid-template-columns:minmax(0,1fr) var(--studio-side-width, 340px);grid-template-rows:minmax(0,1fr) auto;grid-template-areas:"main side" "transport transport";flex:1;min-height:0;overflow:hidden}._layout_zg6t8_13[data-side-collapsed=true]{grid-template-columns:minmax(0,1fr) 0}._main_zg6t8_31{grid-area:main;display:flex;flex-direction:column;min-width:0;min-height:0}._canvas_zg6t8_41{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}._side_zg6t8_50{grid-area:side;min-height:0;overflow-y:auto;overflow-x:hidden;border-left:var(--border-width) solid var(--color-border);background:var(--color-bg-surface)}._layout_zg6t8_13[data-side-collapsed=true] ._side_zg6t8_50{border-left:none;overflow:hidden}._transport_zg6t8_65{grid-area:transport;flex-shrink:0;border-top:var(--border-width) solid var(--color-border);background:var(--color-bg-surface)}@media(max-width:880px){._layout_zg6t8_13{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;grid-template-areas:"main" "side" "transport"}._layout_zg6t8_13[data-side-collapsed=true]{grid-template-columns:minmax(0,1fr)}._side_zg6t8_50{border-left:none;border-top:var(--border-width) solid var(--color-border);max-height:40vh}}._accordion_ri89y_1{display:flex;flex-direction:column;min-height:0}._eyebrow_ri89y_7{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);padding:var(--space-md) var(--space-md) var(--space-sm)}._section_ri89y_17{border-bottom:var(--border-width) solid var(--color-border)}._header_ri89y_21{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.04em;text-align:left;cursor:grab;transition:color var(--transition-fast),background var(--transition-fast)}._header_ri89y_21:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-elevated)}._header_ri89y_21[aria-expanded=true]{color:var(--color-text-bright)}._header_ri89y_21:active{cursor:grabbing}._chevron_ri89y_53{flex-shrink:0;width:12px;font-size:var(--font-size-sm);color:var(--color-text-muted)}._label_ri89y_60{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._disabled_ri89y_67 ._header_ri89y_21{cursor:default;opacity:.45}._locked_ri89y_73 ._label_ri89y_60{color:var(--color-premium)}._lock_ri89y_73{flex-shrink:0;font-size:.85em;line-height:1;opacity:.9}._body_ri89y_84{padding:0;container-type:inline-size}._upsell_fossx_1{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md)}._badge_fossx_9{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-premium);color:var(--color-premium-text)}._title_fossx_20{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}._desc_fossx_27{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}._cta_fossx_34{margin-top:var(--space-xs);padding:6px 14px;border-radius:var(--radius-sm);background:var(--color-premium);color:var(--color-premium-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-decoration:none;transition:background var(--transition-fast)}._cta_fossx_34:hover{background:var(--color-premium-hover)}._loopStationColumns_lestw_7{display:flex;flex-direction:column;flex:1}._loopStationCol_lestw_7{display:flex;flex-direction:column;flex:1;min-width:0}._loopStationColLeft_lestw_23{border-bottom:var(--border-default)}@container (min-width: 560px){._loopStationColumns_lestw_7{flex-direction:row}._loopStationColLeft_lestw_23{border-right:var(--border-default);border-bottom:none}}._loopStationCol_lestw_7>._loopStationSectionLabel_lestw_38:first-child,._loopStationColLeft_lestw_23 ._loopStationSectionLabel_lestw_38{border-top:none;margin-top:0}._loopStationSectionLabel_lestw_38{font-size:var(--font-size-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);height:26px;box-sizing:border-box;padding:0 8px 0 14px;background:#2d3f5e4d;border-top:var(--border-default);border-bottom:var(--border-default);margin-top:2px;display:flex;align-items:center;justify-content:space-between}.panel-header._loopEnabled_lestw_64{background:#27ae6014;border-bottom-color:#27ae6040}._loopStatusInline_lestw_71{font-size:var(--font-size-sm);color:var(--color-accent);flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}._loopSectionSelect_lestw_84{width:100%;background:#1a2535;border:none;border-bottom:var(--border-default);color:#8cb4d8;padding:5px 14px;font-size:var(--font-size-sm);cursor:pointer;outline:none;box-sizing:border-box}._loopSectionSelect_lestw_84:focus,._loopSectionSelect_lestw_84:hover{background:#1e2d45;color:var(--color-text-primary)}._loopSectionSelect_lestw_84 option{background:#1a2535}._loopPoints_lestw_109{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:6px 8px;padding:10px 14px;border-bottom:var(--border-default)}._loopPointLabel_lestw_118{font-size:var(--font-size-md);color:var(--color-text-secondary);font-weight:600}._loopTimeInput_lestw_124{background:var(--color-bg-base);border:var(--border-strong);color:var(--color-text-bright);padding:3px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-md);font-family:var(--font-mono);width:100%}._loopTimeInput_lestw_124:focus{outline:none;border-color:var(--color-info)}._loopSpeedSettings_lestw_142{padding:10px 14px;display:flex;flex-direction:column;gap:6px}._loopOptionsRow_lestw_149{display:flex;gap:14px;padding-bottom:4px}._loopOptionToggle_lestw_155{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary)}._loopOptionToggle_lestw_155 input[type=checkbox]{accent-color:var(--color-info)}._loopProgressiveActiveBtn_lestw_168{padding:2px 8px;font-size:var(--font-size-sm);opacity:.5;border-color:var(--color-border)}._loopProgressiveActiveBtn_lestw_168.active{opacity:1;background:var(--color-info);border-color:var(--color-info-hover);color:#fff}._loopProgressiveDisabled_lestw_182{opacity:.4;pointer-events:none}._loopSpeedRow_lestw_187{display:flex;align-items:center;gap:8px;font-size:var(--font-size-md);color:var(--color-text-primary)}._loopSpeedRowMeta_lestw_195{color:var(--color-text-secondary);font-size:var(--font-size-sm)}._loopSpeedLabel_lestw_200{font-size:var(--font-size-sm);color:var(--color-text-secondary);min-width:36px}._loopUnit_lestw_206{font-size:var(--font-size-sm);color:var(--color-text-muted)}._loopNumberInput_lestw_211{background:var(--color-bg-base);border:var(--border-strong);color:var(--color-text-bright);padding:3px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-md);width:52px;text-align:center}._loopNumberInput_lestw_211:focus{outline:none;border-color:var(--color-info)}._loopStaticValue_lestw_227{font-weight:600;color:var(--color-text-bright)}._loopBpmHint_lestw_232{font-size:var(--font-size-xs);color:#5a7a9a;margin-left:2px}._loopPitchRow_lestw_240{margin-top:2px;padding-top:6px;border-top:1px solid #1e2d45}._loopPitchButtons_lestw_246{display:flex;gap:3px}._loopPitchBtn_lestw_251{padding:3px 7px;font-size:var(--font-size-sm);min-width:28px}._loopPitchBtn_lestw_251.active{background:var(--color-info);border-color:var(--color-info-hover);color:#fff}._loopQualityRow_lestw_265{display:flex;align-items:center;gap:8px;padding:8px 14px 4px}._loopQualityBtns_lestw_272{display:flex;gap:4px}._loopHqSection_lestw_277{padding:0 14px 6px}._loopHqStatus_lestw_281{display:flex;align-items:center;font-size:var(--font-size-sm);color:var(--color-text-secondary)}._loopHqReady_lestw_288{color:var(--color-success)}._loopHqError_lestw_292{color:var(--color-danger)}._loopResetBtn_lestw_298{margin-top:4px;width:100%}._loopSpeedSectionLabel_lestw_303{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:8px;text-align:center}._loopCountInLabel_lestw_312{display:flex;align-items:center;gap:5px;cursor:pointer;color:var(--color-text-primary)}._metronomePanelOnoff_lestw_324{font-size:var(--font-size-xs);padding:2px 8px;border-radius:10px;min-width:52px;text-transform:none;letter-spacing:0;font-weight:600}._metronomePanelOnoff_lestw_324.active{background:#27ae602e;border-color:#27ae60;color:#27ae60}._metronomePanelBody_lestw_340{display:flex;flex-direction:column;gap:10px;padding:10px 12px}._metronomePanelSource_lestw_347{display:flex;align-items:center;gap:6px}._metronomePanelSourceBadge_lestw_353{font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:3px}._metronomePanelSourceBadge_lestw_353.mp3{background:#3498db2e;color:var(--color-info)}._metronomePanelSourceBadge_lestw_353.midi{background:#e8834a2e;color:#e8834a}._metronomePanelSourceValue_lestw_371{font-size:var(--font-size-sm);color:var(--color-text-secondary)}._metronomePanelBpmRow_lestw_376{display:flex;align-items:center;justify-content:center;gap:6px}._metronomePanelBpm_lestw_376{font-size:36px;font-weight:700;color:var(--color-text-bright);min-width:70px;text-align:center;letter-spacing:-1px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}._metronomePanelBpmAdj_lestw_394{background:#1e2d45;border:var(--border-default);color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:3px 7px;cursor:pointer;font-size:var(--font-size-sm);transition:background var(--transition-fast),color var(--transition-fast)}._metronomePanelBpmAdj_lestw_394:hover{background:var(--color-border);color:var(--color-text-primary)}._metronomePanelBpmReset_lestw_410{background:transparent;border:none;color:#4a5e7a;cursor:pointer;font-size:var(--font-size-lg);padding:2px 4px;transition:color var(--transition-fast)}._metronomePanelBpmReset_lestw_410:hover{color:#e8834a}._metronomePanelTimesigRow_lestw_424{display:flex;align-items:center;gap:5px}._metronomePanelTimesigBtn_lestw_430{background:#1e2d45;border:var(--border-default);color:#4a5e7a;border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;font-size:var(--font-size-sm);transition:border-color var(--transition-fast),color var(--transition-fast)}._metronomePanelTimesigBtn_lestw_430.active{border-color:#e8834a;color:#e8834a}._metronomePanelTimesigBtn_lestw_430:hover:not(.active){border-color:var(--color-text-secondary);color:var(--color-text-primary)}._metronomePanelBeats_lestw_451{display:flex;gap:6px;justify-content:center;transition:opacity var(--transition-normal)}._metronomePanelBeats_lestw_451.muted{opacity:.3}._metronomePanelBeat_lestw_451{width:22px;height:22px;border-radius:50%;background:#1e2d45;border:2px solid var(--color-border);transition:background .05s,border-color .05s,transform .05s}._metronomePanelBeat_lestw_451.downbeat.active{background:#e8834a;border-color:#e8834a;transform:scale(1.2)}._metronomePanelBeat_lestw_451:not(.downbeat).active{background:var(--color-info);border-color:var(--color-info);transform:scale(1.1)}._metronomePanelMutePhase_lestw_483{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center}._metronomePanelStart_lestw_489{width:100%;font-size:var(--font-size-base);padding:7px}._metronomePanelStart_lestw_489.active{background:#c0392b;border-color:#c0392b;color:#fff}._metronomePanelRow_lestw_501{display:flex;align-items:center;gap:8px}._metronomePanelLabel_lestw_507{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;min-width:40px}._metronomePanelSlider_lestw_514{flex:1;accent-color:#e8834a;height:4px}._metronomePanelMuteSection_lestw_520{border-top:1px solid #1e2d45;padding-top:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}._metronomePanelMuteToggle_lestw_529{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}._metronomePanelMuteToggle_lestw_529 input[type=checkbox]{accent-color:#e8834a}._metronomePanelMuteConfig_lestw_544{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-left:auto}._metronomePanelMuteRow_lestw_553{display:flex;align-items:center;gap:8px}._metronomePanelNumInput_lestw_559{width:36px;background:#1e2d45;border:var(--border-default);color:var(--color-text-primary);border-radius:var(--radius-sm);padding:2px 4px;font-size:var(--font-size-sm);text-align:center}._metronomePanelNumInput_lestw_559:focus{outline:none;border-color:#e8834a}._metronomePanelMuteHint_lestw_575{font-size:var(--font-size-xs);color:#4a5e7a;flex-basis:100%;text-align:right}._metronomePanelCountdown_lestw_582{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 0}._metronomePanelCountdownNumber_lestw_590{font-size:32px;font-weight:700;color:#e8834a;min-width:40px;text-align:center;line-height:1}._metronomePanelCountdownLabel_lestw_599{font-size:var(--font-size-xs);color:var(--color-text-secondary)}._loopProgressionLadder_lestw_606{display:flex;flex-wrap:wrap;gap:4px;padding:8px 14px;border-top:1px solid #1e2d45}._loopProgressionStep_lestw_614{display:flex;flex-direction:column;align-items:center;padding:3px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:#3a5070;background:#111a26;border:1px solid transparent;min-width:34px;line-height:1.3}._loopProgressionStepDone_lestw_628{color:var(--color-text-secondary);border-color:#2a3a4a}._loopProgressionStepCurrent_lestw_633{color:var(--color-info);border-color:var(--color-info);background:#3498db1f}._loopProgressionReps_lestw_639{display:flex;gap:3px;margin-top:3px}._loopRepDot_lestw_645{width:5px;height:5px;border-radius:50%;background:#2a3a4a;border:1px solid #3a4a5a}._loopRepDotFilled_lestw_653{width:5px;height:5px;border-radius:50%;background:var(--color-info)}._fallback_1607t_1{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:#1a1a1a;border:1px solid #333;border-radius:6px;color:#ccc;min-height:80px}._message_1607t_15{margin:0;font-size:13px;color:#aaa}._retryButton_1607t_21{padding:6px 16px;background:#2a2a2a;border:1px solid #555;border-radius:4px;color:#ddd;font-size:12px;cursor:pointer;transition:background .15s}._retryButton_1607t_21:hover{background:#3a3a3a}.cof-section{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem 1.5rem 1.5rem 1rem;min-height:0}.cof-main{display:flex;flex-direction:row;align-items:flex-start;gap:2rem}.cof-circle-wrap{flex-shrink:0;width:min(400px,48%)}.cof-svg{width:100%;height:auto;display:block}.cof-sector{cursor:pointer}.cof-sector:hover path{filter:brightness(1.3)}.cof-sector--sig:hover path{filter:brightness(1.35)}.cof-label{fill:var(--color-text-secondary);font-family:var(--font-mono, monospace);pointer-events:none;-webkit-user-select:none;user-select:none}.cof-label--major{font-size:14px;font-weight:700}.cof-label--minor{font-size:10px}.cof-label--sig{font-size:9px;fill:var(--color-text-muted)}.cof-label--highlighted{fill:var(--color-text-bright)}@keyframes cof-pulse{0%,to{opacity:1}50%{opacity:.35}}.cof-detected-outline{animation:cof-pulse 2s ease-in-out infinite}.cof-info-panel{flex:1;min-width:180px;max-width:320px;padding-top:.5rem}.cof-info-title{font-size:1.4rem;font-weight:700;color:var(--color-text-bright);margin-bottom:1rem;letter-spacing:.01em}.cof-info-rows{display:flex;flex-direction:column;gap:0;border:var(--border-default);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-elevated)}.cof-info-row{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:var(--border-subtle);gap:1rem}.cof-info-row:last-child{border-bottom:none}.cof-info-label{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;flex-shrink:0}.cof-info-value{font-size:var(--font-size-lg);color:var(--color-text-primary);font-weight:500;text-align:right}.cof-key-chip{background:var(--color-bg-surface);border:var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:600;font-family:var(--font-mono, monospace);padding:3px 12px;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);line-height:1.6}.cof-key-chip:hover{border-color:var(--color-accent);color:var(--color-accent);background:#e67e2214}.cof-sig-value,.cof-parallel-value{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-family:var(--font-mono, monospace)}.cof-detected-chip{margin-top:1rem;background:transparent;border:1px solid var(--color-info);border-radius:var(--radius-sm);color:var(--color-info);font-size:var(--font-size-sm);padding:5px 12px;cursor:pointer;width:100%;transition:background var(--transition-fast)}.cof-detected-chip:hover{background:#3498db1f}.cof-info-hint{color:var(--color-text-muted);font-size:var(--font-size-base);padding-top:.5rem}.cof-info-label[data-tooltip]{cursor:help;border-bottom:1px dashed var(--color-border);padding-bottom:1px}.cof-guide{border-top:var(--border-default);padding-top:1rem}.cof-guide-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.cof-guide-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.cof-guide-toggle{background:transparent;border:var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:2px 10px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.cof-guide-toggle:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.cof-guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.cof-guide-card{background:var(--color-bg-elevated);border:var(--border-default);border-radius:var(--radius-md);overflow:hidden}.cof-guide-card summary{list-style:none;display:flex;align-items:center;gap:.6rem;padding:10px 14px;cursor:pointer;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.cof-guide-card summary::-webkit-details-marker{display:none}.cof-guide-card summary:hover{background:#ffffff0a}.cof-guide-card[open] summary{border-bottom:var(--border-subtle)}.cof-guide-chevron{color:var(--color-text-muted);font-style:normal;font-size:10px;transition:transform var(--transition-fast);margin-left:auto;flex-shrink:0}.cof-guide-card[open] .cof-guide-chevron{transform:rotate(180deg)}.cof-guide-icon{font-size:16px;flex-shrink:0}.cof-guide-body{padding:12px 14px;font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.6}.cof-guide-body p+p{margin-top:.5rem}.cof-guide-body ul{padding-left:1rem;margin-top:.4rem}.cof-guide-body li{margin-bottom:.3rem}.cof-guide-body strong{color:var(--color-text-primary);font-weight:600}.cof-guide-body .cof-example{margin-top:.6rem;background:var(--color-bg-surface);border:var(--border-subtle);border-radius:var(--radius-sm);padding:8px 12px;font-family:var(--font-mono, monospace);font-size:var(--font-size-sm);color:var(--color-accent);letter-spacing:.04em}.midi-triggers-panel{padding:12px;display:flex;flex-direction:column;gap:10px;font-size:13px}.midi-triggers-port-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.midi-triggers-port-row select{flex:1;min-width:160px}.midi-triggers-hint{font-size:11px;opacity:.6;font-style:italic}.midi-triggers-table{width:100%;border-collapse:collapse;font-size:12px}.midi-triggers-ts-live{color:#bbb;font-variant-numeric:tabular-nums;font-family:SF Mono,Fira Code,monospace}.midi-triggers-table th{text-align:left;opacity:.6;font-weight:500;padding:2px 6px;border-bottom:1px solid rgba(255,255,255,.1)}.midi-triggers-table td{padding:4px 6px}.midi-triggers-table tr:hover td{background:#ffffff0a}.midi-triggers-row{cursor:pointer}.midi-triggers-row:hover td{background:#ffffff0f}.midi-triggers-row-editing td{background:#ffffff0a;padding:2px 4px}.midi-triggers-inline-input{font-size:12px;width:100%;min-width:40px;padding:1px 4px;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-radius:3px;color:inherit;box-sizing:border-box}.midi-triggers-inline-input--narrow{max-width:48px}.midi-triggers-action-badge{font-size:11px;padding:1px 6px;border-radius:3px;font-weight:500}.midi-triggers-action-mute{background:#ff505033;color:#f88}.midi-triggers-action-unmute{background:#50c87833;color:#7d7}.midi-triggers-actions-cell{display:flex;gap:2px;align-items:center}.midi-triggers-test{background:none;border:none;cursor:pointer;opacity:.4;font-size:10px;padding:2px 4px;color:inherit}.midi-triggers-test:hover{opacity:1;color:#6bf}.midi-triggers-remove{background:none;border:none;cursor:pointer;opacity:.4;font-size:11px;padding:2px 4px;color:inherit}.midi-triggers-remove:hover{opacity:1;color:#f66}.midi-triggers-empty{opacity:.4;font-size:12px;font-style:italic;margin:0}.midi-triggers-quick-mute{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;background:#ffffff0a;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.midi-triggers-quick-mute label{display:flex;align-items:center;gap:4px;font-size:11px;opacity:.7}.midi-triggers-presets{display:flex;flex-wrap:wrap;gap:6px}.midi-triggers-shortcut-hint{font-size:10px;opacity:.35;align-self:center;font-family:monospace}.midi-triggers-preset-btn{font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:inherit}.midi-triggers-preset-btn:hover{background:#ffffff24}.midi-triggers-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;padding:10px;background:#ffffff0a;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.midi-triggers-form label{display:flex;flex-direction:column;gap:3px;font-size:11px;opacity:.7}.midi-triggers-form input,.midi-triggers-form select{font-size:12px;padding:3px 5px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:3px;color:inherit;width:100%;box-sizing:border-box}.midi-triggers-form-actions{grid-column:1 / -1;display:flex;gap:8px}.midi-triggers-form-actions button{padding:4px 12px;border-radius:4px;cursor:pointer;font-size:12px;border:1px solid rgba(255,255,255,.2);color:inherit}.midi-triggers-form-actions button:first-child{background:#64b4ff33}.midi-triggers-form-actions button:first-child:hover{background:#64b4ff59}.midi-triggers-form-actions button:last-child{background:#ffffff0f}._bar_19ty5_2{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg);min-height:56px;box-sizing:border-box;background:var(--color-bg-surface)}._controls_19ty5_12{display:flex;align-items:center;gap:var(--space-xs)}._toggles_19ty5_18{display:flex;align-items:center;gap:var(--space-xs);padding-left:var(--space-md);border-left:var(--border-width) solid var(--color-border)}._view_19ty5_30{display:flex;align-items:center;gap:var(--space-md);padding-left:var(--space-md);border-left:var(--border-width) solid var(--color-border);min-width:0;overflow-x:auto}._zoomGroup_19ty5_40{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-muted)}._zoomLevel_19ty5_48{min-width:60px;text-align:center;font-family:var(--font-mono)}._bpmDisplay_19ty5_54{display:flex;align-items:center;gap:8px}._bpmLabel_19ty5_60{font-size:12px;color:var(--color-text-muted);white-space:nowrap}._bpmValue_19ty5_66{font-size:14px;font-weight:600;color:var(--color-text-bright);font-family:var(--font-mono);white-space:nowrap}._tempo_19ty5_74{display:flex;align-items:baseline;gap:4px;margin-left:auto;padding-left:var(--space-md);font-family:var(--font-mono);font-size:var(--font-size-body);color:var(--color-text-secondary)}._tempoNote_19ty5_85{font-size:var(--font-size-body-lg);color:var(--color-text-primary)}._tempoValue_19ty5_90{font-variant-numeric:tabular-nums}._banner_1jrvj_1{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;margin:0 0 .5rem;border-radius:8px;background:var(--hg-surface-raised, #1c1f26);border:1px solid var(--hg-border, #333);color:var(--hg-text, #eee);font-size:.9rem}._banner--error_1jrvj_14{border-color:var(--hg-danger, #b3413a)}._text_1jrvj_18{flex:1 1 auto;min-width:0}._title_1jrvj_23{font-weight:600}._detail_1jrvj_27{opacity:.8}._actions_1jrvj_31{display:flex;gap:.5rem;flex:0 0 auto}._progressTrack_1jrvj_37{flex:1 1 auto;height:6px;border-radius:3px;background:#ffffff1f;overflow:hidden}._progressFill_1jrvj_45{height:100%;background:var(--hg-accent, #6c8cff);transition:width .15s ease-out}._install_1jrvj_51{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;margin:0 0 .5rem;border-radius:8px;background:var(--hg-surface, #14161b);border:1px dashed var(--hg-border, #333);color:var(--hg-text-muted, #aaa);font-size:.85rem}._overlay_1jrvj_64{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}._dialog_1jrvj_74{background:var(--hg-surface-raised, #1c1f26);border:1px solid var(--hg-border, #333);border-radius:10px;padding:1.25rem;max-width:360px;color:var(--hg-text, #eee)}._dialogActions_1jrvj_83{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}:root{--nav-rail-width: 232px}.app-nav{display:flex;flex-direction:column;width:var(--nav-rail-width);flex-shrink:0;background:var(--color-bg-surface);border-right:1px solid var(--color-border);padding:var(--space-md) var(--space-sm) var(--space-md);gap:var(--space-md);z-index:10;font-family:var(--font-sans);overflow-y:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav__brand{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm) var(--space-sm);text-decoration:none;color:var(--color-text-bright)}.app-nav__brand-mark{width:26px;height:26px;color:var(--color-action);flex-shrink:0}.app-nav__brand-word{font-family:var(--font-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;white-space:nowrap}.app-nav__brand-hero{color:var(--color-action)}.app-nav__group{display:flex;flex-direction:column;gap:2px}.app-nav__group-label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-faint);padding:var(--space-xs) var(--space-sm) var(--space-xs)}.app-nav-item{position:relative;display:flex;flex-direction:row;align-items:center;gap:var(--space-sm);padding:9px var(--space-sm);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);font-family:inherit;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-medium);text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.app-nav-item__icon{flex-shrink:0;color:var(--color-text-muted);transition:color var(--transition-fast)}.app-nav-item:hover{color:var(--color-text-primary)}.app-nav-item:hover .app-nav-item__icon{color:var(--color-text-secondary)}.app-nav-item.active{background:transparent;color:var(--color-text-bright)}.app-nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:20px;border-radius:1px;background:var(--color-nav-active)}.app-nav-item.active .app-nav-item__icon{color:var(--color-nav-active)}.app-nav-item.disabled,.app-nav-item:disabled{opacity:.4;cursor:not-allowed}.app-nav-item.disabled:hover,.app-nav-item:disabled:hover{background:transparent;color:var(--color-text-secondary)}.app-nav-item.locked{opacity:1;color:var(--color-text-muted)}.app-nav-item__lock{margin-left:auto;color:var(--color-premium);flex-shrink:0}.app-nav-label{line-height:var(--line-height-tight);white-space:nowrap}.app-nav-item[data-tooltip]{position:relative}.app-nav-item[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 10px;font-size:var(--font-size-md);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .1s ease;z-index:1000}.app-nav-item[data-tooltip]:hover:after{opacity:1}.app-nav__spacer{flex:1}.app-nav__plan{display:flex;flex-direction:column;gap:var(--space-sm);padding:10px var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-surface);border:1px solid var(--color-border)}.app-nav__plan-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.app-nav__plan-info{display:flex;flex-direction:column;line-height:1.25;min-width:0}.app-nav__plan-tier{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-bright)}.app-nav__plan-build{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.app-nav__plan-dot{width:6px;height:6px;border-radius:50%;background:var(--color-action);flex-shrink:0}.app-nav__plan-cta{padding:7px var(--space-md);border:none;border-radius:var(--radius-md);background:var(--color-premium);color:var(--color-premium-text);font-family:inherit;font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.app-nav__plan-cta:hover{background:var(--color-premium-hover)}.continue-practicing{display:flex;flex-direction:column;gap:var(--space-sm)}.cp-eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.cp-eyebrow{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted)}.cp-last-session{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-faint)}.cp-card{display:flex;gap:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-lg);background:var(--color-bg-surface);border:1px solid var(--color-border-strong)}.cp-cover{position:relative;width:128px;height:128px;flex-shrink:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden}.cp-cover__initial{font-size:56px;font-weight:var(--font-weight-bold);color:#ffffffd9;font-family:var(--font-sans)}.cp-body{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;flex:1}.cp-meta-row{display:flex;align-items:center;gap:var(--space-md)}.cp-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-action) 15%,transparent);color:var(--color-action);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase}.cp-title{margin:var(--space-xs) 0 0;font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-bright);line-height:var(--line-height-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-artist{margin:0;font-size:var(--font-size-body);color:var(--color-text-secondary)}.cp-actions{display:flex;flex-direction:column;gap:var(--space-sm);flex-shrink:0;width:176px}.cp-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:11px var(--space-md);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.cp-btn:disabled{opacity:.6;cursor:not-allowed}.cp-btn--primary{border:none;background:var(--color-action);color:var(--color-action-text)}.cp-btn--primary:hover:not(:disabled){background:var(--color-action-hover)}@media(max-width:720px){.cp-card{flex-direction:column}.cp-cover{width:100%;height:140px}.cp-actions{width:100%}}.project-grid{display:flex;flex-direction:column;gap:var(--space-md)}.project-grid__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.project-grid__title{margin:0;font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}.project-grid__count{font-family:var(--font-mono);font-size:var(--font-size-md);color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.project-grid__controls{display:flex;align-items:center;gap:var(--space-sm)}.project-grid__sort{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-body-sm);color:var(--color-text-secondary)}.project-grid__sort select{padding:6px var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-base);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-body-sm);cursor:pointer}.project-grid__new{padding:7px var(--space-md);border:none;border-radius:var(--radius-md);background:var(--color-action);color:var(--color-action-text);font-family:var(--font-sans);font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.project-grid__new:hover{background:var(--color-action-hover)}.project-grid__items{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-md)}.project-grid__empty,.project-grid__signin{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);text-align:center}.project-grid__empty-text{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-body)}.project-grid__signin{color:var(--color-text-secondary);font-size:var(--font-size-body)}.project-card{display:flex;flex-direction:column;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface);cursor:pointer;overflow:hidden;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast),background var(--transition-fast)}.project-card:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-bg-elevated)}.project-card:disabled{opacity:.6;cursor:progress}.project-card__cover{position:relative;aspect-ratio:1 / 1;overflow:hidden}.project-card__art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-normal)}.project-card:hover:not(:disabled) .project-card__art{transform:scale(1.05)}.project-card__initial{font-size:48px;font-weight:var(--font-weight-bold);color:#ffffffd1}.project-card__cover-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent 55%);pointer-events:none}.project-card__play{position:absolute;right:var(--space-sm);bottom:var(--space-sm);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--color-action);color:var(--color-action-text);box-shadow:var(--shadow-md);opacity:0;transition:opacity var(--transition-fast)}.project-card:hover:not(:disabled) .project-card__play{opacity:1}.project-card__body{display:flex;flex-direction:column;gap:var(--space-xs);padding:10px var(--space-sm)}.project-card__title{font-size:var(--font-size-body-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card__artist{font-size:var(--font-size-md);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card__footer{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-faint)}.project-card__time{color:var(--color-text-muted)}.collections-panel{display:flex;flex-direction:column;gap:1rem;padding:1rem}.collections-panel__header{display:flex;align-items:center;justify-content:space-between}.collections-panel__title{font-size:1.25rem;font-weight:600;margin:0}.collections-panel__error{color:var(--color-danger);font-size:.875rem}.collections-panel__empty,.collections-panel__loading{color:var(--color-text-muted, #718096);font-size:.875rem}.collection-create-form{display:flex;gap:.5rem;align-items:center}.collection-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.collection-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:1rem;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;background:var(--color-bg-surface);cursor:pointer;text-align:left;transition:box-shadow .15s,border-color .15s}.collection-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.collection-card__icon{font-size:1.5rem}.collection-card__title{font-weight:600;font-size:.95rem;word-break:break-word}.collection-card__meta{font-size:.8rem;color:var(--color-text-muted, #718096)}.collection-card__date{font-size:.75rem;color:var(--color-text-muted, #718096)}.collection-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;font-size:.875rem;color:var(--color-text-muted, #718096);margin-bottom:.75rem}.collection-breadcrumb__item{display:flex;align-items:center;gap:.25rem}.collection-breadcrumb__segment{background:none;border:none;cursor:pointer;color:var(--color-nav-active);padding:0;font-size:inherit;text-decoration:underline}.collection-breadcrumb__segment:hover{color:var(--color-nav-active-hover)}.collection-breadcrumb__separator{color:var(--color-text-muted, #718096)}.collection-breadcrumb__current{color:var(--color-text-primary);font-weight:500}.collection-view{display:flex;flex-direction:column;gap:1rem;padding:1rem}.collection-view__header{display:flex;flex-direction:column;gap:.5rem}.collection-view__title-row{display:flex;align-items:center;gap:.5rem}.collection-view__title{font-size:1.25rem;font-weight:600;margin:0;flex:1}.collection-view__title-actions{display:flex;align-items:center;gap:.25rem}.collection-view__description{font-size:.875rem;color:var(--color-text-muted, #718096);margin:0}.collection-edit-form{display:flex;flex-direction:column;gap:.5rem}.collection-edit-form__actions{display:flex;gap:.5rem}.collection-view__empty{color:var(--color-text-muted, #718096);font-size:.875rem}.collection-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.collection-item-card{display:flex;align-items:stretch;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;background:var(--color-bg-surface);overflow:hidden}.collection-item-card__main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.collection-item-card__main:hover{background:var(--color-bg-elevated)}.item-type-icon{font-size:1.25rem}.collection-item-card__title{font-weight:500;font-size:.9rem;word-break:break-word}.collection-item-card__subtitle,.collection-item-card__meta{font-size:.78rem;color:var(--color-text-muted, #718096)}.collection-item-card__actions{display:flex;flex-direction:column;justify-content:flex-start;padding:.4rem;gap:.25rem;border-left:1px solid var(--color-border, #e2e8f0)}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.add-item-modal{background:var(--color-bg-surface);border-radius:10px;padding:1.5rem;min-width:360px;max-width:480px;width:100%;box-shadow:0 10px 40px #0003}.add-item-modal .modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.add-item-modal .modal-header h2{font-size:1.1rem;font-weight:600;margin:0}.add-item-modal .modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--color-text-muted);line-height:1}.add-item-form{display:flex;flex-direction:column;gap:.75rem}.form-label{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem;font-weight:500}.form-input,.form-select{padding:.45rem .6rem;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--color-bg-base);color:var(--color-text-primary)}.form-error{color:var(--color-danger);font-size:.8rem;margin:0}.form-hint{font-size:.8rem;color:var(--color-text-muted, #718096);margin:0}.add-item-modal .modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.library-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e2e8f0);margin-bottom:1rem}.library-tab{padding:.5rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--color-text-muted, #718096);transition:color .15s,border-color .15s}.library-tab:hover{color:var(--color-text-primary)}.library-tab--active{color:var(--color-text-bright);border-bottom-color:var(--color-action)}.collections-empty{display:flex;flex-direction:column;gap:var(--space-xl)}.collections-empty__hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);text-align:center}.collections-empty__title{margin:0;font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}.collections-empty__subtitle{margin:0;max-width:460px;font-size:var(--font-size-body);color:var(--color-text-secondary)}.collections-empty__cta{margin-top:var(--space-sm);padding:10px var(--space-lg);border:none;border-radius:var(--radius-md);background:var(--color-action);color:var(--color-action-text);font-family:var(--font-sans);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.collections-empty__cta:hover{background:var(--color-action-hover)}.unlocks{display:flex;flex-direction:column;gap:var(--space-md)}.unlocks__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.unlocks__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md)}.unlock-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-surface)}.unlock-card__icon{color:var(--color-nav-active);margin-bottom:var(--space-xs)}.unlock-card__title{display:flex;align-items:center;gap:var(--space-sm);margin:0;font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}.unlock-card__desc{margin:0;font-size:var(--font-size-body-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.badge-pro{padding:2px 7px;border-radius:999px;background:var(--color-premium);color:var(--color-premium-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.04em}.hg-tooltip{position:fixed;background:var(--color-bg-surface);color:var(--color-text-primary);border:var(--border-width, 1px) solid var(--color-border);border-radius:var(--radius-sm);padding:5px 9px;font-size:var(--font-size-xs);line-height:1.4;max-width:220px;white-space:normal;box-shadow:0 4px 12px #00000059;z-index:9000;pointer-events:none;animation:hg-tooltip-in var(--transition-fast, .15s) ease}@keyframes hg-tooltip-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.hg-tooltip{animation:none}}.log-panel{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#0e0e10;border-top:1px solid #2a2a2e;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.log-panel--open{height:260px}.log-panel__resize-handle{height:4px;cursor:ns-resize;background:transparent;flex-shrink:0}.log-panel__resize-handle:hover{background:#3a3a3e}.log-panel__tab{display:flex;align-items:center;height:28px;padding:0 10px;cursor:pointer;background:#18181c;border-top:1px solid #2a2a2e;flex-shrink:0;gap:8px;-webkit-user-select:none;user-select:none}.log-panel__tab:hover{background:#1e1e22}.log-panel__tab-label{color:#a0a0b0;font-size:11px;font-weight:600;display:flex;align-items:center;gap:5px;white-space:nowrap}.log-panel__dot{display:inline-block;width:6px;height:6px;border-radius:50%}.log-panel__dot--on{background:#3fb950}.log-panel__dot--off{background:#6e6e80}.log-panel__badge{background:#d1453b;color:#fff;font-size:10px;font-weight:700;border-radius:8px;padding:0 5px;min-width:16px;text-align:center;line-height:16px}.log-panel__toolbar{display:flex;align-items:center;gap:3px;flex:1;overflow:hidden}.log-panel__sep{width:1px;height:14px;background:#2a2a2e;margin:0 2px}.log-panel__filter-btn{background:none;border:1px solid transparent;color:#666;border-radius:3px;padding:1px 5px;font-size:10px;font-family:inherit;cursor:pointer;white-space:nowrap}.log-panel__filter-btn:hover{border-color:#3a3a3e;color:#aaa}.log-panel__filter-btn.active{border-color:#4a4a5e;color:#ccd;background:#1e1e2e}.log-filter--warning.active{border-color:#7a5a00;color:orange;background:#1a1400}.log-filter--error.active{border-color:#7a1500;color:#f55;background:#1a0000}.log-panel__module-filter{background:#111114;border:1px solid #2a2a2e;color:#aaa;border-radius:3px;padding:1px 5px;font-size:10px;font-family:inherit;width:80px;outline:none}.log-panel__module-filter:focus{border-color:#4a4a7e}.log-panel__list{flex:1;overflow-y:auto;overflow-x:hidden;padding:2px 0}.log-panel__empty{color:#444;padding:10px 12px;font-style:italic}.log-row{display:flex;align-items:baseline;gap:6px;padding:1px 10px;border-bottom:1px solid transparent;line-height:1.5;min-height:18px}.log-row:hover{background:#15151a}.log-row--error{background:#1a0000}.log-row--error:hover{background:#200000}.log-row--critical{background:#1a001a}.log-row--warning{background:#0e0900}.log-row__ts{color:#444;white-space:nowrap;flex-shrink:0}.log-level{width:14px;text-align:center;font-weight:700;flex-shrink:0}.log-level--debug{color:#555}.log-level--info{color:#3fb950}.log-level--warning{color:#d29922}.log-level--error{color:#f85149}.log-level--critical{color:#ff80ff}.log-row__source{flex-shrink:0;font-size:10px}.log-row__module{color:#5c7aaa;white-space:nowrap;flex-shrink:0;min-width:60px}.log-row__msg{color:#c9d1d9;white-space:pre-wrap;word-break:break-all;flex:1;-webkit-user-select:text;user-select:text}.log-row__expand{background:none;border:none;color:#5c7aaa;font-size:10px;cursor:pointer;padding:0 4px;flex-shrink:0}.log-row__expand:hover{color:#8ab4d4}.log-panel__list::-webkit-scrollbar{width:5px}.log-panel__list::-webkit-scrollbar-track{background:transparent}.log-panel__list::-webkit-scrollbar-thumb{background:#2a2a2e;border-radius:3px}
