:root{--ui-scale:1;--space-0:0px;--space-0-5:calc(2px * var(--ui-scale));--space-1:calc(4px * var(--ui-scale));--space-1-5:calc(6px * var(--ui-scale));--space-2:calc(8px * var(--ui-scale));--space-2-5:calc(10px * var(--ui-scale));--space-3:calc(12px * var(--ui-scale));--space-3-5:calc(14px * var(--ui-scale));--space-4:calc(16px * var(--ui-scale));--space-5:calc(20px * var(--ui-scale));--space-6:calc(24px * var(--ui-scale));--space-7:calc(28px * var(--ui-scale));--space-8:calc(32px * var(--ui-scale));--space-12:calc(48px * var(--ui-scale));--text-2xs:calc(10px * var(--ui-scale));--text-xs:calc(11px * var(--ui-scale));--text-sm:calc(12px * var(--ui-scale));--text-caption:calc(13px * var(--ui-scale));--text-body-sm:calc(14px * var(--ui-scale));--text-body:calc(15px * var(--ui-scale));--text-md:calc(16px * var(--ui-scale));--text-lg:calc(17px * var(--ui-scale));--text-xl:calc(18px * var(--ui-scale));--text-2xl:calc(20px * var(--ui-scale));--text-3xl:calc(32px * var(--ui-scale));--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:16px;--radius-pill:9999px;--radius-full:50%;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 4px 16px #00000024;--bg-primary:#f0f2f6;--bg-secondary:#fff;--bg-tertiary:#e4e7ee;--bg-elevated:#fff;--text-primary:#1a1f2e;--text-secondary:#4a5064;--text-muted:#6e7486;--border:#0000001f;--accent:#6366f1;--accent-hover:#4f46e5;--danger:#dc2626;--success:#16a34a;--warning:#d97706;--marker:#65a30d;--marker-dim:#65a30d26;--playback:#0ea5c9;--confirm:#2563eb;--confirm-hover:#1d4ed8;--player-bg:#2a3348;--player-text:#e4e8ee;--sopran:#ec4899;--alt:#f97316;--tenor:#3b82f6;--bass:#22c55e;--satb:#8b5cf6;--piano:#a78bfa;--sec-color:#64748b;--v-beat:#65a30d;--v-note-bg:#fcd34d;--v-note-text:#1f2937;--v-note-inline-bg:#5eead4;--v-note-inline-text:#134e4a;--v-note-bottom-bg:#fda4af;--v-note-bottom-text:#881337}[data-theme=dark]{--shadow-sm:0 1px 4px #0000004d;--shadow-md:0 4px 16px #0000004d;--shadow-lg:0 4px 16px #00000059;--bg-primary:#1e2538;--bg-secondary:#2a3348;--bg-tertiary:#354050;--bg-elevated:#303a50;--text-primary:#e4e8ee;--text-secondary:#9aa4b4;--text-muted:#6a7484;--border:#94a3b81a;--accent:#818cf8;--accent-hover:#6366f1;--danger:#f87171;--success:#4ade80;--warning:#fbbf24;--marker:#a3e635;--marker-dim:#a3e63533;--playback:#22d3ee;--confirm:#3b82f6;--confirm-hover:#2563eb;--player-bg:#2a3348;--player-text:#e4e8ee;--v-beat:#a3e635;--v-note-bg:#fcd34d;--v-note-text:#1f2937;--v-note-inline-bg:#5eead4;--v-note-inline-text:#134e4a;--v-note-bottom-bg:#fda4af;--v-note-bottom-text:#881337}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}input::placeholder,textarea::placeholder{color:var(--text-muted);font-style:italic}.popup-menu{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-1);box-shadow:var(--shadow-lg);white-space:nowrap;position:absolute}.popup-menu-item{align-items:center;gap:var(--space-2-5);width:100%;padding:var(--space-3) var(--space-3-5);color:var(--text-primary);font-size:var(--text-body-sm);cursor:pointer;border-radius:var(--radius-md);text-align:left;touch-action:manipulation;background:0 0;border:none;font-family:inherit;display:flex}.popup-menu-item:active{background:var(--bg-secondary)}.app-shell,.browse-page{flex-direction:column;height:100%;display:flex}.browse-header{z-index:10;flex-shrink:0}.browse-content{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:200px;overflow-y:auto}.browse-footer{justify-content:center;gap:var(--space-2-5);padding:11px var(--space-3);background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0;display:flex}.browse-footer-btn{padding:5px var(--space-3-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-body-sm);cursor:pointer;align-items:center;gap:5px;min-height:34px;font-family:inherit;display:flex}.browse-footer-btn:active{background:var(--border)}.topbar{padding:var(--space-1) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-2-5);z-index:10;min-height:40px;transition:transform .3s,opacity .3s;display:flex;position:sticky;top:0}.topbar--hidden{opacity:0;pointer-events:none;z-index:10;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}.topbar-back{color:var(--text-secondary);padding:0 var(--space-1) 0 0;font-size:var(--text-xl);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;align-items:center;line-height:1;display:flex}.topbar-title{font-size:var(--text-xl);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.topbar-actions{align-items:center;gap:var(--space-1);flex-shrink:0;margin-left:auto;display:flex}.topbar-action{color:var(--text-secondary);padding:var(--space-1);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;align-items:center;margin-left:auto;display:flex}.topbar-action:active{opacity:.6}.topbar-action--save{color:var(--confirm,#3b82f6);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:#3b82f61f}.topbar-action--save:hover:not(:disabled){background:var(--confirm,#3b82f6);color:#fff}.topbar-action--save:disabled{opacity:.4;cursor:not-allowed}.topbar-action--save[aria-busy=true]{animation:1.2s ease-in-out infinite topbar-save-pulse}@keyframes topbar-save-pulse{0%,to{opacity:.55}50%{opacity:1}}.topbar-track{align-items:center;gap:var(--space-1-5);flex-shrink:1;min-width:0;margin-left:auto;display:flex}.topbar-track-name{font-size:var(--text-caption);color:var(--text-secondary);white-space:nowrap;font-weight:500}.topbar-voice-badge{font-size:var(--text-caption);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;font-weight:700}.main-content{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.bottom-nav{padding:var(--space-2) 0 var(--space-3-5);background:var(--bg-secondary);border-top:1px solid var(--border);justify-content:space-around;align-items:center;min-height:60px;display:flex}.bottom-nav-item{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-5);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;font-family:inherit;display:flex}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-label{font-size:var(--text-sm);font-weight:500}.mini-player{padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-top:1px solid var(--border);align-items:center;gap:var(--space-2-5);cursor:pointer;display:flex;position:relative}.mini-player-icon{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--accent);background:#818cf826;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mini-player-info{flex:1;min-width:0}.mini-player-title{font-size:var(--text-caption);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.mini-player-time{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.mini-player-btn{color:var(--text-primary);cursor:pointer;padding:var(--space-2);background:0 0;border:none;align-items:center;display:flex}.mini-player-expand{color:var(--text-muted);cursor:pointer;padding:var(--space-2);background:0 0;border:none;flex-shrink:0;align-items:center;display:flex}.mini-player-progress{background:var(--bg-tertiary);height:2px;position:absolute;bottom:0;left:0;right:0}.mini-player-progress-fill{background:var(--accent);height:100%;transition:width .3s linear}.top-player-bar{padding:var(--space-1-5) var(--space-4) 30px;background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:50;cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;min-height:56px;display:flex;position:relative}.top-player-bar--full{background:var(--bg-elevated);cursor:default}.top-player-back{color:var(--text-secondary);cursor:pointer;padding:var(--space-2-5);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:48px;min-height:48px;display:flex;position:absolute;left:8px}.top-player-time{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;min-width:36px;font-weight:500}.top-player-controls{align-items:center;gap:var(--space-2);display:flex}.top-player-loop{color:var(--text-muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-full);touch-action:manipulation;opacity:.3;min-width:36px;min-height:36px;margin-right:var(--space-1);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.top-player-loop:disabled{cursor:default}.top-player-loop--has-range{opacity:1;color:var(--text-secondary)}.top-player-loop--active{opacity:1;color:#f59e0b}.top-player-loop:active:not(:disabled){background:var(--bg-tertiary)}.top-player-skip{color:var(--playback);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);align-items:center;gap:var(--space-1);font-size:var(--text-caption);touch-action:manipulation;border-radius:var(--radius-xl);background:0 0;border:none;justify-content:center;min-width:44px;min-height:44px;font-family:inherit;font-weight:600;display:flex}.top-player-skip:active{background:var(--bg-tertiary)}.top-player-play{border-radius:var(--radius-full);background:var(--playback);width:52px;height:52px;color:var(--bg-primary);cursor:pointer;touch-action:manipulation;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.top-player-play:active{background:var(--playback);opacity:.8;transform:scale(.95)}.top-player-progress{background:var(--bg-tertiary);height:3px;position:absolute;bottom:0;left:0;right:0}.top-player-progress-fill{background:var(--accent);height:100%;transition:width .3s linear}.top-player-menu{z-index:60;position:absolute;top:50%;right:8px;transform:translateY(calc(-50% - 12px))}.top-player-menu-btn{color:var(--text-muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-full);touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.top-player-menu-btn:active{background:var(--bg-tertiary)}.top-player-menu-popup{min-width:72px;top:calc(100% + 4px);right:0}.top-player-menu-item.active{background:var(--accent);color:#fff}.mini-waveform{position:absolute;bottom:0;left:0;right:0}.mini-waveform-canvas{cursor:pointer;width:100%;height:20px;display:block}.mini-waveform-markers{width:100%;height:6px;position:relative}.mini-waveform-marker-dot{border-radius:var(--radius-full);background:var(--marker);width:5px;height:5px;position:absolute;top:1px;transform:translate(-50%)}.footer-slot{flex-shrink:0}.global-player{bottom:var(--space-2);left:var(--space-3);right:var(--space-3);z-index:50;padding-top:var(--space-2);background:var(--bg-secondary);color:var(--text-primary);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);border:1px solid var(--border);transition:transform .3s,opacity .3s;position:fixed}.global-player--hidden{transform:translateY(calc(100% + var(--space-4)));opacity:0;pointer-events:none}.voice-bricks{gap:var(--space-2);padding:var(--space-2-5) 0 var(--space-2);margin:0 var(--space-3);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.voice-bricks::-webkit-scrollbar{display:none}.voice-brick{align-items:center;gap:var(--space-2);padding:var(--space-1-5) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:1.5px solid #0000;flex-shrink:0;font-family:inherit;font-weight:600;transition:all .15s;display:flex;position:relative}.voice-brick:active{opacity:.8}.voice-brick--active{box-shadow:0 0 12px #ffffff14}.voice-brick-content{padding-left:var(--space-1-5);flex-direction:column;gap:1px;display:flex}.voice-brick-label{font-size:var(--text-sm);font-weight:600;line-height:1.2}.voice-brick-duration{font-size:var(--text-2xs);opacity:.6;font-variant-numeric:tabular-nums;font-weight:500}.voice-brick-eq{flex-shrink:0;align-items:flex-end;gap:1.5px;height:14px;display:flex}.voice-brick-eq span{background:currentColor;border-radius:1px;width:2.5px;animation:.8s ease-in-out infinite alternate eq-bar}.voice-brick-eq span:first-child{height:6px;animation-delay:0s}.voice-brick-eq span:nth-child(2){height:10px;animation-delay:.2s}.voice-brick-eq span:nth-child(3){height:4px;animation-delay:.4s}.voice-brick-eq span:nth-child(4){height:12px;animation-delay:.1s}@keyframes eq-bar{0%{height:3px}to{height:14px}}.voice-bricks-dots{justify-content:center;gap:var(--space-1);padding:0 var(--space-3) var(--space-2);display:flex}.voice-bricks-dot{border-radius:var(--radius-full);background:var(--text-muted);opacity:.3;width:5px;height:5px;transition:opacity .15s,transform .15s}.voice-bricks-dot--active{opacity:1;transform:scale(1.3)}.global-player-markers{align-items:center;gap:var(--space-1-5);padding:var(--space-1) var(--space-3);border-bottom:1px solid var(--border);display:flex;overflow:visible}.global-player-markers-scroll{align-items:center;gap:var(--space-1-5);-webkit-overflow-scrolling:touch;white-space:nowrap;flex:1;min-width:0;display:flex;overflow-x:auto}.seek-bar{padding:var(--space-2-5) var(--space-3) 0;cursor:pointer;touch-action:none;position:relative}.seek-bar-times{padding:var(--space-1) 0 var(--space-0-5);justify-content:space-between;display:flex}.seek-bar-time{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:500}.seek-bar-track{background:var(--bg-tertiary);border-radius:1.5px;height:3px;position:relative}.seek-bar-played{background:var(--accent);border-radius:1.5px;height:100%}.seek-bar-thumb{border-radius:var(--radius-full);background:var(--text-primary);pointer-events:none;z-index:2;width:14px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.seek-bar-thumb--loop{background:#f59e0b}.seek-bar-loop-fill{background:#f59e0b;border-radius:1.5px;height:100%;position:absolute}.seek-bar-marker-dot{border-radius:var(--radius-full);background:var(--marker);pointer-events:none;z-index:1;width:6px;height:6px;position:absolute;top:50%;transform:translate(-50%,-50%)}.global-player-controls{padding:var(--space-0-5) var(--space-3) var(--space-3);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));align-items:center;display:flex;position:relative}.gpc-side{flex:1;align-items:center;display:flex}.gpc-side--left{padding-right:var(--space-3);justify-content:flex-end}.gpc-side--right{justify-content:flex-start;gap:0}.gpc-center{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.gpc-btn{color:var(--text-secondary);opacity:1;cursor:pointer;border-radius:var(--radius-full);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.gpc-btn:disabled{cursor:default;opacity:.3}.gpc-btn:active:not(:disabled){background:var(--bg-tertiary)}.gpc-btn--active{color:#22c55e;opacity:1}.gpc-btn-skip{color:var(--text-secondary);opacity:1}.gpc-btn-play{border-radius:var(--radius-full);border:2px solid var(--text-secondary);width:48px;height:48px;color:var(--text-primary);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.gpc-btn-play:active{opacity:.8;transform:scale(.95)}.gpc-skip-menu{position:relative}.gpc-skip-label{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-md);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;min-width:32px;min-height:44px;margin-left:-10px;font-family:inherit;font-weight:600;display:flex}.gpc-skip-label:active{background:var(--bg-tertiary)}.gpc-btn-marker{margin-left:auto}.gpc-menu-popup{z-index:60;min-width:72px;bottom:calc(100% + 4px);right:0}.gpc-menu-item.active{background:var(--accent);color:#fff}.gpc-doc-menu{position:relative}.gpc-doc-popup{z-index:60;min-width:200px;max-width:280px;bottom:calc(100% + 4px);left:0}.gpc-doc-item{justify-content:space-between}.gpc-doc-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.gpc-doc-item-check{color:#22c55e;flex-shrink:0}.gpc-doc-item--selected{color:var(--text-primary)}.gpc-doc-skeleton{padding:var(--space-1);gap:var(--space-1-5);flex-direction:column;display:flex}.gpc-doc-skeleton-item{height:var(--text-body);border-radius:var(--radius-sm)}.gpc-doc-skeleton-item:first-child{width:80%}.gpc-doc-skeleton-item:last-child{width:60%}.global-player-menu-popup{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-1-5);gap:var(--space-0-5);box-shadow:var(--shadow-md);flex-direction:column;min-width:72px;display:flex;position:absolute;bottom:calc(100% + 4px);right:0}.section-cards{gap:var(--space-1-5);padding:0 0 var(--space-2);flex-direction:column;display:flex}.section-card{align-items:center;gap:var(--space-2-5);padding:var(--space-2-5) var(--space-3-5);border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:var(--text);-webkit-tap-highlight-color:transparent;background:0 0;border:2px solid #0000;font-family:inherit;transition:border-color .15s;display:flex}.section-card--active{border-color:var(--text-primary)}.section-card--looping{border-color:#f59e0b}.section-card--gap{border:1.5px dashed var(--border);opacity:.6}.section-card-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.section-card-dot--gap{border:1.5px dashed var(--text-muted);background:0 0!important}.section-card-label{font-size:var(--text-caption);flex:1;font-weight:600}.section-card-label--gap{color:var(--text-muted);font-weight:400;font-size:var(--text-sm)}.section-card-time{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.player-marker-row{align-items:center;gap:var(--space-1-5);padding:var(--space-1) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border);white-space:nowrap;flex-shrink:0;display:flex;overflow:visible}.player-marker-row-scroll{align-items:center;gap:var(--space-1-5);-webkit-overflow-scrolling:touch;flex:1;min-width:0;display:flex;overflow-x:auto}.player-toolbar-btn{min-width:44px;min-height:34px;padding:5px var(--space-3-5);border-radius:var(--radius-lg);border:1.5px solid var(--border);color:var(--text-secondary);font-size:var(--text-body-sm);cursor:pointer;touch-action:manipulation;background:0 0;justify-content:center;align-items:center;font-family:inherit;font-weight:700;display:flex}.player-toolbar-btn:active{background:var(--bg-tertiary)}.player-toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.player-toolbar-marker{align-items:center;gap:var(--space-1);padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-2xl);border:1px solid var(--marker);background:var(--marker-dim);color:var(--marker);font-size:var(--text-sm);font-variant-numeric:tabular-nums;cursor:pointer;white-space:nowrap;flex-shrink:0;font-family:inherit;font-weight:500;display:flex}.player-toolbar-marker:active{background:var(--bg-tertiary)}.player-toolbar-marker--pending{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b}.player-toolbar-marker--deletable{border-color:var(--danger);color:#fff;background:#f871711f}.player-toolbar-marker--deletable .marker-dot{background:#fff}.player-toolbar-marker-x{color:var(--text-muted);margin-left:var(--space-0-5);align-items:center;display:flex}.player-toolbar-marker--deletable .player-toolbar-marker-x{color:#fff}.marker-delete-toggle{min-width:44px;min-height:34px;padding:5px var(--space-3);border-radius:var(--radius-lg);border:1.5px solid var(--border);color:var(--text-secondary);cursor:pointer;touch-action:manipulation;background:0 0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.marker-delete-toggle:active{background:var(--bg-tertiary)}.marker-delete-toggle--active{border-color:var(--text-muted);background:var(--text-muted);color:#fff}.player-scroll-content{-webkit-overflow-scrolling:touch;padding:0 var(--space-5) var(--space-5);flex:1;overflow-y:auto}.dot-bar{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;cursor:pointer;flex-shrink:0;transition:transform .3s,opacity .3s,height .3s,padding .3s;display:flex}.dot-bar--hidden{opacity:0;pointer-events:none;height:0;padding:0;overflow:hidden;transform:translateY(-100%)}.dot{border-radius:var(--radius-full);background:var(--bg-tertiary);cursor:pointer;border:none;width:7px;height:7px;padding:0;transition:all .25s}.dot--active{background:var(--accent);border-radius:var(--radius-xs);width:20px}.player-content-area{flex:1;position:relative;overflow:hidden}.player-content-panels{width:200%;height:100%;transition:transform .3s;display:flex}.player-content-panels.swiping{transition:none}.player-content-panel{-webkit-overflow-scrolling:touch;width:50%;height:100%;overflow-y:auto}.pdf-panel{flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.pdf-panel--fullscreen{z-index:100;background:var(--bg-primary);height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;inset:0}.pdf-panel--fullscreen .text-viewer-content,.pdf-panel--fullscreen .rtf-viewer-content{flex-direction:column;justify-content:safe center;display:flex}.pdf-panel--fullscreen .pdf-pages{justify-content:safe center}body.body-scroll-fs{height:auto!important;overflow:auto!important}body.body-scroll-fs #root,body.body-scroll-fs .app-shell,body.body-scroll-fs .main-content,body.body-scroll-fs .player-page,body.body-scroll-fs .viewer-page,body.body-scroll-fs .viewer-content,body.body-scroll-fs .player-scroll-content{height:auto!important;overflow:visible!important}body.body-scroll-fs .app-shell>:not(.main-content){display:none!important}body.body-scroll-fs .pdf-panel--fullscreen{height:auto;min-height:100dvh;position:relative;inset:auto}body.body-scroll-fs .pdf-panel--fullscreen:after{content:"";height:1px;display:block}body.body-scroll-fs .pdf-panel--fullscreen .cho-viewer-wrap,body.body-scroll-fs .pdf-panel--fullscreen .text-viewer-content,body.body-scroll-fs .pdf-panel--fullscreen .rtf-viewer-content,body.body-scroll-fs .pdf-panel--fullscreen .pdf-pages{flex:none;overflow:visible!important}body.body-scroll-fs .pdf-fab,body.body-scroll-fs .transpose-stepper--floating,body.body-scroll-fs .chord-toolbar--floating,body.body-scroll-fs .autoscroll-stepper{position:fixed}.swipe-hint{bottom:calc(var(--space-3) + 56px);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:#fff;border-radius:var(--radius-pill);font-size:var(--text-sm);z-index:110;pointer-events:none;background:#000000b3;font-weight:500;animation:.3s swipe-hint-in,.4s 5s forwards swipe-hint-out;display:flex;position:fixed;left:50%;transform:translate(-50%)}.swipe-hint-arrow{font-size:var(--text-lg);animation:1s ease-in-out infinite swipe-hint-bounce}@keyframes swipe-hint-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes swipe-hint-out{0%{opacity:1}to{opacity:0}}@keyframes swipe-hint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.pdf-toolbar{padding:var(--space-1) var(--space-3);flex-shrink:0;justify-content:space-between;align-items:center;min-height:36px;display:flex}.pdf-toolbar-name{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-right:var(--space-2);flex:1;overflow:hidden}.pdf-toolbar-actions{gap:var(--space-0-5);flex-shrink:0;display:flex}.pdf-toolbar-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;text-decoration:none;display:flex}.pdf-toolbar-btn:hover{background:var(--bg-tertiary)}.pdf-toolbar-btn--active{background:var(--accent);color:#fff}.pdf-toolbar-btn--active:hover{background:var(--accent);opacity:.9}.pdf-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.pdf-toolbar-btn:disabled:hover{background:0 0}.pdf-toolbar-btn--danger:hover:not(:disabled){color:var(--danger,#ef4444);background:#ef44441a}.pdf-toolbar-btn--save:not(:disabled){color:var(--confirm,#16a34a);background:#16a34a1f}.pdf-toolbar-btn--save:hover:not(:disabled){background:#16a34a38}.pdf-pages{-webkit-overflow-scrolling:touch;align-items:flex-start;gap:var(--space-1);padding:var(--space-1);background:var(--bg-primary);flex-direction:column;flex:1;display:flex;overflow:auto}.pdf-pages--drawing{touch-action:none;overflow:hidden}.pdf-page-img{width:100%;height:auto;box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;pointer-events:none;background:#fff;display:block}.annotated-page{position:relative}.annotation-svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.annotation-svg--active{pointer-events:auto;touch-action:none;cursor:crosshair}.annotation-svg--move{cursor:grab}.annotation-svg--move:active{cursor:grabbing}.annotation-svg--duplicate{cursor:copy}.annotation-toolbar{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--bg-elevated);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;overflow-x:auto}.annotation-toolbar-group{align-items:center;gap:var(--space-0-5);display:flex}.annotation-tool-btn{border-radius:var(--radius-sm);background:var(--bg-secondary);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border:1.5px solid #0000;justify-content:center;align-items:center;display:flex}.annotation-tool-btn:active{transform:scale(.93)}.annotation-tool-btn--active{border-color:var(--accent);color:var(--accent);background:var(--bg-tertiary)}.annotation-tool-btn--danger{color:var(--danger)}.annotation-tool-btn:disabled{opacity:.3;cursor:default}.annotation-color-btn{border-radius:var(--radius-full);cursor:pointer;border:2px solid #0000;width:24px;height:24px}.annotation-color-btn--active{border-color:var(--text-primary);box-shadow:var(--shadow-sm)}.annotation-width-btn{border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;border:1.5px solid #0000;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.annotation-width-btn--active{border-color:var(--accent)}.annotation-width-dot{border-radius:var(--radius-full);background:var(--text-primary)}.pdf-fab{bottom:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-elevated);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-md);z-index:5;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:absolute}.pdf-fab:active{transform:scale(.93)}.pdf-fab--draw{right:auto;left:var(--space-3)}.pdf-fab--draw-active,.pdf-fab--fullscreen{background:var(--accent);color:#fff;border-color:#0000}.pdf-fab--faded{opacity:.3}.pdf-fab-progress{pointer-events:none;width:48px;height:48px;position:absolute;top:-2px;left:-2px}.pdf-fab-progress circle{fill:none;stroke-width:2px;transform-origin:50%;transform:rotate(-90deg)}.pdf-fab-progress .pdf-fab-progress-track{stroke:#ffffff26}.pdf-fab-progress .pdf-fab-progress-fill{stroke:#fff;stroke-dasharray:138.23;transition:stroke-dashoffset .3s}.pdf-upload{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-muted);flex-direction:column;flex:1;display:flex}.pdf-upload-icon{border-radius:var(--radius-xl);background:var(--bg-elevated);width:48px;height:48px;color:var(--accent);justify-content:center;align-items:center;display:flex}.pdf-upload-text{font-size:var(--text-caption);text-align:center;line-height:1.5}.pdf-upload-btn{padding:var(--space-2-5) var(--space-6);border-radius:var(--radius-lg);border:1.5px dashed var(--accent);color:var(--accent);font-size:var(--text-caption);cursor:pointer;align-items:center;gap:var(--space-1-5);background:#818cf814;font-weight:600;display:flex}.pdf-upload-hint{font-size:var(--text-xs);color:var(--text-muted)}.doc-tabs{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;display:flex;overflow:hidden}.doc-tabs-scroll{gap:var(--space-0-5);padding:var(--space-1) var(--space-2);scrollbar-width:none;flex:1;display:flex;overflow-x:auto}.doc-tabs-scroll::-webkit-scrollbar{display:none}.doc-tab{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-size:var(--text-xs);white-space:nowrap;cursor:pointer;flex-shrink:0;display:flex}.doc-tab--active{background:var(--accent);color:#fff;border-color:var(--accent)}.doc-tab-name{text-overflow:ellipsis;max-width:120px;overflow:hidden}.doc-tab-hide{border-radius:var(--radius-xs);width:18px;height:18px;color:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.doc-tab-hide:hover{opacity:1}.doc-tabs-hidden-badge{padding:var(--space-1) var(--space-2);color:var(--text-muted);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;font-weight:600}.doc-tabs-hidden-badge:hover{color:var(--accent)}.video-viewer{height:100%;padding:var(--space-2);flex-direction:column;display:flex}.video-viewer-name{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-1) var(--space-2)}.video-viewer-player{border-radius:var(--radius-lg);background:#000;width:100%;max-height:60vh}.text-viewer{color:#1a1f2e;background:#fff;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.text-viewer-name{font-size:var(--text-sm);color:#4a5064;padding:var(--space-2) var(--space-3);border-bottom:1px solid #0000001f;flex-shrink:0}.text-viewer-content{min-height:0;padding:var(--space-3);padding-bottom:var(--space-12);white-space:pre-wrap;word-break:break-word;color:#1a1f2e;background:#fff;flex:1;margin:0;font-family:monospace;line-height:1.6;transition:font-size .15s;overflow:auto}.rtf-viewer-content{min-height:0;padding:var(--space-3);padding-bottom:var(--space-12);word-break:break-word;color:#1a1f2e;background:#fff;flex:1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55;transition:font-size .15s;overflow:auto}.rtf-viewer-inner{min-height:100%;position:relative}.rtf-viewer-para{margin:0 0 var(--space-2) 0;white-space:pre-wrap}.rtf-viewer-para--empty{height:1em}.rtf-viewer-heading{margin:var(--space-4) 0 var(--space-2) 0;color:#1a1f2e;border-bottom:none;padding-bottom:0;font-weight:700}.rtf-viewer-heading--l1{letter-spacing:.01em;margin-top:calc(var(--space-4) - 4px);margin-bottom:calc(var(--space-2) - 4px);font-size:1.6em}.rtf-viewer-heading--l2{font-size:1.4em}.rtf-viewer-heading--l3{color:#4a5064;padding-bottom:var(--space-1);border-bottom:1px solid #0000001f;font-size:1.05em}.rtf-viewer-heading--l4{color:#6b7280;margin:var(--space-2) 0;font-size:1em;font-style:italic;font-weight:500}.rtf-viewer-heading--l5{color:#6b7280;font-size:1.05em}.rtf-viewer-heading--l6{color:#9ca3af;margin:var(--space-3) 0 var(--space-1) 0;text-align:right;border-bottom:none;font-size:.85em;font-style:italic;font-weight:400}.rtf-viewer-bar-initial{text-underline-offset:3px;-webkit-text-decoration:underline #2563eb;text-decoration:underline #2563eb;text-decoration-thickness:2px}.rtf-viewer-melody-glyph{color:#dc2626;font-weight:600}.rtf-viewer-comment{color:#8a6d20;padding:0 var(--space-1);border-radius:var(--radius-xs);background:#ffeb3b59}.rtf-viewer-comment-block{color:#8a6d20;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);background:#ffeb3b59;border-left:3px solid #c9a227}.rtf-editor{-webkit-overflow-scrolling:touch;color:#1a1f2e;background:#fff;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.rtf-editor-toolbars{z-index:3;background:#fff;flex-shrink:0;position:sticky;top:0}.rtf-editor-bar{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#fff;border-bottom:1px solid #0000001f;flex-shrink:0;display:flex}.rtf-editor-name{font-size:var(--text-sm);color:#4a5064;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rtf-editor-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.rtf-editor-btn{border-radius:var(--radius-sm);color:#4a5064;cursor:pointer;background:0 0;border:1px solid #0000001f;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.rtf-editor-btn:hover{background:#0000000a}.rtf-editor-btn--active{color:var(--confirm);background:#0066cc1f;border-color:#0066cc59}.rtf-editor-btn--save{background:var(--confirm);border-color:var(--confirm);color:#fff}.rtf-editor-btn--save:hover{filter:brightness(1.06)}.rtf-editor-btn--save:disabled{opacity:.6;cursor:default}.rtf-editor-sep{width:1px;height:20px;margin:0 var(--space-1);background:#0000001f}.rtf-editor-error{padding:var(--space-2) var(--space-3);color:var(--danger);font-size:var(--text-sm);background:#dc26260f;border-bottom:1px solid #dc262633}.rtf-editor-subbar{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:#fafbfc;border-bottom:1px solid #0000001f;flex-shrink:0;display:flex}.rtf-editor-subbar-label{font-size:var(--text-xs);color:#4a5064;margin-right:var(--space-1);flex-shrink:0}.rtf-editor-swatch{border-radius:var(--radius-xs);cursor:pointer;color:#4a5064;border:1px solid #00000038;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.rtf-editor-swatch:hover{transform:scale(1.08)}.rtf-editor-swatch--active{transform:scale(1.05);box-shadow:0 0 0 2px #1a1f2e}.rtf-editor-swatch--yellow{background:#fef3c7}.rtf-editor-swatch--red{background:#fecaca}.rtf-editor-swatch--green{background:#bbf7d0}.rtf-editor-swatch--blue{background:#bfdbfe}.rtf-editor-swatch--gray{background:#e5e7eb}.rtf-editor-swatch--none{background:#fff}.rtf-editor-swatch--none:disabled{opacity:.4;cursor:default;transform:none}.rtf-editor-heading-btn{height:26px;padding:0 var(--space-2);border-radius:var(--radius-xs);color:#4a5064;font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #00000038;flex-shrink:0;transition:background 80ms,border-color 80ms,color 80ms}.rtf-editor-heading-btn:hover{background:#0000000a;border-color:#4a5064}.rtf-editor-heading-btn--active{border-color:var(--confirm,#3b82f6);color:var(--confirm,#3b82f6);box-shadow:0 0 0 1px var(--confirm,#3b82f6);background:#3b82f624}.rtf-editor-heading-btn--title{font-weight:700;font-size:var(--text-sm)}.rtf-editor-heading-btn--section{font-weight:600}.rtf-editor-heading-btn--info{color:#6b7280;font-style:italic}.rtf-editor-heading-btn--footer{color:#6b7280;font-style:italic;font-size:var(--text-2xs)}.rtf-editor-arrow-btn{border-radius:var(--radius-xs);color:#4a5064;min-width:32px;height:32px;font-size:var(--text-base);cursor:pointer;background:#fff;border:1px solid #00000038;flex-shrink:0;padding:0;line-height:1;transition:background 80ms,border-color 80ms}.rtf-editor-arrow-btn:hover{background:#0000000a;border-color:#4a5064}.rtf-editor-erase-btn{align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-2);border-radius:var(--radius-xs);color:#4a5064;font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #00000038;flex-shrink:0;transition:background 80ms,border-color 80ms,color 80ms;display:inline-flex}.rtf-editor-erase-btn:hover{border-color:var(--danger,#dc2626);color:var(--danger,#dc2626);background:#dc262614}.rtf-editor-erase-count{min-width:18px;padding:0 var(--space-1);border-radius:var(--radius-full);color:#4a5064;font-size:var(--text-2xs);text-align:center;background:#00000014;font-weight:600;line-height:16px;display:inline-block}.rtf-editor-erase-btn:hover .rtf-editor-erase-count{color:var(--danger,#dc2626);background:#dc262629}.rtf-editor-erase-empty{font-size:var(--text-xs);color:var(--text-muted,#6b7280);font-style:italic}.rtf-editor-content .tiptap mark{border-radius:var(--radius-xs);padding:0 2px}.rtf-editor-content{padding:var(--space-3);flex:1;padding-bottom:50vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55}.rtf-editor-content .tiptap{outline:none;min-height:100%}.rtf-editor-content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#00000059;pointer-events:none;height:0}.rtf-editor-content .tiptap p{margin:0 0 var(--space-2) 0}.rtf-editor-content .tiptap h1,.rtf-editor-content .tiptap h2,.rtf-editor-content .tiptap h3,.rtf-editor-content .tiptap h4,.rtf-editor-content .tiptap h5,.rtf-editor-content .tiptap h6{margin:var(--space-4) 0 var(--space-2) 0;color:#1a1f2e;border-bottom:none;padding-bottom:0;font-weight:700}.rtf-editor-content .tiptap h1{letter-spacing:.01em;margin-top:calc(var(--space-4) - 4px);margin-bottom:calc(var(--space-2) - 4px);font-size:1.6em}.rtf-editor-content .tiptap h3{color:#4a5064;padding-bottom:var(--space-1);border-bottom:1px solid #0000001f;font-size:1.25em}.rtf-editor-content .tiptap h4{color:#6b7280;margin:var(--space-2) 0;font-size:1em;font-style:italic;font-weight:500}.rtf-editor-content .tiptap h6{color:#9ca3af;margin:var(--space-3) 0 var(--space-1) 0;text-align:right;font-size:.85em;font-style:italic;font-weight:400}.pdf-fab--zoom-in{bottom:calc(var(--space-3) + 48px + var(--space-2) + 40px + var(--space-2))}.pdf-fab--zoom-out{bottom:calc(var(--space-3) + 48px + var(--space-2))}.pdf-fab--small{width:40px;height:40px}.pdf-fab--small:disabled{opacity:.3;cursor:default}.transpose-stepper{align-items:center;gap:var(--space-1);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-1-5);box-shadow:var(--shadow-sm);display:inline-flex}.transpose-stepper--floating{top:var(--space-3);right:var(--space-3);z-index:5;transition:opacity .5s;position:absolute}.transpose-stepper--below-chrome{top:calc(var(--space-3) + 36px + 56px)}.chord-toolbar--floating{top:var(--space-3);right:var(--space-3);z-index:5;align-items:center;gap:var(--space-2);transition:opacity .5s;display:inline-flex;position:absolute}.chord-toolbar--below-chrome{top:calc(var(--space-3) + 36px + 56px)}.chord-toolbar--below-annotation{top:calc(var(--space-3) + 45px)}.chord-toggle-split{height:calc(32px + 2 * var(--space-1));border-radius:var(--radius-pill);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:stretch;display:inline-flex;overflow:hidden}.chord-toggle-segment{padding:0 var(--space-3);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;font-weight:600;line-height:1;transition:background .15s,color .15s}.chord-toggle-segment:active{background:#ffffff0d}.chord-toggle-segment--chord.chord-toggle-segment--active{color:var(--v-note-bg,#fcd34d)}.transpose-stepper-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.transpose-stepper-btn:active{background:#ffffff0d}.transpose-stepper-btn:disabled{opacity:.3;cursor:default}.transpose-stepper-value{text-align:center;min-width:32px;font-size:var(--text-sm);color:var(--text-primary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font-weight:600}.autoscroll-stepper{bottom:var(--space-3);align-items:center;gap:var(--space-0-5);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-1-5);box-shadow:var(--shadow-md);z-index:5;-webkit-user-select:none;user-select:none;transition:opacity .5s;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.autoscroll-stepper--faded{opacity:.3}.autoscroll-stepper-icon{border-radius:var(--radius-full);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.autoscroll-stepper-icon--on{background:var(--accent);color:#fff}.autoscroll-stepper-divider{background:var(--border);width:1px;height:24px;margin:0 var(--space-0-5)}.autoscroll-stepper-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.autoscroll-stepper-btn:active{background:#ffffff0d}.autoscroll-stepper-btn:disabled{opacity:.3;cursor:default}.autoscroll-stepper-value{text-align:center;min-width:44px;font-size:var(--text-sm);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:700}.autoscroll-stepper-value--off{color:var(--text-muted);font-weight:500}.file-icon-doc{color:var(--accent);background:#818cf826}.player-empty-sections{justify-content:center;align-items:center;gap:var(--space-4);min-height:200px;color:var(--text-muted);font-size:var(--text-body);flex-direction:column;flex:1;display:flex}.player-empty-waveform{opacity:.25;width:120px;height:48px}.player-loop-row{justify-content:center;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.btn{padding:var(--space-2-5) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-body);cursor:pointer;touch-action:manipulation;border:none;justify-content:center;align-items:center;min-height:44px;font-weight:500;transition:background .15s;display:inline-flex}.btn-primary{background:var(--confirm);color:#fff}.btn-primary:hover{background:var(--confirm-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-icon{padding:var(--space-2);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:24px;display:flex}.input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);background:var(--bg-primary);color:var(--text-primary);min-height:44px}.input:focus{border-color:var(--accent);outline:none}.input-group{gap:var(--space-1-5);flex-direction:column;display:flex}.input-label{font-size:var(--text-caption);color:var(--text-secondary);font-weight:500}.file-list{list-style:none}.file-item{padding:var(--space-3-5) var(--space-4);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3-5);cursor:pointer;transition:background .1s;display:flex}.file-item:active{background:var(--bg-secondary)}.file-item--active{background:color-mix(in srgb, #818cf8 8%, var(--bg-primary))}.file-item--song-selected{outline-offset:-1.5px;border-radius:var(--radius-lg);background:color-mix(in srgb, #818cf8 6%, var(--bg-primary));outline:1.5px solid #818cf859}.file-item--non-clickable{cursor:default}.file-item--non-clickable:active{background:var(--bg-secondary)}.file-item--highlight{animation:2s ease-out highlight-flash}@keyframes highlight-flash{0%{background:color-mix(in srgb, var(--accent) 25%, var(--bg-primary))}to{background:0 0}}.file-type-badge{border-radius:var(--radius-md);border:1.5px solid var(--border);justify-content:center;align-items:center;gap:var(--space-0-5);width:40px;min-height:40px;padding:var(--space-1) 0;color:var(--text-muted);flex-direction:column;flex-shrink:0;line-height:1;display:flex}.file-type-ext{text-transform:uppercase;letter-spacing:.05em;font-size:9px;font-weight:700}.file-type-badge--folder,.file-type-badge--texte,.file-type-badge--folder-audio,.file-type-badge--folder-videos,.file-type-badge--folder-multitrack,.file-type-badge--song{border:none;width:auto;min-height:0;padding:0}.file-type-badge--folder{color:#60a5fa}.file-type-badge--texte{color:var(--accent)}.file-type-badge--folder-audio{color:#22d3ee}.file-type-badge--folder-videos{color:#e879f9}.file-type-badge--folder-multitrack{color:#fbbf24}.file-type-badge--song{color:var(--accent)}.file-type-badge--text{color:var(--accent);border-color:#818cf859}.file-type-badge--chord .file-type-ext{text-transform:none;letter-spacing:0}.file-type-badge--audio{color:#22d3ee;border-color:#06b6d459}.file-type-badge--videos{color:#e879f9;border-color:#d946ef59}.file-type-badge--multitrack{color:#fbbf24;border-color:#f59e0b59}.file-selected-check{color:#22c55e;flex-shrink:0;align-self:center}.file-type-badge--playing{color:var(--accent);border:none;width:auto;min-height:0;padding:0}.file-name--active{color:var(--accent);font-weight:600}.playing-bars{align-items:flex-end;gap:var(--space-0-5);height:14px;display:flex}.playing-bars span{background:var(--accent);border-radius:1px;width:3px;animation:.8s ease-in-out infinite bar-bounce}.playing-bars span:first-child{height:6px;animation-delay:0s}.playing-bars span:nth-child(2){height:10px;animation-delay:.2s}.playing-bars span:nth-child(3){height:4px;animation-delay:.4s}@keyframes bar-bounce{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.file-info{flex:1;overflow:hidden}.file-name-row{align-items:center;gap:var(--space-1-5);min-width:0;display:flex}.fav-heart{color:var(--accent);flex-shrink:0}.file-name{font-size:var(--text-body);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.file-meta{font-size:var(--text-caption);color:var(--text-muted);gap:var(--space-2);align-items:center;margin-top:3px;display:flex}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-list{pointer-events:none}.skeleton-item{cursor:default}.skeleton-bone{background:linear-gradient(90deg, var(--bg-secondary) 25%, var(--bg-tertiary) 50%, var(--bg-secondary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-icon{border-radius:var(--radius-lg)}.skeleton-name{height:var(--text-body);margin-bottom:var(--space-1-5)}.skeleton-meta{height:var(--text-caption);width:30%}.filter-bar{gap:var(--space-1-5);padding:var(--space-2) var(--space-4);white-space:nowrap;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.filter-chip{padding:7px var(--space-3-5);border:1.5px solid var(--border);color:var(--text-secondary);font-size:var(--text-caption);cursor:pointer;white-space:nowrap;background:0 0;border-radius:18px;flex-shrink:0;align-items:center;gap:5px;font-family:inherit;font-weight:500;display:inline-flex}.filter-chip.active{border-color:var(--accent);color:var(--accent);background:#818cf826}.filter-chip-dot{border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px}.file-labels{gap:var(--space-1);flex-wrap:wrap;margin-top:3px;display:flex}.label-chip-sm{border-radius:var(--radius-md);font-size:var(--text-2xs);white-space:nowrap;padding:1px 7px;font-weight:600;display:inline-flex}.file-list--cards{gap:var(--space-1-5);padding:var(--space-2) var(--space-4);flex-direction:column;display:flex}.file-list--cards>li{border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.file-list--cards>.swipe-wrapper{border-bottom:1px solid var(--border)}.file-list--cards .file-item{border-bottom:none;align-items:flex-start}.file-list--cards .swipe-content{background:var(--bg-secondary);z-index:2}.file-list--cards .swipe-actions{z-index:1}.file-list--cards>.file-item{background:var(--bg-secondary)}.file-list--cards .file-item--active{background:color-mix(in srgb, #818cf8 8%, var(--bg-secondary))}.file-list--cards>li:has(.file-item--active){border-color:#818cf84d}.file-list--cards .file-name{font-size:var(--text-xl)}.file-list--cards .file-type-badge{margin-top:var(--space-0-5)}.meta-line1,.meta-line2,.meta-line3,.meta-line4{padding-left:var(--space-4)}.meta-line1{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-1);align-items:center;gap:var(--space-1-5);flex-wrap:wrap;display:flex}.meta-duration{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.meta-duration--sep:after{content:"·";margin-left:var(--space-1-5);color:var(--text-muted)}.meta-voice-tag{align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;display:inline-flex}.meta-voice-dot{border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px}.meta-line2{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1);align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.meta-section{border-radius:var(--radius-xs);font-size:var(--text-2xs);color:var(--accent);background:#818cf81f;padding:1px 7px;font-weight:500;display:inline-flex}.meta-line3{margin-top:var(--space-2);gap:var(--space-1);flex-wrap:wrap;display:flex}.meta-line4{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.meta-bricks{margin-top:var(--space-2);gap:var(--space-1-5);width:100%;display:flex}.meta-brick{justify-content:center;align-items:center;gap:var(--space-1-5);min-height:40px;padding:0 var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:1.5px solid;flex:1;font-family:inherit;font-weight:600;transition:transform .1s,box-shadow .15s,background .15s,border-color .15s;display:inline-flex}.meta-brick:active{transform:scale(.97)}.meta-brick--empty{opacity:.32;cursor:default;background:0 0;border-style:dashed}.meta-brick--empty:active{transform:none}.meta-brick--texte.meta-brick--empty,.meta-brick--doc.meta-brick--empty{border-color:#6366f1e6}.meta-brick--audio.meta-brick--empty{border-color:#06b6d4e6}.meta-brick--videos.meta-brick--empty{border-color:#d946efe6}.meta-brick--multitrack.meta-brick--empty{border-color:#f59e0be6}.meta-brick--doc,.meta-brick--texte{color:#c7d2fe;background:#6366f114;border-color:#6366f159}.meta-brick--audio{color:#67e8f9;background:#06b6d414;border-color:#06b6d459}.meta-brick--videos{color:#e879f9;background:#d946ef14;border-color:#d946ef59}.meta-brick--multitrack{color:#fbbf24;background:#f59e0b14;border-color:#f59e0b59}.meta-label{border-radius:var(--radius-lg);font-size:var(--text-2xs);background:0 0;border:1px solid;align-items:center;padding:1px 7px;font-weight:500;display:inline-flex}.meta-brick--songs{color:#67e8f9;background:#06b6d414;border-color:#06b6d459}.meta-brick--songs.meta-brick--active{color:#a5f3fc;background:#06b6d447;border-color:#06b6d4e6;box-shadow:0 0 0 3px #06b6d426,0 2px 8px #06b6d440}.view-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex}.view-bar .meta-bricks{gap:var(--space-1-5);flex:1;display:flex}.song-card-header{padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.song-card-header__info{min-width:0}.song-card-header__name{font-size:var(--text-xl);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.meta-brick--active{position:relative}.meta-brick--texte.meta-brick--active,.meta-brick--doc.meta-brick--active{color:#e0e7ff;background:#6366f147;border-color:#6366f1e6;box-shadow:0 0 0 3px #6366f126,0 2px 8px #6366f140}.meta-brick--audio.meta-brick--active{color:#a5f3fc;background:#06b6d447;border-color:#06b6d4e6;box-shadow:0 0 0 3px #06b6d426,0 2px 8px #06b6d440}.meta-brick--videos.meta-brick--active{color:#f5d0fe;background:#d946ef47;border-color:#d946efe6;box-shadow:0 0 0 3px #d946ef26,0 2px 8px #d946ef40}.meta-brick--multitrack.meta-brick--active{color:#fde68a;background:#f59e0b47;border-color:#f59e0be6;box-shadow:0 0 0 3px #f59e0b26,0 2px 8px #f59e0b40}.meta-brick__label{font-size:var(--text-sm)}.file-actions-btn{color:var(--text-muted);padding:var(--space-2);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;align-items:center;display:flex}.fav-toggle{cursor:pointer;padding:var(--space-2);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;align-items:center;display:flex}.fav-folder-group{list-style:none}.fav-folder-divider{padding:var(--space-3-5) var(--space-4);align-items:center;gap:var(--space-3-5);border-bottom:1px solid var(--border);cursor:pointer;display:flex}.fav-folder-divider:active{background:var(--bg-tertiary)}.fav-folder-divider-icon{border-radius:var(--radius-lg);color:#60a5fa;background:#60a5fa26;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.fav-folder-divider-name{font-size:var(--text-body);color:var(--text-primary);flex:1;font-weight:600}.fav-folder-divider-count{font-size:var(--text-xs);color:var(--text-muted)}.fav-folder-divider-heart{cursor:pointer;padding:var(--space-1);color:var(--danger);-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;display:flex}.fav-file-indented{padding-left:var(--space-8)}.file-list--cards>.fav-folder-group{background:var(--bg-secondary)}.file-list--cards .fav-folder-divider{border-bottom:1px solid var(--border)}.file-list--cards .fav-group-files{padding:0}.file-list--cards .fav-group-files>li{border:none;border-radius:0}.file-list--cards .fav-group-files .file-item{border-bottom:1px solid var(--border)}.file-list--cards .fav-group-files>li:last-child .file-item{border-bottom:none}.fav-section-label{padding:var(--space-2-5) var(--space-4) var(--space-1-5);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600;list-style:none}.file-list--cards>.fav-section-label{background:0 0;border:none;border-radius:0}.swipe-wrapper{border-bottom:1px solid var(--border);position:relative;overflow:hidden}.swipe-wrapper .file-item{border-bottom:none}.swipe-content{background:var(--bg-primary);z-index:1;transition:transform .25s;position:relative;transform:translate(0)}.swipe-actions{visibility:hidden;display:flex;position:absolute;top:0;bottom:0;right:0}.swipe-revealed .swipe-content{transform:translate(-144px)}.swipe-revealed:has(.swipe-action-delete) .swipe-content{transform:translate(-192px)}.swipe-revealed:has(.swipe-action-draft):not(:has(.swipe-action-delete)) .swipe-content{transform:translate(-192px)}.swipe-revealed:has(.swipe-action-draft):has(.swipe-action-delete) .swipe-content{transform:translate(-240px)}.swipe-revealed:has(.swipe-action-duplicate):not(:has(.swipe-action-draft)):not(:has(.swipe-action-delete)) .swipe-content{transform:translate(-192px)}.swipe-revealed:has(.swipe-action-duplicate):has(.swipe-action-draft):not(:has(.swipe-action-delete)) .swipe-content{transform:translate(-240px)}.swipe-revealed:has(.swipe-action-duplicate):not(:has(.swipe-action-draft)):has(.swipe-action-delete) .swipe-content{transform:translate(-240px)}.swipe-revealed:has(.swipe-action-duplicate):has(.swipe-action-draft):has(.swipe-action-delete) .swipe-content{transform:translate(-288px)}.swipe-revealed .swipe-actions{visibility:visible}.swipe-action-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;width:48px;display:flex}.swipe-action-fav{background:var(--surface);color:#f87171}.swipe-action-fav:active{background:var(--border)}.swipe-action-label{background:var(--surface);color:var(--accent)}.swipe-action-label:active{background:var(--border)}.swipe-action-info{background:var(--surface);color:var(--text-secondary)}.swipe-action-info:active{background:var(--border)}.swipe-action-duplicate{background:var(--surface);color:var(--confirm)}.swipe-action-duplicate:active{background:var(--border)}.swipe-action-duplicate:disabled{opacity:.5;cursor:wait}.swipe-action-delete{background:var(--danger);color:#fff}.swipe-action-delete:active{background:#dc2626}.swipe-action-draft{background:var(--surface);color:var(--warning,#eab308)}.swipe-action-draft:active{background:var(--border)}.swipe-action-draft--active{background:var(--warning,#eab308);color:#fff}.draft-badge{align-items:center;gap:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--warning,#eab308);color:#fff;height:20px;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-weight:600;display:inline-flex}.swipe-action-select{background:var(--surface);color:var(--text-muted)}.swipe-action-select--active{color:#22c55e;background:#22c55e26}.modal-overlay{z-index:1000;padding:var(--space-4);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container{background:var(--bg-primary);border-radius:var(--radius-2xl);-webkit-overflow-scrolling:touch;width:100%;max-width:400px;max-height:calc(100vh - 32px);overflow-y:auto}.modal-header{padding:var(--space-4) var(--space-4) var(--space-2);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-xl);font-weight:600}.modal-body{padding:var(--space-4) var(--space-4) var(--space-6);align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.confirm-filename{font-size:var(--text-body-sm);color:var(--text-secondary);word-break:break-all;margin-bottom:var(--space-1)}.confirm-hint{font-size:var(--text-caption);color:var(--text-muted);margin-bottom:var(--space-5)}.confirm-actions{gap:var(--space-3);display:flex}.confirm-actions .btn{flex:1}.search-bar{align-items:center;gap:var(--space-2);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:0 var(--space-2) 0 var(--space-3);flex:1;display:flex}.search-input{color:var(--text-primary);font-size:var(--text-body);padding:var(--space-2-5) 0;background:0 0;border:none;outline:none;flex:1;min-height:40px;font-family:inherit}.breadcrumb{padding:var(--space-1) var(--space-4) var(--space-1-5);font-size:var(--text-caption);color:var(--text-secondary);background:var(--bg-secondary);white-space:nowrap;align-items:center;gap:var(--space-1);border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.breadcrumb-item{cursor:pointer;color:var(--accent)}.breadcrumb-separator{color:var(--text-muted)}.breadcrumb-current{color:var(--text-primary);font-weight:500}.voice-part-selector{gap:var(--space-2);-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1);display:flex;overflow-x:auto}.voice-part-btn{padding:var(--space-2-5) var(--space-3);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-caption);cursor:pointer;background:0 0;flex-shrink:0;min-height:44px;font-weight:500;transition:all .15s}.voice-part-btn.selected{border-color:var(--accent);background:var(--accent);color:#fff}.auth-page{height:100%;padding:var(--space-6);background:var(--bg-primary);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:360px;padding:var(--space-8) var(--space-6)}.auth-logo{text-align:center;margin-bottom:var(--space-6)}.auth-logo-icon{background:var(--accent);border-radius:var(--radius-lg);color:#fff;width:44px;height:44px;margin-bottom:var(--space-3);justify-content:center;align-items:center;display:inline-flex}.auth-title{font-size:var(--text-2xl);margin-bottom:var(--space-1);font-weight:700}.auth-subtitle{font-size:var(--text-caption);color:var(--text-muted)}.auth-error{border:1px solid var(--danger);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);font-size:var(--text-caption);color:var(--danger);background:#f871711a}.auth-form{gap:var(--space-3-5);flex-direction:column;display:flex}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-label{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.auth-input{width:100%;padding:var(--space-2-5) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-body);background:var(--bg-primary);color:var(--text-primary);min-height:44px;font-family:inherit}.auth-input:focus{border-color:var(--accent);outline:none}.auth-input-wrap{position:relative}.auth-input-wrap .auth-input{padding-right:44px}.auth-pw-toggle{color:var(--text-muted);cursor:pointer;padding:var(--space-2);background:0 0;border:none;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.auth-footer{text-align:center;margin-top:var(--space-4);font-size:var(--text-caption);color:var(--text-secondary)}.auth-footer a{color:var(--accent);cursor:pointer;text-decoration:none}.auth-legal{margin-top:var(--space-2);font-size:var(--text-2xs);opacity:.75}.settings-legal{margin-top:var(--space-6);text-align:center;font-size:var(--text-2xs);color:var(--text-secondary);opacity:.7}.settings-legal a{color:var(--text-secondary);text-decoration:none}.settings-legal a:hover{text-decoration:underline}.welcome-modal{flex-direction:column;min-height:380px;display:flex}.welcome-slide{text-align:center;padding:var(--space-3) var(--space-1) var(--space-4);flex-direction:column;flex:1;align-items:center;display:flex}.welcome-icon{border-radius:var(--radius-xl);color:#fff;width:64px;height:64px;margin-bottom:var(--space-4);justify-content:center;align-items:center;display:inline-flex;box-shadow:0 8px 20px #6366f159}.welcome-icon-accent{background:linear-gradient(135deg, var(--accent), #8b5cf6)}.welcome-icon-install{background:linear-gradient(135deg, #0ea5e9, var(--accent));box-shadow:0 8px 20px #0ea5e959}.welcome-icon-muted{background:linear-gradient(135deg,#94a3b8,#64748b);box-shadow:0 8px 20px #64748b4d}.welcome-title{font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--space-2);font-weight:700}.welcome-text{font-size:var(--text-body-sm);color:var(--text-secondary);max-width:340px;line-height:1.55}.welcome-text-muted{color:var(--text-muted);font-style:italic}.welcome-placeholders{width:100%;margin-top:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.welcome-placeholder{border-radius:var(--radius-md);border:1px dashed var(--border);background:repeating-linear-gradient(45deg, var(--bg-tertiary), var(--bg-tertiary) 6px, var(--bg-primary) 6px, var(--bg-primary) 12px);height:56px;font-size:var(--text-xs);color:var(--text-muted);justify-content:center;align-items:center;font-weight:600;display:flex}.welcome-platform{width:100%;margin-top:var(--space-4);text-align:left;background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-3-5)}.welcome-platform+.welcome-platform{margin-top:var(--space-2-5)}.welcome-platform-title{font-size:var(--text-2xs);color:var(--text-primary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.4px;font-weight:700}.welcome-steps{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.welcome-steps li{align-items:center;gap:var(--space-2-5);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4;display:flex}.welcome-steps li b{color:var(--text-primary);font-weight:600}.welcome-step-icon{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.welcome-bottom{border-top:1px solid var(--border);margin:var(--space-3) calc(-1 * var(--space-4)) calc(-1 * var(--space-4));padding:var(--space-3) var(--space-4) var(--space-4)}.welcome-dots{padding-bottom:var(--space-3);justify-content:center;gap:6px;display:flex}.welcome-dot{background:var(--bg-tertiary);border-radius:50%;width:7px;height:7px;transition:width .2s,background .2s,border-radius .2s}.welcome-dot.active{background:var(--accent);border-radius:4px;width:22px}.welcome-actions{gap:var(--space-2);display:flex}.welcome-actions .btn{flex:1;min-height:44px}.welcome-actions .welcome-skip{flex:none}.welcome-actions .welcome-next{flex:1}.empty-state{padding:var(--space-12) var(--space-6);color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.empty-state-icon{opacity:.5;font-size:48px}.settings-heading{font-size:var(--text-body-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-3);font-weight:600}.settings-rows{gap:var(--space-2);flex-direction:column;display:flex}.settings-row{min-height:44px;font-size:var(--text-body);justify-content:space-between;align-items:center;display:flex}.settings-label{color:var(--text-secondary)}.settings-nav-list{gap:var(--space-0-5);flex-direction:column;display:flex}.settings-nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3-5);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--text-body);cursor:pointer;text-align:left;border:none;width:100%;font-family:inherit;display:flex}.settings-nav-item:active{background:var(--bg-tertiary)}.zoom-selector{gap:var(--space-1);background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-0-5);display:flex}.zoom-btn{padding:var(--space-1-5) var(--space-2-5);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-family:inherit}.zoom-btn.active{background:var(--accent);color:#fff}.user-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3);display:flex}.user-avatar{border-radius:var(--radius-full);background:var(--bg-tertiary);width:40px;height:40px;font-size:var(--text-xl);flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-info{flex:1}.user-name{font-size:var(--text-body);font-weight:500}.user-meta{font-size:var(--text-sm);color:var(--text-muted);gap:var(--space-2);margin-top:var(--space-0-5);display:flex}.player-page,.viewer-page{background:var(--bg-primary);flex-direction:column;height:100%;display:flex}.viewer-content{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:200px;overflow-y:auto}.viewer-empty{height:100%;color:var(--text-muted);font-size:var(--text-body);justify-content:center;align-items:center;display:flex}.player-header{padding:var(--space-3) 0;justify-content:space-between;align-items:center;display:flex}.player-header-btn{color:var(--text-secondary);cursor:pointer;padding:var(--space-2-5);border-radius:var(--radius-lg);background:0 0;border:none;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.player-header-btn:active{background:var(--bg-tertiary)}.player-header-title{font-size:var(--text-caption);color:var(--text-secondary);font-weight:500}.player-track-info{margin-top:var(--space-2-5);margin-bottom:var(--space-2)}.player-track-name{font-size:var(--text-xl);margin-bottom:var(--space-1);word-break:break-word;font-weight:600}.player-track-path{font-size:var(--text-caption);color:var(--text-muted)}.section-editor-footer{padding:11px var(--space-4);padding-bottom:calc(11px + env(safe-area-inset-bottom,0px));background:var(--bg-secondary);border-top:1px solid var(--border);z-index:20;flex-shrink:0;position:relative}.player-topbar-menu{z-index:100;min-width:200px;top:calc(100% + 4px);right:0}.player-footer-menu{z-index:50;min-width:200px;bottom:calc(100% + 8px);right:0}.section-shift-btn{border-radius:var(--radius-lg);width:44px;height:44px;color:var(--text-secondary);font-size:var(--text-2xl);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.section-shift-btn:active{color:var(--text-primary)}.section-shift-btn:disabled{opacity:.3;cursor:default}.section-boundary-row{gap:var(--space-1);margin-bottom:var(--space-6);justify-content:center;align-items:center;display:flex}.section-lane{width:100%;height:26px;margin-bottom:var(--space-1-5);position:relative}.section-block{border-radius:var(--radius-xs);cursor:pointer;height:100%;padding:0 var(--space-0-5);border:1px solid;justify-content:center;align-items:center;transition:background .15s;display:flex;position:absolute;top:0;overflow:hidden}.section-block--active{box-shadow:0 0 0 1px #fff6}.section-block-label{font-size:var(--text-2xs);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-time{width:100%;font-size:var(--text-caption);color:var(--text-secondary);margin-bottom:var(--space-3);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.player-markers{gap:var(--space-1-5);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.player-divider{background:var(--border);height:1px;margin:0 -20px 20px}.waveform-canvas{cursor:pointer;touch-action:pan-x;width:100%;height:60px;margin-bottom:var(--space-8)}.waveform-placeholder{width:100%;height:80px;margin-bottom:var(--space-6);justify-content:center;align-items:center;display:flex}.waveform-loading{font-size:var(--text-caption);color:var(--text-muted)}.unified-timeline{margin-bottom:var(--space-2);touch-action:pan-y}.unified-scroll{position:relative}.unified-scroll--scrollable{-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 var(--space-4);margin:0 -16px;overflow:auto hidden}.unified-scroll--scrollable::-webkit-scrollbar{display:none}.unified-strip{position:relative}.unified-strip .waveform-canvas{margin-bottom:0}.unified-section-lane{gap:var(--space-0-5);height:40px;margin-bottom:var(--space-0-5);cursor:pointer;display:flex}.unified-sec-block{border-radius:var(--radius-sm);height:100%;padding:0 var(--space-1-5);cursor:pointer;-webkit-tap-highlight-color:#ffffff1a;touch-action:manipulation;background:0 0;border:none;justify-content:center;align-items:center;font-family:inherit;display:flex;overflow:hidden}.unified-sec-block--gap{border:1.5px dashed #94a3b826;background:0 0!important}.unified-sec-block:focus{outline:none}.unified-sec-block--looping{border:3px solid #f59e0b!important}.unified-sec-label{font-size:var(--text-xs);color:#fff;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.unified-playhead{pointer-events:none;z-index:3;background:#fff;border-radius:1px;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 4px #00000080}.unified-playhead:before{content:"";border-radius:var(--radius-full);background:#fff;width:8px;height:8px;position:absolute;top:-3px;left:-3px}.waveform-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 var(--space-4);margin:0 -16px;overflow:auto hidden}.waveform-scroll::-webkit-scrollbar{display:none}.waveform-scroll .waveform-canvas{cursor:pointer;touch-action:pan-x;height:60px;margin-bottom:0;display:block}.player-view-toggle{background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-2);gap:var(--space-0-5);padding:3px;display:flex}.player-view-toggle-btn{padding:var(--space-1-5) 0;border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:5px;font-family:inherit;font-weight:600;display:flex}.player-view-toggle-btn.active{background:var(--bg-tertiary);color:var(--text-primary)}.section-strip-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 var(--space-4);margin:0 -16px;overflow:auto hidden}.section-strip-scroll::-webkit-scrollbar{display:none}.section-strip-inner{gap:3px;height:80px;display:flex}.section-strip-block{border-radius:var(--radius-md);cursor:pointer;height:100%;padding:var(--space-1) var(--space-1-5);border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;font-family:inherit;display:flex;position:relative;overflow:hidden}.section-strip-block--gap{border:1.5px dashed #94a3b833;background:0 0!important}.section-strip-block--gap .section-strip-label{color:#94a3b866;font-weight:500;font-size:var(--text-2xs)}.section-strip-block--gap .section-strip-time{color:#94a3b84d}.section-strip-block--current{outline-offset:-1.5px;outline:1.5px solid #ffffff4d}.section-strip-block--looping{outline-offset:-2px;outline:2px solid #f59e0b}.section-strip-label{font-size:var(--text-sm);color:#fff;z-index:1;white-space:nowrap;font-weight:700}.section-strip-time{font-size:var(--text-2xs);color:#fff9;font-variant-numeric:tabular-nums;z-index:1;margin-top:var(--space-0-5)}.section-strip-progress{pointer-events:none;background:#ffffff1f;border-radius:8px 0 0 8px;position:absolute;top:0;bottom:0;left:0}.section-strip-playing{align-items:flex-end;gap:var(--space-0-5);z-index:1;height:12px;margin-bottom:var(--space-0-5);display:flex}.section-strip-playing span{background:#fff;border-radius:1px;width:3px;animation:.8s ease-in-out infinite alternate section-play-bar}.section-strip-playing span:first-child{height:40%;animation-delay:0s}.section-strip-playing span:nth-child(2){height:70%;animation-delay:.15s}.section-strip-playing span:nth-child(3){height:50%;animation-delay:.3s}@keyframes section-play-bar{0%{transform:scaleY(.4)}to{transform:scaleY(1)}}.scroll-indicator{height:3px;margin:var(--space-1) 0 0;background:var(--bg-tertiary);border-radius:2px;position:relative;overflow:hidden}.scroll-indicator-thumb{background:var(--accent);border-radius:2px;min-width:20px;height:100%;transition:left .1s,width .1s;position:absolute;top:0}.player-core{justify-content:center;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.player-ab-btn{min-width:44px;min-height:34px;padding:5px var(--space-3-5);border-radius:var(--radius-lg);border:1.5px solid var(--border);color:var(--text-primary);font-size:var(--text-body-sm);cursor:pointer;touch-action:manipulation;background:0 0;justify-content:center;align-items:center;font-family:inherit;font-weight:700;display:flex}.player-ab-btn.active{color:#f59e0b;background:#f59e0b40;border-color:#f59e0b}.player-play-btn{border-radius:var(--radius-full);background:var(--accent);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;width:72px;height:72px;transition:all .15s;display:flex;box-shadow:0 4px 20px #818cf84d}.player-play-btn:active{background:var(--accent-hover);transform:scale(.95)}.player-controls{justify-content:center;align-items:center;gap:var(--space-5);margin-bottom:var(--space-5);display:flex}.player-ctrl-btn{color:var(--text-secondary);cursor:pointer;padding:var(--space-2-5);font-size:var(--text-caption);background:0 0;border:none;align-items:center;gap:5px;font-family:inherit;font-weight:500;display:flex}.player-ctrl-btn:disabled{opacity:.3;cursor:not-allowed}.player-ctrl-btn.player-ctrl-amber{color:#f59e0b}.player-actions{justify-content:center;gap:var(--space-3);display:flex}.player-action-btn{padding:var(--space-2) 18px;border-radius:var(--radius-md);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-caption);cursor:pointer;align-items:center;gap:var(--space-1-5);background:0 0;font-family:inherit;display:flex}.player-action-btn:active{background:var(--bg-tertiary)}.player-action-btn--active{color:#f87171;border-color:#f871714d}.player-action-btn--label{color:var(--accent);border-color:#818cf84d}.player-labels{gap:var(--space-1-5);flex-wrap:wrap;display:flex}.label-chip{padding:var(--space-0-5) var(--space-2-5);border-radius:var(--radius-xl);font-size:var(--text-xs);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.label-picker{gap:var(--space-2);padding:var(--space-4) 0;flex-wrap:wrap;justify-content:center;display:flex}.label-picker-item{align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3-5);border:1.5px solid var(--border);font-size:var(--text-caption);cursor:pointer;background:0 0;border-radius:20px;font-family:inherit;font-weight:500;transition:all .15s;display:flex}.label-picker-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.marker-chip{padding:var(--space-0-5) var(--space-1) var(--space-0-5) var(--space-2-5);background:var(--marker-dim);border:1px solid var(--marker);font-size:var(--text-xs);color:var(--marker);font-variant-numeric:tabular-nums;border-radius:14px;align-items:center;gap:3px;display:inline-flex}.marker-chip-jump{color:var(--text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;cursor:pointer;padding:var(--space-0-5) var(--space-0-5);background:0 0;border:none;font-family:inherit}.marker-chip-remove{color:var(--text-muted);cursor:pointer;padding:var(--space-0-5);border-radius:var(--radius-full);background:0 0;border:none;align-items:center;display:flex}.marker-chip-remove:active{background:var(--bg-tertiary)}.marker-dot{border-radius:var(--radius-full);background:var(--marker);width:5px;height:5px}.recording-path{padding:0 var(--space-4) var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.recording-mic-btn{border-radius:var(--radius-full);background:var(--danger);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;width:80px;height:80px;transition:transform .15s;display:flex}.recording-mic-btn:active{transform:scale(.95)}.recording-stop-btn{border-radius:var(--radius-full);background:var(--danger);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.recording-indicator{align-items:center;gap:var(--space-3);display:flex}.recording-pulse{border-radius:var(--radius-full);background:var(--danger);width:12px;height:12px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.recording-time{font-size:var(--text-3xl);font-variant-numeric:tabular-nums;font-weight:600}.recording-hint{font-size:var(--text-caption);color:var(--text-muted)}.recording-preview-info{font-size:var(--text-md);font-weight:500}.recording-actions{gap:var(--space-1-5);display:flex}.recording-action-btn{justify-content:center;align-items:center;gap:var(--space-1);min-width:0;font-size:var(--text-caption);padding:var(--space-2) var(--space-1);flex:1 1 0;min-height:44px;display:inline-flex}.recording-success{border-radius:var(--radius-full);background:var(--success);color:#fff;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.recording-error{text-align:center;color:var(--danger);font-size:var(--text-body-sm);flex-direction:column;align-items:center;display:flex}.recording-section{width:100%;min-width:0}.recording-section-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2);font-weight:600}.section-chips{gap:var(--space-1-5);-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1);display:flex;overflow-x:auto}.section-chip-group{align-items:center;gap:0;display:inline-flex}.section-chip-group .filter-chip{border-radius:16px 4px 4px 16px}.section-chip-group .filter-chip:only-child{border-radius:var(--radius-2xl)}.section-chip-group:not(:has(.section-number-select)) .filter-chip{border-radius:var(--radius-2xl)}.section-number-select{appearance:none;padding:5px var(--space-2);border:1.5px solid var(--accent);color:var(--accent);font-size:var(--text-sm);cursor:pointer;text-align:center;background:#818cf826;border-left:none;border-radius:0 16px 16px 0;min-height:30px;font-family:inherit;font-weight:600}.recording-filename-preview{width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);word-break:break-all;text-align:center;font-family:monospace}.floating-recorder{top:var(--space-2);left:var(--space-3);right:var(--space-3);z-index:60;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:var(--space-2) var(--space-3);gap:var(--space-2);flex-direction:column;max-width:420px;margin:0 auto;display:flex;position:fixed}.floating-recorder__header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.floating-recorder__name{font-size:var(--text-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.floating-recorder__close{color:var(--text-muted);padding:var(--space-1);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.floating-recorder__close:active{background:var(--bg-tertiary)}.floating-recorder__row{align-items:center;gap:var(--space-3);display:flex}.floating-recorder__row--success{color:var(--success);justify-content:center;gap:var(--space-2);font-weight:600}.floating-recorder__mic{align-items:center;gap:var(--space-2);color:var(--danger);font-size:var(--text-sm);padding:var(--space-1) 0;cursor:pointer;background:0 0;border:none;font-weight:600;display:flex}.floating-recorder__mic:active{opacity:.7}.floating-recorder__time{font-size:var(--text-base);font-variant-numeric:tabular-nums;color:var(--text-primary);font-weight:600}.floating-recorder__stop{background:var(--danger);color:#fff;border-radius:var(--radius-full);cursor:pointer;border:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.floating-recorder__stop:active{opacity:.8}.floating-recorder__actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.floating-recorder__btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-full);justify-content:center;align-items:center;gap:var(--space-1);cursor:pointer;width:36px;height:36px;display:flex}.floating-recorder__btn:active{opacity:.7}.floating-recorder__btn--primary{background:var(--confirm);border-color:var(--confirm);color:#fff}.floating-recorder__spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:var(--radius-full);width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.floating-recorder__error{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--danger);display:flex}.floating-recorder__error .floating-recorder__btn{width:auto;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);flex-shrink:0}.import-file-list{gap:var(--space-1);flex-direction:column;width:100%;max-height:260px;display:flex;overflow-y:auto}.import-file-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-sm);transition:background .2s;display:flex}.import-file-item.import-file-done{background:#22c55e14}.import-file-item.import-file-error{background:#ef444414}.import-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);flex:1;overflow:hidden}.import-file-meta{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.import-file-error .import-file-meta{color:var(--danger)}.import-icon-pending{color:var(--text-muted);flex-shrink:0}.import-icon-uploading{color:var(--accent);flex-shrink:0;animation:1s linear infinite spin}.import-icon-done{color:var(--success);flex-shrink:0}.import-icon-error{color:var(--danger);flex-shrink:0}.spinning,.spin{animation:1s linear infinite spin}.import-progress-text{font-size:var(--text-body-sm);color:var(--text-muted);text-align:center}.import-hint-box{width:100%;padding:var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);align-items:flex-start;gap:var(--space-2);background:#818cf81a;display:flex}.batch-grid{padding:var(--space-3);gap:var(--space-0-5);flex-direction:column;display:flex}.grid-header{grid-template-columns:72px repeat(var(--cols), 1fr);gap:var(--space-0-5);margin-bottom:var(--space-0-5);display:grid}.grid-header-corner{padding:var(--space-1-5) var(--space-1)}.grid-header-cell{padding:var(--space-1-5) var(--space-1);font-size:var(--text-xs);text-align:center;color:#fff;border-radius:6px 6px 0 0;font-weight:700}.grid-header-cell.col-s{background:var(--sopran)}.grid-header-cell.col-a{background:var(--alt)}.grid-header-cell.col-t{background:var(--tenor)}.grid-header-cell.col-b{background:var(--bass)}.grid-header-cell.col-satb{background:var(--satb)}.grid-header-cell.col-piano{background:var(--piano)}.grid-row{grid-template-columns:72px repeat(var(--cols), 1fr);gap:var(--space-0-5);display:grid}.grid-section-label{padding:var(--space-2-5) var(--space-1-5);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-secondary);border-radius:6px 0 0 6px;align-items:center;font-weight:600;line-height:1.2;display:flex}.grid-cell{padding:var(--space-2) var(--space-1);border-radius:var(--radius-xs);text-align:center;cursor:pointer;justify-content:center;align-items:center;min-height:44px;transition:all .15s;display:flex}.grid-cell:active{transform:scale(.95)}.grid-cell.has-file .cell-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:28px;height:28px;display:flex}.grid-cell.voice-s{background:#ec489914}.grid-cell.voice-s .cell-icon{color:var(--sopran);background:#ec489933}.grid-cell.voice-a{background:#f9731614}.grid-cell.voice-a .cell-icon{color:var(--alt);background:#f9731633}.grid-cell.voice-t{background:#3b82f614}.grid-cell.voice-t .cell-icon{color:var(--tenor);background:#3b82f633}.grid-cell.voice-b{background:#22c55e14}.grid-cell.voice-b .cell-icon{color:var(--bass);background:#22c55e33}.grid-cell.voice-satb{background:#8b5cf614}.grid-cell.voice-satb .cell-icon{color:var(--satb);background:#8b5cf633}.grid-cell.voice-piano{background:#a78bfa14}.grid-cell.voice-piano .cell-icon{color:var(--piano);background:#a78bfa33}.grid-cell.empty{background:var(--bg-secondary);opacity:.3;cursor:default}.grid-cell.empty:active{transform:none}.grid-cell.playing .cell-icon{animation:1.5s ease-in-out infinite pulse-play}@keyframes pulse-play{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.playing-bars--sm{height:12px}.playing-bars--sm span{width:2px}.batch-section-divider{padding:var(--space-2-5) var(--space-4) var(--space-1-5);font-size:var(--text-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--border);margin-top:var(--space-2);font-weight:600}.batch-extra-files{padding:0 var(--space-3) var(--space-3)}.batch-extra-file{align-items:center;gap:var(--space-2-5);padding:var(--space-2-5) var(--space-3);border-radius:var(--radius-md);background:var(--bg-secondary);margin-bottom:var(--space-1);cursor:pointer;transition:background .1s;display:flex}.batch-extra-file:active{background:var(--bg-tertiary)}.batch-extra-file--active{background:#818cf814}.batch-extra-name{font-size:var(--text-caption);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.player-lyrics-divider{background:var(--border);height:1px;margin:20px -20px 16px}.player-content-area{padding-top:var(--space-4);padding-bottom:var(--space-6)}.player-panel{margin-bottom:var(--space-5)}.player-panel-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2-5);display:flex}.player-panel-icon{color:var(--success);align-items:center;display:flex}.player-panel-icon--lyrics{color:#06b6d4}.player-panel-title{font-size:var(--text-body-sm);color:var(--text-primary);font-weight:600}.player-panel-badge{font-size:var(--text-2xs);color:var(--text-muted);align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.player-notes-display{padding:var(--space-3);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border);font-size:var(--text-body-sm);color:var(--text-secondary);white-space:pre-wrap;line-height:1.6}.player-section-card{border-radius:var(--radius-xl);padding:var(--space-4);background:#06b6d41a;border:1px solid #06b6d440;transition:opacity .3s}.player-section-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.player-section-name{font-size:var(--text-caption);color:#06b6d4;font-weight:600}.player-section-time{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.player-section-lyrics{font-size:var(--text-lg);color:var(--text-primary);white-space:pre-wrap;line-height:2}.player-section-note{margin-top:var(--space-3);padding:var(--space-2) var(--space-2-5);border-radius:var(--radius-sm);border-left:3px solid var(--success);font-size:var(--text-sm);color:var(--text-secondary);background:#22c55e1a;line-height:1.5}.player-next-section{border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border);padding:var(--space-3) var(--space-3-5);opacity:.5;margin-top:var(--space-3)}.player-next-label{font-size:var(--text-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1-5);font-weight:600}.player-next-lyrics{font-size:var(--text-caption);color:var(--text-muted);white-space:pre-wrap;line-height:1.7}.player-empty-hint{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px dashed var(--border);color:var(--text-muted);font-size:var(--text-caption);cursor:pointer;display:flex}.player-empty-hint:active{background:var(--bg-tertiary)}.player-edit-area{width:100%;min-height:80px;padding:var(--space-3);border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);font-size:var(--text-body-sm);resize:vertical;font-family:inherit;line-height:1.6}.player-edit-area:focus{border-color:var(--success);outline:none}.player-edit-area--lyrics:focus{border-color:#06b6d4}.player-section-edit{border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border);padding:var(--space-3-5);margin-bottom:var(--space-3)}.player-section-edit-header{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2);align-items:center;gap:var(--space-1-5);font-weight:600;display:flex}.player-section-edit-time{font-size:var(--text-2xs);color:var(--text-muted);font-weight:400}.player-edit-toolbar{gap:var(--space-2);margin-top:var(--space-2-5);justify-content:flex-end;display:flex}.player-edit-toolbar button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-caption);cursor:pointer;min-height:36px;font-family:inherit;font-weight:500}.player-btn-cancel{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.player-btn-save{background:var(--accent);color:#fff;border:none}.player-eq-bars{align-items:flex-end;gap:var(--space-0-5);height:12px;display:inline-flex}.player-eq-bar{background:#06b6d4;border-radius:1px;width:3px}.player-eq-bar:first-child{height:40%;animation:.8s ease-in-out infinite playerEq}.player-eq-bar:nth-child(2){height:80%;animation:.8s ease-in-out .2s infinite playerEq}.player-eq-bar:nth-child(3){height:55%;animation:.8s ease-in-out .4s infinite playerEq}@keyframes playerEq{0%,to{height:40%}50%{height:100%}}.kebab-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2-5) var(--space-4);color:var(--text-primary);font-size:var(--text-body-sm);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.kebab-item:active{background:var(--bg-tertiary)}.edge-bug-tab{width:28px;padding:var(--space-3) var(--space-1);border-radius:var(--radius-md) 0 0 var(--radius-md);align-items:center;gap:var(--space-1-5);z-index:25;color:#0f172a;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#f59e0b;border:none;flex-direction:column;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%);box-shadow:-2px 0 8px #0000004d}.edge-bug-tab:active{background:#d97706}.edge-bug-count{font-size:var(--text-2xs);font-weight:700;line-height:1}.issue-drawer-overlay{z-index:200;background:#0006;display:flex;position:fixed;inset:0}.issue-drawer{background:var(--bg-primary);border-left:1px solid var(--border);flex-direction:column;width:100%;height:100%;display:flex;box-shadow:-4px 0 24px #0006}.issue-drawer-header{padding:var(--space-3) var(--space-3-5);align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);background:var(--bg-secondary);display:flex}.issue-drawer-title{font-size:var(--text-md);flex:1;font-weight:600}.issue-drawer-close{border-radius:var(--radius-md);background:var(--bg-tertiary);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex}.issue-drawer-stats{gap:var(--space-3);padding:var(--space-2) var(--space-3-5);font-size:var(--text-2xs);color:var(--text-muted);border-bottom:1px solid var(--border);display:flex}.issue-drawer-message{padding:var(--space-2) var(--space-3-5);font-size:var(--text-xs);color:var(--accent);background:var(--bg-secondary);cursor:pointer}.issue-drawer-list{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.issue-drawer-empty{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-sm)}.issue-drawer-item{align-items:flex-start;gap:var(--space-2);padding:var(--space-2-5) var(--space-3-5);border-bottom:1px solid #ffffff0a;display:flex}.issue-drawer-dot{border-radius:var(--radius-full);flex-shrink:0;width:7px;height:7px;margin-top:5px}.issue-drawer-body{flex:1;min-width:0}.issue-drawer-item-title{font-size:var(--text-sm);font-weight:500;line-height:1.3}.issue-drawer-labels{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.issue-drawer-label{padding:1px var(--space-1-5);border-radius:3px;font-size:9px;font-weight:500}.issue-drawer-link{color:var(--text-muted);padding:var(--space-1);flex-shrink:0;display:flex}.issue-drawer-link:active{color:var(--accent)}.issue-drawer-num{font-size:var(--text-2xs);color:var(--text-muted);flex-shrink:0;margin-top:2px}.issue-drawer-quickadd{border-top:1px solid var(--border);background:var(--bg-secondary);padding:var(--space-2) var(--space-3-5) var(--space-3)}.issue-drawer-quickadd-type{gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.issue-drawer-type-btn{font-size:var(--text-2xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-muted);cursor:pointer;font-weight:600}.issue-drawer-type-btn.active{background:#ffffff0d;border-color:currentColor}.issue-drawer-quickadd-row{gap:var(--space-2);display:flex}.issue-drawer-quickadd-input{padding:var(--space-2) var(--space-2-5);border-radius:var(--radius-md);background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);font-size:var(--text-sm);flex:1;font-family:inherit}.issue-drawer-quickadd-input::placeholder{color:var(--text-muted)}.issue-drawer-quickadd-send{border-radius:var(--radius-md);background:var(--accent);color:#fff;cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.issue-drawer-quickadd-send:disabled{opacity:.4;cursor:default}.pw-meter{gap:var(--space-1-5);margin-top:var(--space-1-5);flex-direction:column;display:flex}.pw-meter-bar{gap:var(--space-1);height:6px;display:flex}.pw-meter-seg{border-radius:var(--radius-xs);flex:1;transition:background .12s}.pw-meter-label{font-size:var(--text-xs);font-weight:600}.pw-meter-hints{padding-left:var(--space-4);font-size:var(--text-xs);color:var(--text-muted);gap:var(--space-0-5);flex-direction:column;margin:0;list-style:outside;display:flex}.doc-unavailable{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-muted);text-align:center;flex-direction:column;flex:1;display:flex}.doc-unavailable-title{font-size:var(--text-body);color:var(--text-secondary);font-weight:600}.doc-unavailable-hint{font-size:var(--text-caption);max-width:320px;line-height:1.5}.offline-banner{z-index:2000;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);padding-top:calc(var(--space-2) + env(safe-area-inset-top,0px));background:var(--danger);color:#fff;font-size:var(--text-body-sm);text-align:center;box-shadow:var(--shadow-md);font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}.rtf-viewer-page-break,.rtf-editor-page-break{margin:var(--space-4) 0;text-align:center;border:0;border-top:1px dashed #7882a099;height:0;position:relative;overflow:visible}.rtf-viewer-page-break:before,.rtf-editor-page-break:before{content:"Seitenumbruch";background:var(--bg-primary,#fff);padding:0 var(--space-2);font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;color:#7882a0d9;font-weight:500;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rtf-viewer-content .rtf-viewer-page-break:before{background:#fff}.rtf-companion-stale-pill{align-items:center;gap:var(--space-2);margin:var(--space-2) auto;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);color:#92400e;font-size:var(--text-xs);background:#f59e0b26;border:1px solid #f59e0b80;width:fit-content;max-width:90%;display:flex}.rtf-companion-stale-btn{color:inherit;cursor:pointer;padding:var(--space-0-5);border-radius:var(--radius-xs);background:0 0;border:0;align-items:center;display:inline-flex}.rtf-companion-stale-btn:hover{background:#92400e1f}.rtf-paged-container{min-height:0;padding:var(--space-3);background:var(--bg-primary);align-items:center;gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow:auto}.rtf-paged-measure{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55;visibility:hidden!important;pointer-events:none!important;background:0 0!important;margin:0!important;padding:0!important;position:absolute!important;top:-99999px!important;left:-99999px!important}.rtf-paged-wrapper{flex-shrink:0;position:relative}.rtf-page{box-sizing:border-box;color:#1a1f2e;word-break:break-word;background:#fff;flex-direction:column;padding:10mm 18mm 18mm;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.55;display:flex;position:absolute;top:0;left:0;box-shadow:0 4px 16px #0000002e}.rtf-page-content{flex:1;min-height:0;position:relative;overflow:hidden}.rtf-page-annotations{pointer-events:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;width:100%;height:100%;position:absolute;inset:0}.rtf-print-host{background:#fff;width:100vw;min-height:100vh;margin:0;padding:0}.rtf-print-host .rtf-paged-container{background:#fff;align-items:flex-start;gap:0;padding:0}.rtf-print-host .rtf-paged-wrapper{margin:0}.rtf-print-host .rtf-page{box-shadow:none!important}.rtf-page-footer{color:#6b7280;border-top:1px solid #0000001f;flex-direction:column;gap:2mm;margin-top:4mm;padding-top:3mm;font-size:9pt;display:flex}.rtf-page-footer-text :is(p,h6){margin:0}.rtf-page-number{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.02em}.rtf-page-footer-meta{justify-content:space-between;align-items:baseline;gap:4mm;display:flex}.rtf-page-footer-meta .rtf-page-number{text-align:right;flex-shrink:0}.rtf-page-footer-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media print{.topbar,.bottom-nav,.mini-player,.global-player,.global-player-markers,.pdf-toolbar,.pdf-fab,.chord-toolbar,.auto-scroll-stepper,.swipe-hint,.annotation-toolbar,.floating-recorder,.edge-bug-tab,.welcome-modal,.footer-slot{display:none!important}.annotation-svg{pointer-events:none!important}.annotation-print-slice{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;break-inside:auto!important;page-break-inside:auto!important;display:block!important}html,body{background:#fff!important;height:auto!important;overflow:visible!important}#root,.app-shell,.main-content,.player-page,.player-scroll-content,.pdf-panel,.rtf-viewer-content,.rtf-viewer-inner,.rtf-paged-container{background:#fff!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}.rtf-viewer-content{color:#000!important;font-size:11pt!important}.rtf-viewer-heading{page-break-after:avoid;break-after:avoid;color:#000!important}.rtf-viewer-para{page-break-inside:avoid;break-inside:avoid}.rtf-paged-measure{display:none!important}.rtf-paged-container{gap:0!important;padding:0!important}.rtf-paged-wrapper{page-break-after:always;break-after:page;width:210mm!important;height:297mm!important;margin:0!important}.rtf-paged-wrapper:last-child{page-break-after:auto;break-after:auto}.rtf-page{width:210mm!important;height:297mm!important;box-shadow:none!important;background:#fff!important;transform:none!important}.rtf-page-footer{color:#000!important;border-top:1px solid #00000026!important}@page{margin:0;size:A4}}.upload-choice-list{gap:var(--space-2);flex-direction:column;display:flex}.upload-choice{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-xl);background:var(--bg-elevated);border:1.5px solid var(--border);color:var(--text-primary);cursor:pointer;text-align:left;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.upload-choice:active{border-color:var(--accent);background:#ffffff0a}.upload-choice-icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.upload-choice-icon--text{color:var(--confirm);background:#3b82f626}.upload-choice-icon--chord{color:#a855f7;background:#a855f726}.upload-choice-icon--file{color:var(--accent);background:#818cf826}.upload-choice-info{flex:1;min-width:0}.upload-choice-label{font-size:var(--text-body-sm);color:var(--text-primary);font-weight:500}.upload-choice-desc{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.upload-choice-arrow{color:var(--text-muted);flex-shrink:0}.upload-choice-divider{background:var(--border);height:1px;margin:var(--space-1) var(--space-1)}.set-toolbar{background:var(--bg-elevated,var(--bg-secondary));border-bottom:1px solid var(--border);flex-direction:column;display:flex}.set-main-row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);scrollbar-width:none;display:flex;overflow-x:auto}.set-main-row::-webkit-scrollbar{display:none}.set-tool{height:38px;padding:0 var(--space-3);border-radius:var(--radius-sm);border:1.5px solid var(--border);cursor:pointer;align-items:center;gap:var(--space-1);color:var(--text-secondary);background:0 0;flex-shrink:0;font-weight:700;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.set-tool:hover{color:var(--text-primary);background:#ffffff0a}.set-tool.set-tool--active{border-color:var(--confirm,#3b82f6);color:var(--confirm,#3b82f6);background:#3b82f62e;box-shadow:0 0 0 3px #3b82f629}.set-tool--convert{margin-left:var(--space-2);color:#22c55e;background:#22c55e14;border-color:#22c55e59}.set-tool--convert:hover:not(:disabled){background:#22c55e2e;border-color:#22c55e}.set-tool--convert:disabled{opacity:.4;cursor:not-allowed}.set-tool--chord{color:var(--chord,#fbbf24);background:#fbbf240f;border-color:#fbbf2459}.set-tool--chord:hover{border-color:var(--chord,#fbbf24);background:#fbbf2424}.set-tool--chord.set-tool--active{border-color:var(--chord,#fbbf24);color:var(--chord,#fbbf24);background:#fbbf2438;box-shadow:0 0 0 3px #fbbf242e}.set-tool--beat{color:var(--v-beat,#a3e635);background:#a3e6350f;border-color:#a3e63559}.set-tool--beat:hover{border-color:var(--v-beat,#a3e635);background:#a3e63524}.set-tool--beat.set-tool--active{border-color:var(--v-beat,#a3e635);color:var(--v-beat,#a3e635);background:#a3e63538;box-shadow:0 0 0 3px #a3e6352e}.set-tool--source{color:#a78bfa;background:#a78bfa14;border-color:#a78bfa59}.set-tool--source:hover{background:#a78bfa29;border-color:#a78bfa}.set-tool--source.set-tool--active{color:#a78bfa;background:#a78bfa38;border-color:#a78bfa;box-shadow:0 0 0 3px #a78bfa2e}.set-tool--note{color:var(--v-note-bg,#fcd34d);background:#fcd34d14;border-color:#fcd34d59}.set-tool--note:hover{border-color:var(--v-note-bg,#fcd34d);background:#fcd34d29}.set-tool--note.set-tool--active{border-color:var(--v-note-bg,#fcd34d);color:var(--v-note-bg,#fcd34d);background:#fcd34d38;box-shadow:0 0 0 3px #fcd34d2e}.set-note-input{min-width:0;height:32px;padding:0 var(--space-2);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);flex:1;font-family:inherit}.set-note-input:focus{border-color:var(--v-note-bg,#fcd34d);outline:none;box-shadow:0 0 0 2px #fcd34d2e}.set-note-input::placeholder{color:var(--text-muted,var(--text-secondary));font-style:italic}.set-note-pos{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;padding:2px;display:inline-flex}.set-note-pos-btn{width:28px;height:28px;color:var(--text-secondary);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;gap:0;display:flex}.set-note-pos-char{font-size:var(--text-xs);margin-right:-1px;font-weight:600;line-height:1}.set-note-pos-btn--t.set-note-pos-btn--active{background:var(--v-note-bg,#fcd34d);color:var(--v-note-text,#1f2937)}.set-note-pos-btn--i.set-note-pos-btn--active{background:var(--v-note-inline-bg,#5eead4);color:var(--v-note-inline-text,#134e4a)}.set-note-pos-btn--b.set-note-pos-btn--active{background:var(--v-note-bottom-bg,#fda4af);color:var(--v-note-bottom-text,#881337)}.set-note-input--t:focus{border-color:var(--v-note-bg,#fcd34d);box-shadow:0 0 0 2px #fcd34d2e}.set-note-input--i:focus{border-color:var(--v-note-inline-bg,#5eead4);box-shadow:0 0 0 2px #5eead42e}.set-note-input--b:focus{border-color:var(--v-note-bottom-bg,#fda4af);box-shadow:0 0 0 2px #fda4af2e}.set-note-clear{border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.set-note-clear:hover:not(:disabled){color:var(--text-primary);background:#ffffff0d}.set-note-clear:disabled{opacity:.35;cursor:not-allowed}.set-tool-label{font-size:var(--text-sm)}.set-spacer{min-width:var(--space-2);flex:1}.set-util{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.set-util:hover:not(:disabled){color:var(--text-primary);background:#ffffff0a}.set-util:disabled{opacity:.35;cursor:not-allowed}.set-util--danger:hover:not(:disabled){color:var(--danger,#ef4444);background:#ef444414}.set-sub-row{gap:var(--space-1-5,var(--space-2));padding:var(--space-1-5,var(--space-2)) var(--space-3);border-top:1px solid var(--border);background:var(--bg-primary);flex-direction:column;display:flex}.set-sub-row-line{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.set-sub-row-line:first-child .set-preview{margin-left:auto}.set-preview{align-items:center;gap:var(--space-1);padding:4px var(--space-2);background:var(--bg-secondary);border:1px dashed var(--border);border-radius:var(--radius-sm);flex-shrink:0;min-width:48px;min-height:32px;transition:border-color .12s;display:inline-flex}.set-preview--error{border-color:var(--danger,#ef4444);border-style:solid}.set-preview-token{color:var(--chord,#fbbf24);font-family:Menlo,Courier New,monospace;font-size:16px;font-weight:700}.set-beat-demo{color:var(--text-secondary);letter-spacing:1px;font-family:Menlo,Courier New,monospace;font-size:16px;font-weight:600}.set-beat-demo-char{color:var(--v-beat,#a3e635);text-decoration:underline;-webkit-text-decoration-color:var(--v-beat,#a3e635);text-decoration-color:var(--v-beat,#a3e635);text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:3px}.set-preview--error .set-preview-token{color:var(--danger,#ef4444)}.set-preview-hint{font-size:var(--text-2xs);color:var(--text-muted,var(--text-secondary));text-transform:uppercase;letter-spacing:.5px}.set-preview-hint--empty{font-style:italic}.set-keypad-group{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.set-keypad-group--actions{margin-left:auto}.set-key{min-width:30px;height:30px;color:var(--text-primary);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-family:Menlo,Courier New,monospace;font-size:14px;font-weight:700;transition:background .12s;display:inline-flex}.set-key:hover:not(:disabled){background:#ffffff0f}.set-key:active:not(:disabled){background:#fbbf242e}.set-key:disabled{opacity:.35;cursor:not-allowed}.set-key--note{color:var(--chord,#fbbf24);background:#fbbf2414}.set-key--note:hover:not(:disabled){background:#fbbf242e}.set-key--num,.set-key--util{color:var(--text-secondary)}.set-format-toggle{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);width:36px;height:34px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.set-format-toggle:hover{color:#22d3ee;background:#22d3ee1a;border-color:#22d3ee80}.set-format-toggle--active{color:#22d3ee;background:#22d3ee38;border-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee2e}.set-format-group{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;gap:2px;padding:2px;display:inline-flex}.set-format-btn{width:30px;height:30px;color:var(--text-secondary);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.set-format-btn:hover:not(:disabled){color:#22d3ee;background:#22d3ee1f}.set-format-btn:not(:disabled)[aria-pressed=true]{color:#22d3ee;background:#22d3ee38}.set-format-btn:disabled{opacity:.4;cursor:not-allowed;color:var(--text-muted,var(--text-secondary))}.set-format-colors{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;gap:2px;padding:2px;display:inline-flex}.set-format-swatch{border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:1.5px solid #0000;justify-content:center;align-items:center;width:26px;height:26px;padding:3px;transition:border-color .12s,transform .12s;display:inline-flex}.set-format-swatch:after{content:"";background:var(--swatch-color,currentColor);border:1px solid #ffffff1f;border-radius:50%;width:100%;height:100%}.set-format-swatch--default:after,.set-format-swatch--bg-default:after{border:1.5px dashed var(--text-secondary);background:0 0}.set-format-swatch:hover:not(:disabled){border-color:#ffffff2e;transform:scale(1.05)}.set-format-swatch:not(:disabled)[aria-pressed=true]{border-color:var(--text-primary)}.set-format-swatch:disabled{opacity:.4;cursor:not-allowed}.set-format-hint-row{justify-content:flex-start}.set-format-hint{font-size:var(--text-xs);color:var(--text-muted,var(--text-secondary));font-style:italic}.set-key--apply{background:var(--confirm,#3b82f6);color:#fff}.set-key--apply:hover:not(:disabled){filter:brightness(1.08)}.set-key--apply:disabled{opacity:.45;cursor:not-allowed}.set-tool-apply-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--confirm,#3b82f6);background:var(--confirm,#3b82f6);color:#fff;font-size:var(--text-sm);cursor:pointer;display:inline-flex}.set-tool-apply-btn:hover:not(:disabled){filter:brightness(1.08)}.set-tool-apply-btn:disabled{opacity:.45;cursor:not-allowed}.set-chord-history-row{gap:var(--space-1);scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:2px;overflow:auto hidden}.set-chord-chip{min-height:28px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--chord,#fbbf24);font-weight:600;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;background:#fbbf2414;border:1px solid #fbbf2459;flex-shrink:0}.set-chord-chip:hover{border-color:var(--chord,#fbbf24);background:#fbbf2433}.set-chord-chip:active{transform:scale(.97)}.set-chord-chip--active{color:#22c55e;background:#22c55e38;border-color:#22c55e;box-shadow:0 0 0 2px #22c55e40}.set-chord-chip--active:hover{background:#22c55e4d;border-color:#22c55e}.syntax-textarea-wrap{flex:1;min-height:0;position:relative;overflow:hidden}.syntax-textarea-backdrop,.syntax-textarea{padding:var(--space-3);white-space:pre-wrap;word-wrap:break-word;box-sizing:border-box;border:none;width:100%;height:100%;margin:0;font-family:Menlo,Courier New,monospace;font-size:15px;line-height:1.7;position:absolute;inset:0;overflow:auto}.syntax-textarea-backdrop{color:var(--text-primary);pointer-events:none;z-index:1;background:var(--bg-primary)}.syntax-textarea{color:#0000;caret-color:var(--text-primary);z-index:2;resize:none;-webkit-text-fill-color:transparent;background:0 0;outline:none}.syn-chord,.syn-vocal,.syn-directive{color:var(--text-primary);opacity:.3;font-style:italic}.chord-sheet-viewer{padding:var(--space-3);-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-family:Courier New,Courier,monospace;line-height:1.4;overflow-x:auto}.chord-section{margin-bottom:var(--space-5)}.chord-section-label{color:var(--text-secondary);margin-bottom:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--bg-tertiary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.85em;font-weight:600;display:inline-block}.chord-section-chorus .chord-section-label,.chord-section-label.chord-section-chorus,.chord-section-label-chorus{color:var(--accent);background:#6366f11a}.chord-section-chorus-ref .chord-section-label,.chord-section-label-chorus-ref{color:var(--accent);background:#6366f10d;font-style:italic}.chord-line{margin-bottom:var(--space-0-5);white-space:pre;min-height:1.4em;position:relative}.chord-line--flow{white-space:normal}.chord-flow{line-height:1.2}.chord-flow-word{vertical-align:baseline;white-space:nowrap;padding-top:1.1em;display:inline-block}.chord-flow-cell{position:relative}.chord-flow-chord{white-space:nowrap;color:var(--accent);padding-bottom:.1em;font-weight:700;line-height:1;position:absolute;bottom:100%;left:0}.chord-flow-cell--anchor{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:2px}.vocal-row{white-space:pre;height:14px;position:relative}.vocal-row-mark{white-space:nowrap;font-size:.85em;font-weight:700;line-height:1;position:absolute}.vocal-note-label{white-space:nowrap;font-family:inherit;line-height:1;position:absolute}.vocal-note-label-text{font-family:Inter,sans-serif;font-size:.7em;font-weight:600;line-height:1;display:inline-block}.vocal-note-label--top{color:#b45309;bottom:0}.vocal-note-label--bottom{color:var(--v-note-bottom-bg,#fda4af);top:0}.vocal-note-label--bottom .vocal-note-label-text{border-radius:var(--radius-xs,4px);border:1px solid;padding:0 4px}.vocal-row--top{margin-bottom:-4px}.vocal-row--bottom{margin-top:-5px}.vocal-mark--beat{color:var(--v-beat,#a3e635)}.vocal-mark--note-top{color:var(--v-note-bg,#fcd34d)}.vocal-mark--note-bottom{color:var(--v-note-bottom-bg,#fda4af)}.vocal-note-inline{background:var(--v-note-inline-bg,#5eead4);color:var(--v-note-inline-text,#134e4a);border-radius:var(--radius-xs,4px);vertical-align:baseline;padding:0 4px;font-family:Inter,sans-serif;font-size:.8em;font-weight:600;display:inline-block}.chord-anchor{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:2px}.vocal-beat-anchor{text-decoration:underline;-webkit-text-decoration-color:var(--v-beat,#a3e635);text-decoration-color:var(--v-beat,#a3e635);text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:3px}.chord-anchor.vocal-beat-anchor{-webkit-text-decoration-color:var(--v-beat,#a3e635);text-decoration-color:var(--v-beat,#a3e635);box-shadow:0 4px 0 0 var(--accent)}.chord-text{color:var(--text-primary);white-space:pre;min-height:1em}.chord-text--wrap{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.chord-line--bar-lead .chord-text:first-letter{text-underline-offset:3px;-webkit-text-decoration:underline #c55a11;text-decoration:underline #c55a11;text-decoration-thickness:2px}.chord-line-comment .chord-text,.chord-line-comment-plain .chord-text{color:#1f2937;padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm);background:#fef08a;font-style:italic;display:inline-block}.chord-line-comment-italic .chord-text{color:var(--text-secondary);padding:var(--space-0-5) 0;background:0 0;font-style:italic;display:inline-block}.chord-line-comment-box .chord-text{color:var(--text-primary);border:1px solid var(--border-primary);padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm);background:0 0;font-style:italic;display:inline-block}.chord-annotation{margin-left:var(--space-2);color:#1f2937;padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm);background:#fef08a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-style:italic;display:inline-block}.chord-section-tab .chord-text,.chord-section-grid .chord-text{white-space:pre;font-family:Courier New,Courier,monospace}.chord-section-grid .chord-text{background:var(--bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs)}.chord-text-fmt-b{font-weight:700}.chord-text-fmt-i{font-style:italic}.chord-text-fmt-u{text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration:underline}.chord-text-fmt-s{text-decoration:line-through}.chord-text-fmt-u.chord-text-fmt-s{text-decoration:underline line-through}.chord-text-clr-red{color:#dc2626}.chord-text-clr-green{color:#16a34a}.chord-text-clr-blue{color:#2563eb}.chord-text-clr-orange{color:#ea580c}.chord-text-bg-yellow{background:#facc158c;border-radius:2px;padding:0 2px}.chord-text-bg-red{background:#f8717173;border-radius:2px;padding:0 2px}.chord-sheet-meta{margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.chord-sheet-meta-title{color:var(--text-primary);margin:0 0 var(--space-1) 0;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;font-size:1.6em;font-weight:700;line-height:1.2;display:flex}.chord-sheet-meta-title-note{color:#1f2937;padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm);background:#fef08a;font-size:.5em;font-style:italic;font-weight:500;line-height:1.4}.chord-sheet-meta-subtitle{color:var(--text-secondary);margin-bottom:var(--space-2);font-size:1em;font-weight:500;line-height:1.3}.chord-sheet-meta-credits{color:var(--text-secondary);margin-bottom:var(--space-1);font-size:.85em;line-height:1.4}.chord-sheet-meta-album{color:var(--text-tertiary);margin-bottom:var(--space-2);font-size:.8em}.chord-sheet-meta-badges{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.chord-sheet-meta-badge{align-items:baseline;gap:var(--space-1-5);padding:var(--space-1) var(--space-2-5);border-radius:var(--radius-sm);background:#6366f11f;border:1px solid #6366f140;font-size:.8em;line-height:1.2;display:inline-flex}.chord-sheet-meta-badge-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.85em;font-weight:600}.chord-sheet-meta-badge-value{color:var(--accent);font-weight:700}.chord-sheet-meta-extra{margin:var(--space-2) 0 0 0;color:var(--text-tertiary);font-size:.75em}.chord-sheet-meta-extra-row{gap:var(--space-2);display:flex}.chord-sheet-meta-extra-row dt{text-transform:capitalize;font-weight:600}.chord-sheet-meta-extra-row dd{margin:0}.chord-sheet-meta-copyright{margin-top:var(--space-3);color:var(--text-tertiary);font-size:.7em;font-style:italic}.transpose-controls{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);z-index:10;display:flex;position:sticky;top:0}.transpose-btn{border-radius:var(--radius-full);border:1.5px solid var(--border-primary);background:var(--bg-primary);width:44px;height:44px;color:var(--text-primary);font-size:var(--text-xl);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;transition:background .15s,border-color .15s;display:flex}.transpose-btn:active{background:var(--bg-tertiary);border-color:var(--accent)}.transpose-info{text-align:center;font-size:var(--text-caption);color:var(--text-secondary);flex:1}.transpose-key{font-weight:700;font-size:var(--text-md);color:var(--text-primary);display:block}.transpose-saved{font-size:var(--text-2xs);color:var(--success)}.chord-sheet-header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);display:flex}.chord-sheet-header .back-btn{flex-shrink:0}.chord-sheet-title{font-size:var(--text-lg);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.chord-sheet-list{padding:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.chord-sheet-list-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:background .15s;display:flex}.chord-sheet-list-item:active{background:var(--bg-tertiary)}.chord-sheet-list-item-icon{color:#a78bfa;flex-shrink:0}.chord-sheet-list-item-info{flex:1;overflow:hidden}.chord-sheet-list-item-title{font-weight:600;font-size:var(--text-body);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chord-sheet-list-item-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.chord-sheet-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--text-tertiary)}.chord-sheet-empty p{margin-bottom:var(--space-3)}.chord-sheet-import-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:#a78bfa;font-size:var(--text-body-sm);cursor:pointer;background:#a855f714;border:1.5px dashed #a855f766;justify-content:center;width:100%;font-weight:500;transition:background .15s;display:flex}.chord-sheet-import-btn:active{background:#a855f726}.tag-toolbar{align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:20;white-space:nowrap;-webkit-backdrop-filter:saturate(1.2);backdrop-filter:saturate(1.2);display:inline-flex;position:absolute;transform:translate(-50%)}.tag-toolbar:after{content:"";background:var(--bg-secondary);border-right:1px solid var(--border);border-bottom:1px solid var(--border);width:10px;height:10px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.tag-toolbar--below:after{border-bottom:none;border-right:none;border-left:1px solid var(--border);border-top:1px solid var(--border);top:-6px;bottom:auto}.tag-toolbar-btn{width:44px;height:44px;color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s;display:inline-flex}.tag-toolbar-btn:hover:not(:disabled){background:#ffffff14}.tag-toolbar-btn:active:not(:disabled){background:#ffffff24}.tag-toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.tag-toolbar-btn--danger{color:var(--danger,#ef4444)}.tag-toolbar-btn--danger:hover:not(:disabled){background:#ef444424}.tag-toolbar-btn--danger:active:not(:disabled){background:#ef444438}.tag-toolbar-sep{background:var(--border);width:1px;height:24px;margin:0 var(--space-1)}.sheet-editor{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.sheet-editor-error{padding:var(--space-2) var(--space-3);color:var(--danger,#ef4444);font-size:var(--text-sm);background:#ef44441a}.sheet-editor-source-tools{gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-primary);flex-shrink:0;display:flex}.sheet-editor-source-tool-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;background:0 0;display:inline-flex}.sheet-editor-source-tool-btn:hover{background:#0000000a}.sheet-editor-source-tool-btn:active{background:#00000014}.sheet-editor-text{padding:var(--space-3);background:var(--bg-primary);-webkit-user-select:none;user-select:none;flex:1;font-family:Menlo,Courier New,monospace;font-size:15px;line-height:1.3;overflow:auto}.sheet-editor-line{flex-direction:column;margin-bottom:6px;display:flex}.sheet-editor-line-body{min-height:1.3em;position:relative}.sheet-editor-chord-row{pointer-events:none;z-index:1;height:1em;font-size:13px;line-height:1;position:absolute;top:-.4em;left:0}.sheet-editor-note-row,.sheet-editor-note-row--bottom{pointer-events:none;height:14px;position:relative}.sheet-editor-note-label{white-space:nowrap;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:3;position:absolute}.sheet-editor-note-label-text{font-family:Inter,sans-serif;font-size:11px;font-weight:600;line-height:1}.sheet-editor-note-label--top{color:var(--v-note-bg,#fcd34d);bottom:0}.sheet-editor-note-label--bottom{color:var(--v-note-bottom-bg,#fda4af);top:0}.sheet-editor-note-label--bottom .sheet-editor-note-label-text{border-radius:var(--radius-xs);border:1px solid;padding:0 4px}.sheet-editor-note-label:hover{opacity:.7}.sheet-editor-note-inline{background:var(--v-note-inline-bg,#5eead4);color:var(--v-note-inline-text,#134e4a);border-radius:var(--radius-xs);cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:baseline;padding:0 4px;font-family:Inter,sans-serif;font-size:12px;font-weight:600;display:inline-block}.sheet-editor-note-inline:hover{opacity:.8}.sheet-editor-chord{color:var(--chord,#fbbf24);white-space:nowrap;pointer-events:auto;cursor:pointer;border-radius:var(--radius-xs);-webkit-user-select:none;user-select:none;padding:2px 3px;font-weight:700;transition:background .12s;position:absolute}.sheet-editor-chord:hover{background:#fbbf242e}.sheet-editor-text-row{white-space:pre;z-index:2;position:relative}.sheet-editor-empty{height:1em;display:inline-block}.sheet-editor-char{border-radius:var(--radius-xs);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;padding:0;display:inline-block}.sheet-editor-char--tappable{cursor:pointer}.sheet-editor-text--mode-chord .sheet-editor-char--tappable:hover{outline:1.5px dashed var(--chord,#fbbf24);outline-offset:1px;background:#fbbf242e}.sheet-editor-text--mode-beat .sheet-editor-char--tappable:hover{outline:1.5px dashed var(--v-beat,#a3e635);outline-offset:1px;background:#a3e6352e}.sheet-editor-text--mode-note .sheet-editor-char--tappable:hover{outline:1.5px dashed var(--v-note-bg,#fcd34d);outline-offset:1px;background:#fcd34d2e}.sheet-editor-text--mode-format{cursor:text}.sheet-editor-text--mode-format .sheet-editor-char{touch-action:none}.sheet-editor-text--dragging{touch-action:none;overscroll-behavior:contain}.sheet-editor-char--selected{box-shadow:none;background:#22d3ee52;border-radius:0}.sheet-editor-char--fmt-b{font-weight:700}.sheet-editor-char--fmt-i{font-style:italic}.sheet-editor-char--fmt-u{text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration:underline}.sheet-editor-char--fmt-s{text-decoration:line-through}.sheet-editor-char--fmt-u.sheet-editor-char--fmt-s{text-underline-offset:2px;text-decoration:underline line-through}.sheet-editor-char--clr-red{color:#dc2626}.sheet-editor-char--clr-green{color:#16a34a}.sheet-editor-char--clr-blue{color:#2563eb}.sheet-editor-char--clr-orange{color:#ea580c}.sheet-editor-char--bg-yellow{background:#facc158c}.sheet-editor-char--bg-red{background:#f8717173}.sheet-editor-char--has-chord{color:var(--text-primary);text-decoration:underline;-webkit-text-decoration-color:var(--chord,#fbbf24);text-decoration-color:var(--chord,#fbbf24);text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:2px}.sheet-editor-char--beat{text-decoration:underline;-webkit-text-decoration-color:var(--v-beat,#a3e635);text-decoration-color:var(--v-beat,#a3e635);text-underline-offset:2px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:3px}.sheet-editor-char--has-chord.sheet-editor-char--beat{-webkit-text-decoration-color:var(--v-beat,#a3e635);text-decoration-color:var(--v-beat,#a3e635);box-shadow:0 4px 0 0 var(--chord,#fbbf24)}.sheet-editor-preview-overlay{z-index:100;padding:var(--space-4);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet-editor-preview-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;width:100%;max-width:600px;max-height:80vh;display:flex;overflow:hidden}.sheet-editor-preview-header{padding:var(--space-3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;font-weight:600;display:flex}.sheet-editor-preview-body{padding:var(--space-3);color:var(--text-primary);white-space:pre;margin:0;font-family:Menlo,Courier New,monospace;font-size:13px;line-height:1.7;overflow:auto}.sheet-editor-confirm-body{padding:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.sheet-editor-confirm-actions{gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border);display:flex}.sheet-editor-confirm-actions .btn{flex:1}.sheet-editor-active-insert{align-items:center;gap:var(--space-2);padding:var(--space-1-5,var(--space-2)) var(--space-3);color:var(--text-primary);font-size:var(--text-sm);background:#3b82f61f;border-top:1px solid #3b82f659;border-bottom:1px solid #3b82f659;flex-shrink:0;display:flex}.sheet-editor-active-insert-label{color:var(--confirm,#3b82f6);font-weight:600}.sheet-editor-active-insert-tag{padding:2px var(--space-2);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-primary);font-family:Menlo,Courier New,monospace;font-weight:600}.sheet-editor-active-insert-hint{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-style:italic;overflow:hidden}.sheet-editor-active-insert-close{border:1px solid var(--border);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sheet-editor-active-insert-close:hover{color:var(--text-primary);background:#ffffff0f}.sheet-editor-preview-panel--render{max-width:860px;max-height:90vh}.sheet-editor-preview-body--render{font-family:inherit;font-size:inherit;line-height:inherit;color:#1a1f2e;--text-primary:#1a1f2e;--text-secondary:#374151;--text-muted:#6b7280;--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#e5e7eb;--border:#00000024;--border-primary:#00000024;--accent:#2563eb;background:#fff;padding:0}.sheet-editor-preview-body--render .chord-sheet-viewer{padding:var(--space-4)}.sheet-editor-preview-body--render .chord-text,.sheet-editor-preview-body--render .chord-section-label{color:#1a1f2e}.edit-topbar{gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-2);border-bottom:1px solid var(--border);background:var(--bg-primary);z-index:15;flex-shrink:0;display:flex;position:relative}.edit-topbar-btn{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-2);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-sm);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;flex:1;min-height:40px;font-weight:600;display:flex}.edit-topbar-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.edit-topbar-btn--chord{color:var(--chord,#fbbf24);border-color:#fbbf2466}.edit-topbar-btn--chord:hover{border-color:var(--chord,#fbbf24);color:var(--chord,#fbbf24);background:#fbbf241a}.edit-topbar-btn--vocal{color:var(--v-breath,#22d3ee);border-color:#22d3ee66}.edit-topbar-btn--vocal:hover{border-color:var(--v-breath,#22d3ee);color:var(--v-breath,#22d3ee);background:#22d3ee1a}.edit-topbar-btn--text{color:#a78bfa;border-color:#a78bfa66}.edit-topbar-btn--text:hover{color:#a78bfa;background:#a78bfa1a;border-color:#a78bfa}.cho-viewer-wrap{padding:var(--space-3) var(--space-4);color:#1a1f2e;background:#fff;flex:1;overflow:auto}.cho-viewer-content{position:relative}.cho-viewer-name{font-size:var(--text-sm);color:#6e7486;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid #0000001f}.cho-viewer-wrap .chord-text{color:#1a1f2e}.cho-viewer-wrap .chord-symbol{color:#4f46e5}.cho-viewer-wrap .chord-anchor{text-decoration-color:#4f46e5}.cho-viewer-wrap .chord-section-label{color:#4a5064;background:#e4e7ee}.cho-viewer-wrap .chord-section-chorus .chord-section-label,.cho-viewer-wrap .chord-section-label.chord-section-chorus,.cho-viewer-wrap .chord-section-label-chorus{color:#4f46e5;background:#4f46e51f}.cho-viewer-wrap .chord-section-chorus-ref .chord-section-label,.cho-viewer-wrap .chord-section-label-chorus-ref{color:#4f46e5;background:#4f46e50f;font-style:italic}.cho-viewer-wrap .chord-sheet-meta{border-bottom-color:#0000001f}.cho-viewer-wrap .chord-sheet-meta-title{color:#1a1f2e}.cho-viewer-wrap .chord-sheet-meta-subtitle{color:#4a5064}.cho-viewer-wrap .chord-sheet-meta-credits,.cho-viewer-wrap .chord-sheet-meta-album,.cho-viewer-wrap .chord-sheet-meta-extra,.cho-viewer-wrap .chord-sheet-meta-copyright{color:#6e7486}.cho-viewer-wrap .chord-sheet-meta-badge{background:#4f46e514;border-color:#4f46e547}.cho-viewer-wrap .chord-sheet-meta-badge-label{color:#4a5064}.cho-viewer-wrap .chord-sheet-meta-badge-value{color:#4f46e5}.cho-viewer-wrap .chord-line-comment-italic .chord-text{color:#4a5064}.cho-viewer-wrap .chord-line-comment-box .chord-text{color:#1a1f2e;border-color:#00000040}.cho-viewer-wrap .chord-section-grid .chord-text{background:#f3f4f8}
