:root{--color-olo: #00ffcc;--color-olo-rgb: 0, 255, 204;--color-olo-deep: #008269;--color-olo-viridian: #00705a}:root,[data-theme=light]{color-scheme:light;--font-title: "Alegreya", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif;--font-family: "Alegreya Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Ubuntu Mono", "SF Mono", "Cascadia Code", Consolas, Menlo, Monaco, monospace;--bg-gradient: linear-gradient(135deg, #e3effb 0%, #f0f6fd 45%, #e8f2fc 100%);--bg-color: #ebf4fc;--canvas-bg: #ffffff;--staff-color: #64748b;--playhead-color: #e11d48;--playhead-glow: rgba(225, 29, 72, .45);--panel-bg: rgba(255, 255, 255, .76);--panel-border: rgba(255, 255, 255, .85);--panel-border-bottom: rgba(186, 210, 235, .75);--panel-glass-sheen: linear-gradient(180deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .18) 49%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, .25) 100%);--panel-shadow: 0 4px 20px -2px rgba(15, 23, 42, .08), 0 1px 3px rgba(0, 0, 0, .04);--glass-blur: blur(16px) saturate(180%);--text-main: #0f172a;--text-muted: #526581;--text-emboss: 0 1px 0 rgba(255, 255, 255, .9);--btn-primary-bg: linear-gradient(180deg, #00ffcc 0%, #00b894 48%, #009376 52%, #00705a 100%);--btn-primary-hover-bg: linear-gradient(180deg, #5dfde0 0%, #00cc9e 48%, #00a887 52%, #00856b 100%);--btn-primary-border: rgba(0, 112, 90, .85);--btn-primary-sheen: inset 0 1px 0 rgba(255, 255, 255, .75), inset 0 -1px 0 rgba(0, 0, 0, .2);--btn-primary-shadow: 0 3px 10px rgba(0, 184, 148, .35), 0 1px 2px rgba(0, 0, 0, .12);--btn-primary-text: #ffffff;--btn-primary-text-shadow: 0 -1px 0 rgba(0, 50, 40, .6);--btn-playing-bg: linear-gradient(180deg, #fbbf24 0%, #f59e0b 48%, #d97706 52%, #b45309 100%);--btn-playing-hover-bg: linear-gradient(180deg, #fcd34d 0%, #fbbf24 48%, #f59e0b 52%, #d97706 100%);--btn-playing-border: rgba(180, 83, 9, .85);--btn-playing-shadow: 0 3px 8px rgba(245, 158, 11, .4), 0 1px 2px rgba(0, 0, 0, .15);--btn-secondary-bg: linear-gradient(180deg, rgba(255, 255, 255, .95) 0%, rgba(241, 245, 249, .9) 49%, rgba(226, 232, 240, .9) 50%, rgba(241, 245, 249, .95) 100%);--btn-secondary-hover-bg: linear-gradient(180deg, #ffffff 0%, #f8fafc 49%, #e2e8f0 50%, #edf2f7 100%);--btn-secondary-border: #cbd5e1;--btn-secondary-sheen: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(0, 0, 0, .05);--btn-secondary-shadow: 0 2px 5px rgba(0, 0, 0, .06), 0 1px 1px rgba(0, 0, 0, .04);--btn-secondary-text: #1e293b;--input-bg: rgba(255, 255, 255, .88);--input-border: #cbd5e1;--input-shadow: inset 0 1px 3px rgba(0, 0, 0, .08), 0 1px 0 rgba(255, 255, 255, .8);--input-focus-border: #008269;--input-focus-glow: 0 0 0 3px rgba(0, 255, 204, .32), inset 0 1px 2px rgba(0, 0, 0, .05);--slider-track-bg: linear-gradient(180deg, #cbd5e1 0%, #e2e8f0 100%);--slider-track-shadow: inset 0 2px 3px rgba(0, 0, 0, .2), 0 1px 0 rgba(255, 255, 255, .8);--slider-thumb-bg: radial-gradient(circle at 35% 35%, #ffffff 0%, #00ffcc 30%, #009e80 75%, #006652 100%);--slider-thumb-border: #00705a;--slider-thumb-shadow: 0 2px 6px rgba(0, 158, 128, .45), 0 1px 2px rgba(0, 0, 0, .25);--accent: #008269;--accent-hover: #006652;--accent-dim: rgba(0, 255, 204, .14);--accent-glow: rgba(0, 255, 204, .5);--danger: #e11d48;--beat-container-bg: linear-gradient(180deg, rgba(226, 232, 240, .65) 0%, rgba(241, 245, 249, .75) 100%);--beat-container-border: rgba(203, 213, 225, .8);--beat-container-shadow: inset 0 1px 3px rgba(0, 0, 0, .1), 0 1px 0 rgba(255, 255, 255, .8);--beat-dot-inactive: radial-gradient(circle at 35% 35%, #ffffff 0%, #cbd5e1 70%, #94a3b8 100%);--beat-dot-inactive-shadow: inset 0 1px 2px rgba(0, 0, 0, .25), 0 1px 0 rgba(255, 255, 255, .8);--beat-dot-active: radial-gradient(circle at 35% 35%, #ffffff 0%, #00ffcc 35%, #00b894 75%, #00705a 100%);--beat-dot-active-glow: 0 0 12px #00ffcc, 0 0 22px rgba(0, 255, 204, .65), inset 0 1px 1px #ffffff;--beat-dot-downbeat: radial-gradient(circle at 35% 35%, #ffffff 0%, #f43f5e 30%, #e11d48 80%, #9f1239 100%);--beat-dot-downbeat-glow: 0 0 14px #f43f5e, 0 0 24px rgba(225, 29, 72, .7), inset 0 1px 1px #ffffff;--popover-bg: rgba(255, 255, 255, .88);--popover-border: rgba(255, 255, 255, .95);--popover-shadow: 0 20px 40px -10px rgba(15, 23, 42, .2), 0 10px 15px -5px rgba(0, 0, 0, .08), inset 0 1px 0 rgba(255, 255, 255, .95);--table-row-hover: rgba(241, 245, 249, .7)}[data-theme=dark]{color-scheme:dark;--font-title: "Alegreya", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif;--font-family: "Alegreya Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Ubuntu Mono", "SF Mono", "Cascadia Code", Consolas, Menlo, Monaco, monospace;--bg-gradient: linear-gradient(135deg, #070b14 0%, #0d1628 50%, #080e1a 100%);--bg-color: #090e1a;--canvas-bg: #0f172a;--staff-color: #475569;--playhead-color: #f43f5e;--playhead-glow: rgba(244, 63, 94, .5);--panel-bg: rgba(13, 22, 40, .78);--panel-border: rgba(0, 255, 204, .22);--panel-border-bottom: rgba(30, 41, 59, .85);--panel-glass-sheen: linear-gradient(180deg, rgba(255, 255, 255, .14) 0%, rgba(255, 255, 255, .03) 49%, rgba(0, 0, 0, .25) 50%, rgba(255, 255, 255, .05) 100%);--panel-shadow: 0 4px 24px -2px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .35);--glass-blur: blur(16px) saturate(190%);--text-main: #f1f5f9;--text-muted: #94a3b8;--text-emboss: 0 1px 2px rgba(0, 0, 0, .9);--btn-primary-bg: linear-gradient(180deg, #00ffcc 0%, #00bfa5 48%, #00897b 52%, #005a4e 100%);--btn-primary-hover-bg: linear-gradient(180deg, #33ffdb 0%, #00d4b2 48%, #009e8d 52%, #006e5f 100%);--btn-primary-border: rgba(0, 255, 204, .65);--btn-primary-sheen: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 -1px 0 rgba(0, 0, 0, .4);--btn-primary-shadow: 0 3px 12px rgba(0, 255, 204, .4), 0 1px 2px rgba(0, 0, 0, .4);--btn-primary-text: #ffffff;--btn-primary-text-shadow: 0 -1px 1px rgba(0, 30, 20, .8);--btn-playing-bg: linear-gradient(180deg, #fbbf24 0%, #d97706 48%, #b45309 52%, #78350f 100%);--btn-playing-hover-bg: linear-gradient(180deg, #fcd34d 0%, #f59e0b 48%, #d97706 52%, #b45309 100%);--btn-playing-border: rgba(251, 191, 36, .55);--btn-playing-shadow: 0 3px 10px rgba(245, 158, 11, .35), 0 1px 2px rgba(0, 0, 0, .4);--btn-secondary-bg: linear-gradient(180deg, rgba(30, 41, 59, .95) 0%, rgba(15, 23, 42, .9) 49%, rgba(10, 16, 30, .9) 50%, rgba(20, 30, 48, .95) 100%);--btn-secondary-hover-bg: linear-gradient(180deg, rgba(40, 56, 80, .95) 0%, rgba(25, 36, 56, .9) 49%, rgba(18, 27, 44, .9) 50%, rgba(30, 45, 70, .95) 100%);--btn-secondary-border: rgba(71, 85, 105, .65);--btn-secondary-sheen: inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 -1px 0 rgba(0, 0, 0, .4);--btn-secondary-shadow: 0 2px 6px rgba(0, 0, 0, .35);--btn-secondary-text: #f1f5f9;--input-bg: rgba(15, 23, 42, .88);--input-border: rgba(71, 85, 105, .65);--input-shadow: inset 0 1px 3px rgba(0, 0, 0, .4), 0 1px 0 rgba(255, 255, 255, .05);--input-focus-border: #00ffcc;--input-focus-glow: 0 0 0 3px rgba(0, 255, 204, .28), inset 0 1px 2px rgba(0, 0, 0, .3);--slider-track-bg: linear-gradient(180deg, #090e1a 0%, #172033 100%);--slider-track-shadow: inset 0 2px 4px rgba(0, 0, 0, .6), 0 1px 0 rgba(255, 255, 255, .08);--slider-thumb-bg: radial-gradient(circle at 35% 35%, #ffffff 0%, #33ffdb 30%, #00bfa5 75%, #006954 100%);--slider-thumb-border: #00ffcc;--slider-thumb-shadow: 0 2px 8px rgba(0, 255, 204, .5), 0 1px 2px rgba(0, 0, 0, .6);--accent: #00ffcc;--accent-hover: #33ffdb;--accent-dim: rgba(0, 255, 204, .15);--accent-glow: rgba(0, 255, 204, .45);--danger: #f43f5e;--beat-container-bg: linear-gradient(180deg, rgba(10, 16, 30, .75) 0%, rgba(15, 23, 42, .85) 100%);--beat-container-border: rgba(51, 65, 85, .75);--beat-container-shadow: inset 0 1px 3px rgba(0, 0, 0, .4), 0 1px 0 rgba(255, 255, 255, .05);--beat-dot-inactive: radial-gradient(circle at 35% 35%, #334155 0%, #1e293b 70%, #0f172a 100%);--beat-dot-inactive-shadow: inset 0 1px 2px rgba(0, 0, 0, .5), 0 1px 0 rgba(255, 255, 255, .08);--beat-dot-active: radial-gradient(circle at 35% 35%, #ffffff 0%, #00ffcc 30%, #00bfa5 75%, #005a4e 100%);--beat-dot-active-glow: 0 0 14px #00ffcc, 0 0 24px rgba(0, 255, 204, .7), inset 0 1px 1px #ffffff;--beat-dot-downbeat: radial-gradient(circle at 35% 35%, #ffffff 0%, #f43f5e 30%, #e11d48 80%, #9f1239 100%);--beat-dot-downbeat-glow: 0 0 16px #f43f5e, 0 0 26px rgba(244, 63, 94, .75), inset 0 1px 1px #ffffff;--popover-bg: rgba(15, 23, 42, .88);--popover-border: rgba(0, 255, 204, .25);--popover-shadow: 0 20px 45px -10px rgba(0, 0, 0, .7), 0 10px 20px -5px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .15);--table-row-hover: rgba(30, 41, 59, .75)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--font-title: "Alegreya", Georgia, "Palatino Linotype", "Book Antiqua", Palatino, serif;--font-family: "Alegreya Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "Ubuntu Mono", "SF Mono", "Cascadia Code", Consolas, Menlo, Monaco, monospace;--bg-gradient: linear-gradient(135deg, #070b14 0%, #0d1628 50%, #080e1a 100%);--bg-color: #090e1a;--canvas-bg: #0f172a;--staff-color: #475569;--playhead-color: #f43f5e;--playhead-glow: rgba(244, 63, 94, .5);--panel-bg: rgba(13, 22, 40, .78);--panel-border: rgba(0, 255, 204, .22);--panel-border-bottom: rgba(30, 41, 59, .85);--panel-glass-sheen: linear-gradient(180deg, rgba(255, 255, 255, .14) 0%, rgba(255, 255, 255, .03) 49%, rgba(0, 0, 0, .25) 50%, rgba(255, 255, 255, .05) 100%);--panel-shadow: 0 4px 24px -2px rgba(0, 0, 0, .55), 0 1px 3px rgba(0, 0, 0, .35);--glass-blur: blur(16px) saturate(190%);--text-main: #f1f5f9;--text-muted: #94a3b8;--text-emboss: 0 1px 2px rgba(0, 0, 0, .9);--btn-primary-bg: linear-gradient(180deg, #00ffcc 0%, #00bfa5 48%, #00897b 52%, #005a4e 100%);--btn-primary-hover-bg: linear-gradient(180deg, #33ffdb 0%, #00d4b2 48%, #009e8d 52%, #006e5f 100%);--btn-primary-border: rgba(0, 255, 204, .65);--btn-primary-sheen: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 -1px 0 rgba(0, 0, 0, .4);--btn-primary-shadow: 0 3px 12px rgba(0, 255, 204, .4), 0 1px 2px rgba(0, 0, 0, .4);--btn-primary-text: #ffffff;--btn-primary-text-shadow: 0 -1px 1px rgba(0, 30, 20, .8);--btn-playing-bg: linear-gradient(180deg, #fbbf24 0%, #d97706 48%, #b45309 52%, #78350f 100%);--btn-playing-hover-bg: linear-gradient(180deg, #fcd34d 0%, #f59e0b 48%, #d97706 52%, #b45309 100%);--btn-playing-border: rgba(251, 191, 36, .55);--btn-playing-shadow: 0 3px 10px rgba(245, 158, 11, .35), 0 1px 2px rgba(0, 0, 0, .4);--btn-secondary-bg: linear-gradient(180deg, rgba(30, 41, 59, .95) 0%, rgba(15, 23, 42, .9) 49%, rgba(10, 16, 30, .9) 50%, rgba(20, 30, 48, .95) 100%);--btn-secondary-hover-bg: linear-gradient(180deg, rgba(40, 56, 80, .95) 0%, rgba(25, 36, 56, .9) 49%, rgba(18, 27, 44, .9) 50%, rgba(30, 45, 70, .95) 100%);--btn-secondary-border: rgba(71, 85, 105, .65);--btn-secondary-sheen: inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 -1px 0 rgba(0, 0, 0, .4);--btn-secondary-shadow: 0 2px 6px rgba(0, 0, 0, .35);--btn-secondary-text: #f1f5f9;--input-bg: rgba(15, 23, 42, .88);--input-border: rgba(71, 85, 105, .65);--input-shadow: inset 0 1px 3px rgba(0, 0, 0, .4), 0 1px 0 rgba(255, 255, 255, .05);--input-focus-border: #00ffcc;--input-focus-glow: 0 0 0 3px rgba(0, 255, 204, .28), inset 0 1px 2px rgba(0, 0, 0, .3);--slider-track-bg: linear-gradient(180deg, #090e1a 0%, #172033 100%);--slider-track-shadow: inset 0 2px 4px rgba(0, 0, 0, .6), 0 1px 0 rgba(255, 255, 255, .08);--slider-thumb-bg: radial-gradient(circle at 35% 35%, #ffffff 0%, #33ffdb 30%, #00bfa5 75%, #006954 100%);--slider-thumb-border: #00ffcc;--slider-thumb-shadow: 0 2px 8px rgba(0, 255, 204, .5), 0 1px 2px rgba(0, 0, 0, .6);--accent: #00ffcc;--accent-hover: #33ffdb;--accent-dim: rgba(0, 255, 204, .15);--accent-glow: rgba(0, 255, 204, .45);--danger: #f43f5e;--beat-container-bg: linear-gradient(180deg, rgba(10, 16, 30, .75) 0%, rgba(15, 23, 42, .85) 100%);--beat-container-border: rgba(51, 65, 85, .75);--beat-container-shadow: inset 0 1px 3px rgba(0, 0, 0, .4), 0 1px 0 rgba(255, 255, 255, .05);--beat-dot-inactive: radial-gradient(circle at 35% 35%, #334155 0%, #1e293b 70%, #0f172a 100%);--beat-dot-inactive-shadow: inset 0 1px 2px rgba(0, 0, 0, .5), 0 1px 0 rgba(255, 255, 255, .08);--beat-dot-active: radial-gradient(circle at 35% 35%, #ffffff 0%, #00ffcc 30%, #00bfa5 75%, #005a4e 100%);--beat-dot-active-glow: 0 0 14px #00ffcc, 0 0 24px rgba(0, 255, 204, .7), inset 0 1px 1px #ffffff;--beat-dot-downbeat: radial-gradient(circle at 35% 35%, #ffffff 0%, #f43f5e 30%, #e11d48 80%, #9f1239 100%);--beat-dot-downbeat-glow: 0 0 16px #f43f5e, 0 0 26px rgba(244, 63, 94, .75), inset 0 1px 1px #ffffff;--popover-bg: rgba(15, 23, 42, .88);--popover-border: rgba(0, 255, 204, .25);--popover-shadow: 0 20px 45px -10px rgba(0, 0, 0, .7), 0 10px 20px -5px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .15);--table-row-hover: rgba(30, 41, 59, .75)}}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-gradient);background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-family);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,kbd,pre,samp{font-family:var(--font-mono)}#app{display:flex;flex-direction:column;height:100vh;width:100vw;position:relative}.control-panel{display:flex;flex-direction:column;gap:10px;padding:10px 18px;background-color:var(--panel-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--panel-border-bottom);box-shadow:var(--panel-shadow),inset 0 1px 0 var(--panel-border);position:relative;z-index:10;-webkit-user-select:none;user-select:none}.control-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:var(--panel-glass-sheen);pointer-events:none;border-bottom:1px solid rgba(255,255,255,.1)}.primary-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;width:100%;position:relative;z-index:2}.brand{display:inline-flex;align-items:center;gap:8px}.brand h1{font-family:var(--font-title);font-size:21px;font-weight:700;letter-spacing:.3px;color:var(--text-main);text-shadow:var(--text-emboss);white-space:nowrap;line-height:1.1}.brand-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-family);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;padding:1px 7px;border-radius:12px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);box-shadow:inset 0 1px #fff6,0 1px 2px #0000000d}.playback-controls{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:33px;padding:0 13px;border-radius:6px;font-family:var(--font-family);font-size:13px;font-weight:600;cursor:pointer;position:relative;overflow:hidden;transition:all .14s ease-in-out;touch-action:manipulation}.btn:after{content:"";position:absolute;top:0;left:0;right:0;height:48%;background:linear-gradient(180deg,#ffffff61,#ffffff0f);border-top-left-radius:inherit;border-top-right-radius:inherit;pointer-events:none}.btn:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0006!important}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus:not(:focus-visible){outline:none}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid var(--btn-primary-border);box-shadow:var(--btn-primary-sheen),var(--btn-primary-shadow);text-shadow:var(--btn-primary-text-shadow)}.btn-primary:hover{background:var(--btn-primary-hover-bg);box-shadow:var(--btn-primary-sheen),0 0 16px var(--accent-glow),var(--btn-primary-shadow)}.btn-primary.playing{background:var(--btn-playing-bg);border-color:var(--btn-playing-border);box-shadow:var(--btn-primary-sheen),var(--btn-playing-shadow)}.btn-primary.playing:hover{background:var(--btn-playing-hover-bg);box-shadow:var(--btn-primary-sheen),0 0 14px #f59e0b80,0 4px 10px #d9770666}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border);box-shadow:var(--btn-secondary-sheen),var(--btn-secondary-shadow);text-shadow:var(--text-emboss)}.btn-secondary:hover{background:var(--btn-secondary-hover-bg);border-color:var(--accent);box-shadow:var(--btn-secondary-sheen),0 0 10px var(--accent-dim),0 3px 6px #00000014}.utility-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.btn-icon-only{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border);box-shadow:var(--btn-secondary-sheen),var(--btn-secondary-shadow);border-radius:6px;width:33px;height:33px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;position:relative;overflow:hidden;transition:all .14s ease-in-out}.btn-icon-only:after{content:"";position:absolute;top:0;left:0;right:0;height:48%;background:linear-gradient(180deg,#ffffff59,#ffffff0d);pointer-events:none}.btn-icon-only:hover{background:var(--btn-secondary-hover-bg);border-color:var(--accent);box-shadow:var(--btn-secondary-sheen),0 0 10px var(--accent-dim),0 3px 6px #00000014}.btn-icon-only:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #00000059!important}.btn-drawer-toggle{display:none}.controls-drawer{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;width:100%;position:relative;z-index:2}.control-group{display:flex;flex-direction:column;gap:3px}.control-group label,.control-group legend{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:700;text-shadow:var(--text-emboss)}.control-group select,.control-group input[type=number]{background-color:var(--input-bg);color:var(--text-main);border:1px solid var(--input-border);box-shadow:var(--input-shadow);border-radius:5px;height:31px;padding:0 9px;font-family:var(--font-family);font-size:13px;font-weight:600;outline:none;cursor:pointer;transition:border-color .14s ease-in-out,box-shadow .14s ease-in-out}.control-group select:focus,.control-group input[type=number]:focus{border-color:var(--input-focus-border);box-shadow:var(--input-focus-glow)}.tempo-group{min-width:180px}#bpm-display{font-family:var(--font-mono);font-weight:700;font-variant-numeric:tabular-nums}.tempo-inputs{display:flex;align-items:center;gap:8px}.tempo-inputs input[type=number]{width:56px;text-align:center;font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums}.tempo-inputs input[type=range],.volume-inputs input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--slider-track-bg);height:7px;border-radius:5px;border:1px solid var(--input-border);box-shadow:var(--slider-track-shadow);outline:none;cursor:pointer}.tempo-inputs input[type=range]::-webkit-slider-thumb,.volume-inputs input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--slider-thumb-bg);border:1px solid var(--slider-thumb-border);box-shadow:var(--slider-thumb-shadow);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.tempo-inputs input[type=range]::-webkit-slider-thumb:hover,.volume-inputs input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.tempo-inputs input[type=range]::-webkit-slider-thumb:active,.volume-inputs input[type=range]::-webkit-slider-thumb:active{transform:scale(.95)}.tempo-inputs input[type=range]::-moz-range-thumb,.volume-inputs input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--slider-thumb-bg);border:1px solid var(--slider-thumb-border);box-shadow:var(--slider-thumb-shadow);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.tempo-inputs input[type=range]::-moz-range-thumb:hover,.volume-inputs input[type=range]::-moz-range-thumb:hover{transform:scale(1.15)}.clef-select-container{display:flex;flex-direction:column;gap:2px}.clef-range-hint{font-size:10px;color:var(--text-muted);white-space:nowrap}.subdivisions-group,.intervals-group{border:1px solid var(--input-border);padding:5px 10px;border-radius:6px;background-color:var(--input-bg);box-shadow:var(--input-shadow)}.checkbox-grid{display:grid;grid-template-columns:repeat(3,auto);gap:4px 10px}.intervals-grid{grid-template-columns:repeat(5,auto);gap:4px 10px}.checkbox-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--text-main);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-item input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;vertical-align:-1px}.music-icon{display:inline-block;height:1.15em;width:auto;vertical-align:-.22em;fill:currentColor;flex-shrink:0;margin:0 .18em}.music-icon.icon-whole{height:.58em;vertical-align:-.06em}.music-icon.icon-rest{height:1.05em;vertical-align:-.16em}.rests-group,.count-in-group{justify-content:center}.volume-group{min-width:135px}.volume-inputs{display:flex;align-items:center;gap:6px}.volume-inputs input[type=range]{width:80px}.btn-mute{background:none;border:none;font-size:14px;cursor:pointer;padding:2px 4px;border-radius:4px;color:var(--text-main);transition:transform .12s ease}.btn-mute:hover{transform:scale(1.18)}.zoom-group{min-width:175px}#zoom-display{font-family:var(--font-mono);font-weight:700;font-variant-numeric:tabular-nums}.zoom-inputs{display:flex;align-items:center;gap:5px}.zoom-inputs input[type=range]{width:70px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--slider-track-bg);height:7px;border-radius:5px;border:1px solid var(--input-border);box-shadow:var(--slider-track-shadow);outline:none;cursor:pointer}.zoom-inputs input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--slider-thumb-bg);border:1px solid var(--slider-thumb-border);box-shadow:var(--slider-thumb-shadow);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.zoom-inputs input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.zoom-inputs input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--slider-thumb-bg);border:1px solid var(--slider-thumb-border);box-shadow:var(--slider-thumb-shadow);cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.zoom-inputs input[type=range]::-moz-range-thumb:hover{transform:scale(1.15)}.btn-step{width:25px;height:25px;border-radius:4px;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);box-shadow:var(--btn-secondary-sheen),var(--btn-secondary-shadow);color:var(--text-main);font-family:var(--font-mono);font-size:15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1;transition:all .1s ease}.btn-step:hover{background:var(--btn-secondary-hover-bg);border-color:var(--accent);color:var(--accent)}.btn-step:active{transform:translateY(1px)}.btn-sm{height:25px;padding:0 6px;font-size:11px;font-family:var(--font-mono);font-weight:700}.btn-sm.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);box-shadow:0 0 8px var(--accent-glow),inset 0 1px #fff6}.tuplets-group{position:relative}.tuplets-menu-wrapper{position:relative;display:inline-flex}.btn-menu{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border);box-shadow:var(--btn-secondary-sheen),var(--btn-secondary-shadow);border-radius:6px;height:31px;padding:0 11px;font-family:var(--font-family);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer;position:relative;overflow:hidden;transition:all .14s ease-in-out}.btn-menu:after{content:"";position:absolute;top:0;left:0;right:0;height:48%;background:linear-gradient(180deg,#ffffff59,#ffffff0d);pointer-events:none}.btn-menu:hover{background:var(--btn-secondary-hover-bg);border-color:var(--accent)}.btn-menu.open{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.btn-menu.has-active{border-color:var(--accent);color:var(--accent);background-color:var(--accent-dim)}.btn-menu .btn-icon{font-size:14px}.btn-menu .menu-arrow{font-size:10px;color:var(--text-muted);transition:transform .2s ease}.btn-menu.open .menu-arrow{transform:rotate(180deg)}.badge-count{display:inline-flex;align-items:center;justify-content:center;background:var(--btn-primary-bg);color:#fff;font-size:10px;font-weight:700;min-width:17px;height:17px;padding:0 4px;border-radius:10px;line-height:1;box-shadow:0 1px 2px #0003}.badge-count.hidden{display:none}.tuplets-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:100;min-width:350px;background:var(--popover-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--popover-border);border-radius:10px;box-shadow:var(--popover-shadow);padding:14px 16px;display:flex;flex-direction:column;gap:12px;animation:popoverFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes popoverFadeIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.tuplets-popover.hidden{display:none}.tuplets-popover-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--panel-border-bottom);padding-bottom:9px}.tuplets-popover-title{font-family:var(--font-title);font-size:15px;font-weight:700;letter-spacing:.3px;color:var(--text-main);text-shadow:var(--text-emboss)}.tuplets-popover-actions{display:flex;align-items:center;gap:8px}.btn-text{background:none;border:none;font-family:var(--font-family);font-size:11px;font-weight:700;color:var(--accent);cursor:pointer;padding:3px 6px;border-radius:4px;transition:all .12s ease}.btn-text:hover{text-decoration:underline;background-color:var(--accent-dim)}.btn-close{background:none;border:none;font-size:14px;color:var(--text-muted);cursor:pointer;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:all .14s ease-in-out}.btn-close:hover{background-color:var(--btn-secondary-hover-bg);color:var(--text-main)}.tuplets-table-wrapper{overflow-x:auto}.tuplets-table{width:100%;border-collapse:collapse;font-size:12px}.tuplets-table th,.tuplets-table td{padding:6px 8px;text-align:center;border-bottom:1px solid var(--panel-border-bottom)}.tuplets-table thead th{font-size:11px;font-weight:700;color:var(--text-muted);background-color:#ffffff0d;border-bottom:1px solid var(--panel-border-bottom)}.tuplets-table .th-corner{text-align:left;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.tuplets-table .th-val{color:var(--text-main);font-weight:600}.tuplets-table .th-row{text-align:left;font-weight:600;color:var(--text-main);white-space:nowrap}.tuplets-table tbody tr:hover{background-color:var(--table-row-hover)}.tuplet-cell-label{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;cursor:pointer}.tuplet-cell-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.tuplets-popover-footer{font-size:11px;color:var(--text-muted);border-top:1px solid var(--panel-border-bottom);padding-top:8px;line-height:1.35}.beat-indicator-container{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:5px 12px;background:var(--beat-container-bg);border-radius:20px;border:1px solid var(--beat-container-border);box-shadow:var(--beat-container-shadow)}.badge-count-in{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);white-space:nowrap;pointer-events:none;background:var(--danger);color:#fff;font-family:var(--font-family);font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;letter-spacing:.8px;line-height:1.2;animation:pulse .5s infinite alternate;box-shadow:0 1px 3px #0000004d;z-index:5}.badge-count-in.hidden{display:none}@keyframes pulse{0%{opacity:.6}to{opacity:1}}.beat-dots{display:flex;align-items:center;gap:7px}.beat-dot{width:13px;height:13px;border-radius:50%;background:var(--beat-dot-inactive);box-shadow:var(--beat-dot-inactive-shadow);transition:all .08s ease-out}.beat-dot.active{background:var(--beat-dot-active);box-shadow:var(--beat-dot-active-glow);transform:scale(1.28)}.beat-dot.active.downbeat{background:var(--beat-dot-downbeat);box-shadow:var(--beat-dot-downbeat-glow);transform:scale(1.42)}.canvas-wrapper{flex:1;width:100%;min-height:240px;position:relative;background-color:var(--canvas-bg);box-shadow:inset 0 4px 12px #0000000a,inset 0 -4px 12px #0000000a;overflow:hidden}#scroller-canvas{width:100%;height:100%;display:block}.canvas-zoom-pill{position:absolute;bottom:16px;right:16px;z-index:10;display:inline-flex;align-items:center;gap:2px;padding:3px 4px;background:var(--panel-bg);border:1px solid var(--panel-border);border-bottom-color:var(--panel-border-bottom);border-radius:20px;box-shadow:var(--panel-shadow),inset 0 1px #fff9;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);-webkit-user-select:none;user-select:none;transition:opacity .2s ease,transform .2s ease}.btn-pill-action{width:28px;height:28px;border-radius:50%;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);box-shadow:var(--btn-secondary-sheen),var(--btn-secondary-shadow);color:var(--text-main);font-family:var(--font-mono);font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1;transition:all .12s ease}.btn-pill-action:hover{background:var(--btn-secondary-hover-bg);border-color:var(--accent);color:var(--accent);transform:scale(1.08)}.btn-pill-action:active{transform:scale(.96) translateY(1px);box-shadow:inset 0 1px 3px #0000004d}.btn-pill-label{min-width:44px;height:28px;padding:0 6px;border-radius:14px;background:transparent;border:none;color:var(--text-main);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.2px;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s ease}.btn-pill-label:hover{background:var(--accent-dim);color:var(--accent)}.btn-pill-label:active{transform:scale(.95)}.shortcuts-hint{display:flex;justify-content:center;align-items:center;gap:20px;padding:7px 16px;background-color:var(--panel-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--panel-border-bottom);box-shadow:inset 0 1px 0 var(--panel-border);font-size:11px;color:var(--text-muted)}kbd{display:inline-block;padding:2px 6px;background:var(--btn-secondary-bg);border:1px solid var(--input-border);border-bottom:2px solid #94a3b8;border-radius:4px;color:var(--text-main);font-family:var(--font-mono);font-size:10px;font-weight:600;box-shadow:0 1px 2px #0000001f,inset 0 1px #fffc}.footer-source{display:inline-flex;align-items:center}.footer-source a{color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;font-weight:500;transition:color .14s ease-in-out}.footer-source a:hover{color:var(--accent)}.btn-link{background:none;border:none;padding:0;font:inherit;font-size:11px;color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .14s ease-in-out}.btn-link:hover{color:var(--accent)}a.btn-icon-only{text-decoration:none;color:var(--text-main)}.nav-icon,.fullscreen-icon{display:block}.drawer-about-group{margin-top:4px}.btn-drawer-about{width:100%;height:35px}dialog.about-dialog{border:1px solid var(--popover-border);border-radius:12px;background:var(--popover-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--text-main);padding:0;max-width:530px;width:calc(100% - 32px);margin:auto;box-shadow:var(--popover-shadow);animation:modalPop .22s cubic-bezier(.16,1,.3,1)}dialog.about-dialog::backdrop{background-color:#0000008c;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}@keyframes modalPop{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.about-dialog-content{display:flex;flex-direction:column}.about-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--panel-border-bottom)}.about-dialog-header h2{font-family:var(--font-title);font-size:18px;font-weight:700;letter-spacing:.3px;color:var(--text-main);text-shadow:var(--text-emboss);margin:0}.about-dialog-body{padding:18px 22px;display:flex;flex-direction:column;gap:16px;font-size:13px;line-height:1.55;color:var(--text-main);max-height:65vh;overflow-y:auto}.about-tagline{color:var(--text-muted);margin:0;font-size:13px}.about-meta-grid{display:flex;flex-direction:column;gap:8px;background:var(--input-bg);border:1px solid var(--input-border);box-shadow:var(--input-shadow);border-radius:8px;padding:12px 16px}.about-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}.meta-label{color:var(--text-muted);font-weight:600}.meta-value{font-weight:600;color:var(--text-main)}.badge-license{display:inline-block;padding:2px 7px;border-radius:4px;background-color:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);font-weight:700;font-size:11px;font-family:var(--font-mono)}.link-external{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.link-external:hover{color:var(--accent-hover)}.about-section{display:flex;flex-direction:column;gap:5px}.about-section h3{font-family:var(--font-title);font-size:14px;font-weight:700;letter-spacing:.4px;color:var(--text-main);text-shadow:var(--text-emboss);margin:0}.about-section p{margin:0;color:var(--text-main);font-size:12.5px}.about-dialog-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--panel-border-bottom);background:var(--btn-secondary-bg);border-bottom-left-radius:12px;border-bottom-right-radius:12px}.about-dialog-footer a.btn{text-decoration:none}.hidden{display:none!important}@media(max-width:960px){.btn-drawer-toggle{display:inline-flex}.controls-drawer{display:none;max-height:0;overflow-y:auto;padding-top:10px;border-top:1px solid var(--panel-border-bottom)}.controls-drawer.open{display:flex;max-height:70vh;animation:drawerSlideDown .22s cubic-bezier(.16,1,.3,1) forwards}.shortcuts-hint{display:none}}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
