:root{--ink-950: #07070C;--ink-900: #0E0F16;--ink-880: #11121A;--ink-870: #13141C;--ink-850: #161824;--ink-800: #1B1E2C;--ink-750: #222637;--ink-700: #2A2F44;--ink-600: #363B53;--ink-500: #474D69;--accent-300: #C4B4FF;--accent-400: #9D85FF;--accent-500: #7B5CFF;--accent-600: #5E3FE6;--accent-700: #4628C4;--accent-glow: rgba(123, 92, 255, .22);--accent-soft: rgba(123, 92, 255, .1);--text-100: #F2F3F8;--text-200: #DEE0EC;--text-300: #B7BBCC;--text-400: #8A8FA6;--text-500: #7A7F95;--text-600: #5C6079;--text-700: #42475C;--fn-tonic: #5BD49B;--fn-subdom: #F2B66B;--fn-dom: #EB6FA0;--fn-secondary: #7B5CFF;--stem-vocals: #F472B6;--stem-drums: #FBBF24;--stem-bass: #34D399;--stem-other: #67E8F9;--warn-amber: #F0B764;--warn-amber-bg: rgba(240, 183, 100, .1);--warn-amber-bd: rgba(240, 183, 100, .32);--warn-rose: #E89AA8;--warn-rose-bg: rgba(232, 154, 168, .1);--warn-rose-bd: rgba(232, 154, 168, .32);--good-green: #5BD49B;--good-green-bg: rgba(91, 212, 155, .1);--good-green-bd: rgba(91, 212, 155, .32);--r-5: 5px;--r-7: 7px;--r-9: 9px;--r-10: 10px;--r-14: 14px;--r-16: 16px;--s-4: 4px;--s-8: 8px;--s-12: 12px;--s-16: 16px;--s-24: 24px;--s-32: 32px;--s-40: 40px;--s-48: 48px;--s-64: 64px;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}.num{font-variant-numeric:tabular-nums}@media(max-width:767px){.app.mx-auto{padding-left:var(--s-12);padding-right:var(--s-12)}}@media(max-width:767px){.app-bar{padding:6px var(--s-12) var(--s-12);gap:var(--s-8)}.app-bar .brand-tag{display:none}.app-bar-right{gap:var(--s-8)}.tier-group{order:99;flex:1 1 100%;width:100%}.tier{flex:1 1 0;justify-content:center;padding:8px 6px;font-size:12px}.sub-switches.show{max-width:100%;flex:1 1 100%;width:100%;margin-top:var(--s-4)}.sub-switches:before{display:none}.sub-pill{flex:1 1 0;justify-content:center}.app-bar .v-rule{display:none}}@media(max-width:480px){.app-bar .brand-name{font-size:14px}.app-bar .icon-btn{width:30px;height:30px}}@media(max-width:767px){.data-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:var(--s-8);padding:6px}.data-row::-webkit-scrollbar{display:none}.data-cell{flex:0 0 auto;scroll-snap-align:start;min-width:168px;padding:var(--s-12) var(--s-16);min-height:72px}.data-cell+.data-cell:before{display:none}.data-cell .val{font-size:18px}.data-cell .glyph{width:32px;height:32px}.preset-cell.collapsed{flex:0 0 auto;min-width:156px}}@media(max-width:480px){.app .flex-wrap{gap:var(--s-8)}[data-slot=export-group]{flex:1 1 100%;width:100%}[data-slot=export-group] button{flex:1 1 0;text-align:center;padding:8px 6px;font-size:12px}}@media(max-width:767px){.chord-timeline-strip,.chord-timeline{-webkit-overflow-scrolling:touch}.chord-timeline .seg{min-width:76px;padding:var(--s-8)}}@media(max-width:767px){[data-slot=canvas]>.flex.gap-3.items-stretch{flex-direction:column}[data-slot=wave-tools]{flex:1 1 auto;width:100%}.wave-tools{flex-direction:row;flex-wrap:wrap;gap:var(--s-4);padding:var(--s-8)}.wave-tool-btn{flex:0 0 auto}}@media(max-width:480px){.piano-roll-host{max-height:220px}.piano-roll-keyboard{font-size:9px}}@media(max-width:480px){.now-playing{padding:var(--s-16)}.now-playing .chord-big,.now-playing-chord-big{font-size:36px!important}.now-playing-roman{font-size:13px}}@media(max-width:480px){.reasoning,.reasoning .rule-card{padding:var(--s-12)}}@media(max-width:767px){.transport{height:64px;padding:0 var(--s-12);gap:var(--s-12);padding-bottom:env(safe-area-inset-bottom);height:calc(64px + env(safe-area-inset-bottom))}body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.tr-controls{gap:4px}.tr-btn{width:34px;height:34px}.tr-btn.primary{width:40px;height:40px}.tr-time{font-size:11px;min-width:72px}}@media(max-width:480px){.tr-speed,.tr-loop,.tr-secondary{display:none}.tr-time{min-width:64px}}@media(max-width:480px){#modal-host .modal{width:calc(100% - var(--s-16));max-width:100%;margin:var(--s-8);max-height:90vh}.modal-head{padding:var(--s-12) var(--s-16)}.modal-body{padding:var(--s-16)}.modal-foot{padding:var(--s-12) var(--s-16);flex-direction:column-reverse;gap:var(--s-8)}.modal-foot button{width:100%}}@media(max-width:480px){.share-modal{border-radius:var(--r-14);max-height:92vh}.share-head{padding:var(--s-12) var(--s-16)}.share-body{padding:var(--s-16);gap:var(--s-12)}.share-foot{padding:var(--s-12) var(--s-16)}}@media(max-width:480px){.stems-banner{font-size:12px;padding:var(--s-12)}.stems-bar{gap:var(--s-8);padding:var(--s-12)}.stem-chip{padding:6px 10px;font-size:11.5px}}@media(max-width:480px){.status-banner{padding:var(--s-12) var(--s-16)}.status-banner .banner-msg{font-size:13px}}@media(max-width:480px){.toast-stack{left:var(--s-8);right:var(--s-8);bottom:calc(80px + env(safe-area-inset-bottom))}.toast{width:calc(100% - var(--s-16));max-width:100%}}@media(max-width:480px){.processing-screen{padding:var(--s-16)}.processing-hero-ring{width:144px;height:144px}.processing-stage-list{gap:var(--s-8)}}@media(max-width:480px){.empty-state,.error-state{padding:var(--s-32) var(--s-16)}.empty-state-title,.error-state-title{font-size:18px}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{color-scheme:dark}body{-webkit-font-smoothing:antialiased}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.\!sticky{position:sticky!important}.sticky{position:sticky}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.min-h-screen{min-height:100vh}.min-w-0{min-width:0px}.min-w-\[64px\]{min-width:64px}.max-w-\[1408px\]{max-width:1408px}.flex-1{flex:1 1 0%}.scale-\[1\.01\]{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-pre-line{white-space:pre-line}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-r{border-right-width:1px}.border-dashed{border-style:dashed}.border-accent-500{--tw-border-opacity: 1;border-color:rgb(122 162 255 / var(--tw-border-opacity, 1))}.border-accent-500\/40{border-color:#7aa2ff66}.border-accent-500\/60{border-color:#7aa2ff99}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-emerald-500\/60{border-color:#10b98199}.border-ink-600{border-color:var(--ink-600)}.border-ink-700{--tw-border-opacity: 1;border-color:rgb(26 31 43 / var(--tw-border-opacity, 1))}.border-rose-500{--tw-border-opacity: 1;border-color:rgb(244 63 94 / var(--tw-border-opacity, 1))}.border-rose-500\/60{border-color:#f43f5e99}.bg-accent-500{--tw-bg-opacity: 1;background-color:rgb(122 162 255 / var(--tw-bg-opacity, 1))}.bg-accent-500\/10{background-color:#7aa2ff1a}.bg-accent-500\/15{background-color:#7aa2ff26}.bg-accent-500\/20{background-color:#7aa2ff33}.bg-accent-500\/30{background-color:#7aa2ff4d}.bg-amber-500\/15{background-color:#f59e0b26}.bg-emerald-500\/10{background-color:#10b9811a}.bg-ink-700{--tw-bg-opacity: 1;background-color:rgb(26 31 43 / var(--tw-bg-opacity, 1))}.bg-ink-800{--tw-bg-opacity: 1;background-color:rgb(17 20 28 / var(--tw-bg-opacity, 1))}.bg-ink-800\/60{background-color:#11141c99}.bg-ink-900{--tw-bg-opacity: 1;background-color:rgb(11 13 18 / var(--tw-bg-opacity, 1))}.bg-ink-900\/60{background-color:#0b0d1299}.bg-rose-500\/10{background-color:#f43f5e1a}.bg-rose-500\/20{background-color:#f43f5e33}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-v4-32{padding-left:var(--s-32);padding-right:var(--s-32)}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-5{padding-top:1.25rem}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,ui-monospace,monospace}.font-sans{font-family:Inter,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.tracking-wide{letter-spacing:.025em}.text-accent-300{color:var(--accent-300)}.text-accent-400{--tw-text-opacity: 1;color:rgb(156 188 255 / var(--tw-text-opacity, 1))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.text-ink-50{--tw-text-opacity: 1;color:rgb(246 247 251 / var(--tw-text-opacity, 1))}.text-ink-50\/50{color:#f6f7fb80}.text-ink-50\/60{color:#f6f7fb99}.text-ink-50\/70{color:#f6f7fbb3}.text-ink-50\/80{color:#f6f7fbcc}.text-ink-50\/90{color:#f6f7fbe6}.text-ink-900{--tw-text-opacity: 1;color:rgb(11 13 18 / var(--tw-text-opacity, 1))}.text-rose-200{--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity, 1))}.text-rose-300{--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.text-rose-300\/80{color:#fda4afcc}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-accent-500\/30{--tw-ring-color: rgb(122 162 255 / .3)}.ring-ink-700{--tw-ring-opacity: 1;--tw-ring-color: rgb(26 31 43 / var(--tw-ring-opacity, 1))}.ring-rose-500\/30{--tw-ring-color: rgb(244 63 94 / .3)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.focus-within\:border-accent-500:focus-within{--tw-border-opacity: 1;border-color:rgb(122 162 255 / var(--tw-border-opacity, 1))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-within\:ring-accent-500\/40:focus-within{--tw-ring-color: rgb(122 162 255 / .4)}.hover\:border-accent-500\/60:hover{border-color:#7aa2ff99}.hover\:bg-accent-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 188 255 / var(--tw-bg-opacity, 1))}.hover\:bg-accent-500\/10:hover{background-color:#7aa2ff1a}.hover\:bg-accent-500\/30:hover{background-color:#7aa2ff4d}.hover\:bg-ink-600:hover{background-color:var(--ink-600)}.hover\:bg-ink-700:hover{--tw-bg-opacity: 1;background-color:rgb(26 31 43 / var(--tw-bg-opacity, 1))}.hover\:bg-ink-800:hover{--tw-bg-opacity: 1;background-color:rgb(17 20 28 / var(--tw-bg-opacity, 1))}.hover\:text-ink-50:hover{--tw-text-opacity: 1;color:rgb(246 247 251 / var(--tw-text-opacity, 1))}.hover\:text-ink-50\/90:hover{color:#f6f7fbe6}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-accent-500\/60:focus{--tw-ring-color: rgb(122 162 255 / .6)}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:640px){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.harmonics{display:none;align-items:center;gap:var(--s-8);padding:var(--s-8) var(--s-12);border-top:1px solid var(--ink-750);background:var(--ink-880);flex-wrap:wrap}body[data-tier=avanzado][data-sound=on] .harmonics{display:flex}.harmonics .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-500);font-weight:600;margin-right:4px}.harm-toggle{display:inline-flex;align-items:center;gap:5px;padding:4px var(--s-8);border-radius:var(--r-5);cursor:pointer;background:var(--ink-850);border:1px solid var(--ink-700);font-family:var(--font-mono);font-size:11px;color:var(--text-200);transition:.12s}.harm-toggle .x{width:6px;height:6px;border-radius:50%;background:var(--accent-400);transition:.12s}.harm-toggle[data-on=false]{color:var(--text-600);border-style:dashed}.harm-toggle[data-on=false] .x{background:var(--text-700)}.harm-toggle:hover{border-color:var(--accent-400)}.harm-help{font-size:10.5px;color:var(--text-500);font-style:italic;margin-left:auto}.np-panel{background:linear-gradient(180deg,var(--ink-850) 0%,var(--ink-870) 100%);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:var(--s-24);position:relative;overflow:hidden}.np-panel:before{content:"";position:absolute;inset:-40% -40% auto auto;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 60%);pointer-events:none}.np-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;position:relative;z-index:1;gap:var(--s-12)}.np-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-500);font-weight:600;display:flex;align-items:center;gap:var(--s-8)}.np-pulse{width:6px;height:6px;border-radius:50%;background:var(--accent-400);box-shadow:0 0 0 0 var(--accent-glow);animation:np-pulse 1.6s ease-in-out infinite}@keyframes np-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-glow);opacity:1}50%{box-shadow:0 0 0 6px transparent;opacity:.7}}.np-time{font-family:var(--font-mono);font-size:11px;color:var(--text-500)}.np-grid{display:grid;grid-template-columns:1fr;gap:var(--s-24);position:relative;z-index:1}.np-main{min-width:0}.np-empty{color:var(--text-500);font-style:italic;font-size:13px;padding:var(--s-12) 0}.np-oos{border:1px solid var(--warn-amber-bd);background:var(--warn-amber-bg);border-radius:var(--r-10);padding:var(--s-16)}.np-oos-title{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--warn-amber);font-weight:600;margin-bottom:var(--s-8)}.np-oos-reason{color:var(--text-300);font-size:13px;line-height:1.5}.np-chord{font-family:var(--font-mono);font-size:64px;line-height:1;font-weight:600;letter-spacing:-.03em;color:var(--text-100);position:relative;z-index:1;display:flex;align-items:flex-start}.np-chord sup{font-size:.36em;vertical-align:super;color:var(--accent-300);margin-left:2px;margin-top:var(--s-8);font-weight:500}.np-voicing{margin-top:var(--s-12);position:relative;z-index:1;font-family:var(--font-mono);font-size:14px;color:var(--text-300);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.np-voicing .v-note{color:var(--text-200);padding:2px 6px;border-radius:var(--r-5);background:var(--ink-800);border:1px solid var(--ink-700)}.np-voicing .v-note.bass-root{color:var(--fn-tonic);border-color:#5bd49b66;background:#5bd49b1a;font-weight:600}.np-voicing .v-note.bass-inv{color:var(--warn-rose);border-color:#e89aa866;background:#e89aa81a;font-weight:600}.np-voicing .v-sep{color:var(--text-700)}.np-voicing .v-tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-500);margin-left:var(--s-8)}.np-meta{margin-top:var(--s-12);display:flex;align-items:center;gap:var(--s-12);position:relative;z-index:1;flex-wrap:wrap}.np-meta .roman-badge{font-family:var(--font-mono);font-size:18px;font-weight:600;padding:2px var(--s-12);border-radius:var(--r-7);letter-spacing:-.01em;border:1px solid}.np-meta .roman-badge[data-fn=tonic]{color:var(--fn-tonic);background:#5bd49b1a;border-color:#5bd49b40}.np-meta .roman-badge[data-fn=subdom]{color:var(--fn-subdom);background:#f2b66b1a;border-color:#f2b66b40}.np-meta .roman-badge[data-fn=dom]{color:var(--fn-dom);background:#eb6fa01a;border-color:#eb6fa040}.np-meta .roman-badge[data-fn=secondary]{color:var(--fn-secondary);background:var(--accent-soft);border-color:#7b5cff40}.np-meta .fn-label{font-size:13px;color:var(--text-300)}.np-meta .fn[data-fn=tonic]{color:var(--fn-tonic);font-weight:500}.np-meta .fn[data-fn=subdom]{color:var(--fn-subdom);font-weight:500}.np-meta .fn[data-fn=dom]{color:var(--fn-dom);font-weight:500}.np-meta .fn[data-fn=secondary]{color:var(--fn-secondary);font-weight:500}.np-meta .np-ambig{color:var(--accent-300);font-style:italic}.np-meta .np-borrowed{color:var(--warn-amber)}.piano-wrap{margin-top:var(--s-24);position:relative;z-index:1}.piano-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-8);gap:var(--s-8)}.piano-label .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-500);font-weight:600}.piano{position:relative;height:96px;background:var(--ink-900);border-radius:var(--r-9);border:1px solid var(--ink-700);padding:6px;display:flex;overflow:hidden}.piano .key{flex:1 1 0;background:linear-gradient(180deg,#f1f1f3,#d8d9df);border-radius:0 0 4px 4px;border:1px solid #c2c4cc;margin-right:1px;position:relative;transition:.18s}.piano .key:last-of-type{margin-right:0}.piano .key.lit{background:linear-gradient(180deg,var(--accent-300) 0%,var(--accent-500) 100%);box-shadow:0 0 12px var(--accent-glow),inset 0 1px #fff6;border-color:var(--accent-600)}.piano .key .note{position:absolute;bottom:5px;left:0;right:0;text-align:center;font-family:var(--font-mono);font-size:9px;color:#00000073;font-weight:600;line-height:1}.piano .key .note .o{display:block;font-size:8px;opacity:.55}.piano .key.lit .note{color:#fff}.piano .key.lit .note .o{opacity:.75}.piano .black-row{position:absolute;top:0;left:6px;right:6px;height:60%;pointer-events:none}.piano .bk{position:absolute;top:0;height:100%;background:#1a1a1f;border-radius:0 0 3px 3px;box-shadow:inset 0 -3px #0c0c10,0 1px 2px #0006;transition:.18s}.piano .bk.lit{background:linear-gradient(180deg,var(--accent-400) 0%,var(--accent-600) 100%);box-shadow:0 0 12px var(--accent-glow)}body[data-tier=simple] .np-panel .np-voicing,body[data-tier=simple] .np-panel .piano-wrap{display:none}.np-grid.has-aside{grid-template-columns:minmax(0,1fr) 240px}@media(max-width:880px){.np-grid.has-aside{grid-template-columns:1fr}}.np-aside{display:flex;flex-direction:column;gap:var(--s-16);min-width:0}.np-aside-block .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-500);font-weight:600;margin-bottom:var(--s-8);display:block}.section-map{display:flex;width:100%;height:56px;background:var(--ink-900);border:1px solid var(--ink-700);border-radius:var(--r-9);overflow:hidden;gap:1px}.sec-block{flex:0 0 auto;border:0;background:var(--ink-800);color:var(--text-300);font-family:inherit;text-align:left;padding:6px 8px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:background .18s,color .18s;min-width:28px;overflow:hidden}.sec-block:hover{background:var(--ink-700)}.sec-block.active{background:var(--accent-soft);color:var(--accent-200);box-shadow:inset 0 0 0 1px #7b5cff59}.sec-block .sec-name{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sec-block .sec-bars{font-family:var(--font-mono);font-size:9.5px;color:var(--text-700)}.sec-block.active .sec-bars{color:var(--accent-300)}.events-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;padding-right:4px}.ev-row{display:flex;align-items:center;gap:var(--s-8);padding:6px 8px;background:var(--ink-900);border:1px solid var(--ink-700);border-radius:var(--r-7);color:var(--text-300);font-family:inherit;text-align:left;cursor:pointer;transition:background .18s,border-color .18s}.ev-row:hover{background:var(--ink-800);border-color:var(--ink-600)}.ev-icon{width:22px;height:22px;flex:0 0 22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;background:var(--ink-700);color:var(--text-400)}.ev-icon.ev-key{color:var(--accent-300);background:var(--accent-soft)}.ev-icon.ev-meter{color:var(--fn-subdom);background:#f2b66b1f}.ev-icon.ev-tempo{color:var(--fn-dom);background:#eb6fa01f}.ev-icon.ev-feel{color:var(--fn-tonic);background:#5bd49b1f}.ev-text{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.ev-label{font-size:12px;font-weight:600;color:var(--text-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-detail{font-size:10.5px;color:var(--text-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-bar{font-family:var(--font-mono);font-size:10.5px;color:var(--text-500);flex:0 0 auto}body[data-tier=simple] .np-panel .np-aside{display:none}body[data-tier=simple] .np-grid.has-aside{grid-template-columns:1fr}.fiel-simple{display:none;align-items:center;gap:2px;padding:3px;background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-9);width:-moz-max-content;width:max-content;margin-bottom:var(--s-12)}.fiel-simple[data-show=true]{display:inline-flex}.fiel-simple .fs-btn{background:transparent;border:0;padding:4px var(--s-12);font-size:11.5px;color:var(--text-400);border-radius:var(--r-7);cursor:pointer;font-family:inherit;letter-spacing:.02em}.fiel-simple .fs-btn:hover{color:var(--text-100)}.fiel-simple .fs-btn[data-on=true]{background:var(--accent-500);color:#fff;font-weight:600}.reason-panel{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:var(--s-24)}.reason-panel .panel-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s-12);gap:var(--s-12);flex-wrap:wrap}.reason-panel .panel-title{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-500);font-weight:600}.reason-panel .panel-aside{font-size:11px;color:var(--text-600);font-family:var(--font-mono)}.reason-panel .reason-list{display:flex;flex-direction:column;gap:var(--s-8);transition:opacity .12s}.reason-panel .reason-empty{color:var(--text-500);font-style:italic;font-size:13px}.reason-panel .reason-oos{border:1px solid var(--warn-amber-bd);background:var(--warn-amber-bg);border-radius:var(--r-10);padding:var(--s-12) var(--s-16)}.reason-panel .reason-oos-label{font-family:var(--font-mono);font-size:11.5px;color:var(--warn-amber);font-weight:600;margin-bottom:var(--s-4);letter-spacing:.04em}.reason-panel .reason-oos-text{color:var(--text-300);font-size:13px;line-height:1.5}.reason-panel .rule{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:var(--s-12) var(--s-16);background:var(--ink-850);border:1px solid var(--ink-750);border-radius:var(--r-10);align-items:start;animation:reason-stagger-in .3s cubic-bezier(.2,.7,.2,1) both}.reason-panel .rule[data-tier=avanzado]{grid-template-columns:1fr}@keyframes reason-stagger-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.reason-panel .rule-bullet{width:6px;height:6px;border-radius:50%;background:var(--accent-400);margin-top:6px}.reason-panel .rule-head{display:flex;align-items:center;gap:var(--s-8);flex-wrap:wrap;color:var(--text-100);font-size:13.5px;font-weight:500;margin-bottom:var(--s-4)}.reason-panel .rule-label{flex:1 1 auto;min-width:0}.reason-panel .rule-chip{display:inline-flex;align-items:center;gap:var(--s-4);font-family:var(--font-mono);font-size:10.5px;color:var(--accent-300);background:var(--accent-soft);border:1px solid rgba(123,92,255,.25);padding:1px 6px;border-radius:var(--r-5);cursor:help;letter-spacing:.02em}.reason-panel .rule-chip:hover{border-color:#7b5cff80}.reason-panel .rule-evidence{color:var(--text-300);font-size:13px;line-height:1.5}body[data-tier=simple] [data-role=reasoning]{display:none}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#07070ca8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:90;display:none;align-items:center;justify-content:center}.modal-back.open{display:flex}.modal-back .modal{width:440px;max-width:calc(100vw - 32px);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-16);box-shadow:0 30px 80px -20px #000000b3;overflow:hidden;animation:modal-in .2s cubic-bezier(.2,.7,.2,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal-back .modal-head{padding:var(--s-16) var(--s-24);border-bottom:1px solid var(--ink-750);display:flex;align-items:center;justify-content:space-between;gap:var(--s-12)}.modal-back .modal-head .h{color:var(--text-100);font-size:14px;font-weight:600}.modal-back .modal-head .x{color:var(--text-500);background:transparent;border:0;padding:6px;border-radius:var(--r-7);cursor:pointer;font-size:14px;line-height:1}.modal-back .modal-head .x:hover{color:var(--text-100);background:var(--ink-800)}.modal-back .modal-body{padding:var(--s-24);display:flex;flex-direction:column;gap:var(--s-16)}.modal-back .modal-foot{padding:var(--s-12) var(--s-24);border-top:1px solid var(--ink-750);display:flex;justify-content:flex-end;gap:var(--s-8);background:var(--ink-880)}.modal-back .btn-ghost{background:transparent;border:1px solid var(--ink-700);color:var(--text-300);font-size:12.5px;padding:6px var(--s-12);border-radius:var(--r-7);cursor:pointer}.modal-back .btn-ghost:hover{color:var(--text-100);border-color:var(--ink-600)}.modal-back .btn-primary{background:var(--accent-500);border:1px solid var(--accent-400);color:#fff;font-size:12.5px;font-weight:600;padding:6px var(--s-12);border-radius:var(--r-7);cursor:pointer}.modal-back .btn-primary:hover{background:var(--accent-600)}.modal-back .field{display:flex;flex-direction:column;gap:6px}.modal-back .field .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-500);font-weight:600}.modal-back .field .row{display:flex;align-items:center;gap:var(--s-8)}.modal-back .input{background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-9);color:var(--text-100);font-family:var(--font-mono);font-size:14px;padding:var(--s-8) var(--s-12);width:100%;outline:none;transition:.12s}.modal-back .input:focus{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-glow)}.modal-back .input.compact{padding:6px var(--s-8);width:auto}.modal-back .note-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-4)}.modal-back .note-grid .nb{padding:6px var(--s-4);font-family:var(--font-mono);font-size:12px;border-radius:var(--r-7);background:var(--ink-800);color:var(--text-300);border:1px solid var(--ink-700);cursor:pointer;transition:.12s;text-align:center}.modal-back .note-grid .nb:hover{color:var(--text-100);border-color:var(--ink-600)}.modal-back .note-grid .nb[data-on=true]{background:var(--accent-500);color:#fff;border-color:var(--accent-400)}.modal-back .seg{display:inline-flex;padding:3px;background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-9);gap:2px}.modal-back .seg .seg-btn{background:transparent;border:0;padding:6px var(--s-12);font-size:12px;color:var(--text-400);border-radius:var(--r-7);cursor:pointer;font-family:inherit}.modal-back .seg .seg-btn:hover{color:var(--text-100)}.modal-back .seg .seg-btn[data-on=true]{background:var(--accent-500);color:#fff}.modal-back .slider-input{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--ink-700);border-radius:2px;outline:none}.modal-back .slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-400);cursor:pointer;box-shadow:0 0 0 3px var(--accent-glow)}.modal-back .slider-input::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:var(--accent-400);cursor:pointer;box-shadow:0 0 0 3px var(--accent-glow)}.modal-back .meter-pills{display:flex;flex-wrap:wrap;gap:6px}.modal-back .meter-pills .mp{padding:6px var(--s-12);border-radius:var(--r-7);font-family:var(--font-mono);font-size:12px;background:var(--ink-800);color:var(--text-300);border:1px solid var(--ink-700);cursor:pointer}.modal-back .meter-pills .mp[data-on=true]{background:var(--accent-500);color:#fff;border-color:var(--accent-400)}.app-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 4px var(--s-16);gap:var(--s-12);flex-wrap:wrap}.app-bar .brand{display:flex;align-items:center;gap:var(--s-12)}.app-bar .brand-mark{width:28px;height:28px;border-radius:var(--r-9);background:radial-gradient(120% 120% at 20% 10%,var(--accent-400) 0%,var(--accent-600) 60%,var(--accent-700) 100%);box-shadow:0 0 0 1px #ffffff0f inset,0 6px 18px -6px var(--accent-glow);display:grid;place-items:center;flex-shrink:0}.app-bar .brand-mark svg{width:16px;height:16px}.app-bar .brand-name{font-weight:600;color:var(--text-100);letter-spacing:-.01em;font-size:15px}.app-bar .brand-tag{color:var(--text-500);font-size:12px;margin-left:var(--s-4)}.app-bar-right{display:flex;align-items:center;gap:var(--s-12);flex-wrap:wrap}.tier-group{display:flex;padding:3px;gap:2px;background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-10)}.tier{display:inline-flex;align-items:center;padding:7px var(--s-16);font-size:12.5px;color:var(--text-500);border-radius:var(--r-7);font-weight:500;transition:.15s}.tier:hover{color:var(--text-200)}.tier[data-on=true]{background:var(--accent-500);color:#fff;font-weight:600;box-shadow:0 0 0 1px var(--accent-400) inset,0 4px 14px -6px var(--accent-glow)}.sub-switches{display:flex;gap:6px;align-items:center;overflow:hidden;max-width:0;opacity:0;transition:max-width .25s ease,opacity .15s}.sub-switches.show{max-width:280px;opacity:1}.sub-switches:before{content:"";width:1px;height:18px;background:var(--ink-700);margin-right:2px}.sub-pill{display:inline-flex;align-items:center;gap:7px;padding:6px var(--s-12);font-size:12px;border-radius:var(--r-9);color:var(--text-500);border:1px solid var(--ink-700);background:var(--ink-850);font-weight:500;transition:.15s;white-space:nowrap}.sub-pill:hover{color:var(--text-200);border-color:var(--ink-600)}.sub-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--text-700);transition:.15s}.sub-pill[data-on=true]{background:var(--accent-500);color:#fff;border-color:var(--accent-400);box-shadow:0 0 0 1px var(--accent-400) inset,0 4px 14px -6px var(--accent-glow);font-weight:600}.sub-pill[data-on=true] .dot{background:#fff}.app-bar .v-rule{width:1px;height:18px;background:var(--ink-700)}.app-bar .icon-btn{width:32px;height:32px;border-radius:var(--r-9);display:grid;place-items:center;color:var(--text-500);border:1px solid var(--ink-700);background:var(--ink-850);transition:.15s}.app-bar .icon-btn:hover{color:var(--text-100);background:var(--ink-800)}.app-bar .icon-btn[disabled],.app-bar .icon-btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.data-row{display:grid;grid-template-columns:1.05fr .78fr .78fr 1fr auto;gap:var(--s-12);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:6px;position:relative}.data-cell{position:relative;display:flex;align-items:center;gap:var(--s-16);padding:var(--s-16) 18px;border-radius:var(--r-10);cursor:pointer;transition:background .15s;min-height:64px;text-align:left;background:transparent;border:0;color:inherit;font-family:inherit}.data-cell:hover{background:var(--ink-800)}.data-cell:focus-visible{outline:2px solid var(--accent-400);outline-offset:2px}.data-cell+.data-cell:before{content:"";position:absolute;left:-7px;top:14px;bottom:14px;width:1px;background:var(--ink-700)}.data-cell .lbl{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:var(--text-500);font-weight:600}.data-cell .val{color:var(--text-100);font-size:22px;font-weight:600;letter-spacing:-.01em;line-height:1;margin-top:6px}.data-cell .sub{margin-top:5px;font-size:11.5px;color:var(--text-500)}.data-cell .glyph{flex:0 0 auto;width:36px;height:36px;border-radius:var(--r-9);background:var(--ink-800);display:grid;place-items:center;color:var(--accent-300);border:1px solid var(--ink-700)}.data-cell .body{flex:1;min-width:0}.data-cell .change-note{margin-top:6px;font-size:11px;color:var(--text-500);display:flex;align-items:center;gap:5px}.data-cell .change-note:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--text-600)}.data-cell .edit-hint{position:absolute;right:var(--s-16);top:var(--s-16);color:var(--text-700);opacity:0;transition:opacity .15s}.data-cell:hover .edit-hint{opacity:1}.mini-graph{margin-top:var(--s-8);height:20px;width:100%;position:relative;pointer-events:none}.mini-graph svg{width:100%;height:100%;display:block;overflow:visible}.data-cell[data-graph=hover] .mini-graph{opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .15s}.data-cell[data-graph=hover]:hover .mini-graph{opacity:1;transform:translateY(0)}.data-cell[data-graph=none] .mini-graph{display:none}.data-cell[data-graph=always] .mini-graph{opacity:1}body[data-tier=simple] .data-row .mini-graph{display:none}body[data-tier=intermedio] .data-cell .mini-graph{opacity:0;transform:translateY(-2px);transition:.15s}body[data-tier=intermedio] .data-cell:hover .mini-graph{opacity:1;transform:none}body[data-tier=avanzado] .data-cell .mini-graph{opacity:1}.badge-auto{display:inline-flex;align-items:center;gap:var(--s-4);padding:1px 6px;border-radius:var(--r-5);background:#5bd49b1a;color:var(--fn-tonic);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-mono)}.preset-cell.collapsed{flex:0 0 auto;padding:var(--s-8) var(--s-12);border-radius:var(--r-9);background:#7b5cff0f;border:1px solid rgba(123,92,255,.25);align-self:stretch;cursor:pointer;display:flex;align-items:center;gap:var(--s-8);transition:.15s;position:relative;color:inherit;font-family:inherit}.preset-cell.collapsed:hover{background:#7b5cff1f;border-color:#7b5cff66}.preset-cell .icon-sparkle{color:var(--accent-300);display:inline-flex}.preset-cell .label{font-size:12px;color:var(--text-200);white-space:nowrap}.preset-cell .label strong{color:var(--accent-300);font-weight:600}.wave-tools{display:flex;flex-direction:column;gap:6px;padding:6px;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14)}.tool-btn{width:36px;height:36px;border-radius:var(--r-9);display:grid;place-items:center;color:var(--text-500);transition:.15s;position:relative;background:transparent;border:0;cursor:pointer}.tool-btn:hover{color:var(--text-100);background:var(--ink-800)}.tool-btn[data-on=true]{color:var(--accent-300);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-500) inset}.tool-btn .kbd-tiny{position:absolute;right:-2px;bottom:-2px;font-size:9px;font-family:var(--font-mono);color:var(--text-700);background:var(--ink-900);padding:1px 3px;border-radius:3px;border:1px solid var(--ink-700)}.wave-tools .divider-h{height:1px;background:var(--ink-700);margin:var(--s-4) var(--s-4)}.separar-btn{width:36px;height:36px;border-radius:var(--r-9);display:grid;place-items:center;color:var(--text-500);transition:.15s;background:transparent;border:0;cursor:pointer}.separar-btn:hover{color:var(--accent-300);background:var(--accent-soft)}.wm-btn{display:none}body[data-tier=intermedio] .wm-btn{display:grid}.wm-btn[data-on=true]{color:var(--accent-300);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-500) inset}body[data-tier=simple] .separar-btn{display:none}.wave-stage{flex:1;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:0;overflow:hidden;min-width:0;display:flex;flex-direction:column}.wave-axis{height:22px;border-bottom:1px solid var(--ink-750);position:relative;background:var(--ink-850)}.axis-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--ink-700)}.axis-tick.major{border-left-color:var(--ink-600)}.axis-num{position:absolute;top:4px;font-family:var(--font-mono);font-size:10px;color:var(--text-500);transform:translate(4px)}.wave-canvas{position:relative;height:140px;overflow:hidden}.wave-canvas canvas{width:100%;height:100%;display:block}.beats-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.beat{position:absolute;top:0;bottom:0;width:1px;background:#ffffff0a;pointer-events:none}.beat.downbeat{background:#ffffff1a}.beat.strong{background:#7b5cff52;width:2px;box-shadow:0 0 6px #7b5cff2e}.playhead{position:absolute;top:-22px;bottom:0;width:1px;background:var(--accent-300);box-shadow:0 0 12px var(--accent-glow);pointer-events:none;z-index:3}.playhead:before{content:"";position:absolute;top:-3px;left:-4px;width:9px;height:9px;border-radius:50%;background:var(--accent-300);box-shadow:0 0 10px var(--accent-400)}.chord-timeline{position:relative;background:var(--ink-870);border:1px solid var(--ink-700);border-top:1px solid var(--ink-750);border-radius:var(--r-14);height:62px;display:flex;align-items:stretch;overflow:hidden}.chord-timeline.empty{align-items:center;justify-content:center;color:var(--text-500);font-size:12px;font-style:italic}.chord-seg{position:relative;border:0;border-right:1px solid var(--ink-750);padding:var(--s-8) var(--s-12);cursor:pointer;transition:background .15s;display:flex;flex-direction:column;justify-content:space-between;min-width:0;background:transparent;color:inherit;text-align:left;font-family:inherit}.chord-seg:last-child{border-right:0}.chord-seg:hover{background:var(--ink-800)}.chord-seg:focus-visible{outline:2px solid var(--accent-400);outline-offset:-2px}.chord-seg .name{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--text-200);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chord-seg .name sup{font-size:.65em;vertical-align:super}.chord-seg .roman{font-family:var(--font-mono);font-size:10.5px;color:var(--text-500);letter-spacing:.04em}.chord-seg.active{background:var(--accent-soft);box-shadow:inset 0 -2px 0 0 var(--accent-500)}.chord-seg.active .name{color:var(--accent-300)}.chord-seg.active .roman{color:var(--accent-400)}.chord-seg.preview{background:#7b5cff0f}.chord-seg.oos .name,.chord-seg.oos .roman{color:var(--warn-amber)}.chord-seg .ambig{margin-left:4px;color:var(--accent-400);font-size:11px}body[data-tier=simple] .chord-seg .roman{display:none}.pianoroll-stage{display:flex;flex-direction:column;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);overflow:hidden;min-width:0;flex:1}.pr-toolbar{display:flex;align-items:center;gap:var(--s-12);padding:var(--s-8) var(--s-12);border-bottom:1px solid var(--ink-750);background:var(--ink-880);flex-wrap:wrap}.pr-toolbar .pr-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-500);font-weight:600}.pr-toolbar .pr-title strong{color:var(--accent-300);font-weight:600}.pr-toolbar .pr-zoom{display:inline-flex;align-items:center;gap:var(--s-4);margin-left:auto;font-size:11px;color:var(--text-500)}.pr-toolbar .pr-zoom button{width:22px;height:22px;border:1px solid var(--ink-700);background:var(--ink-850);border-radius:var(--r-5);color:var(--text-300);cursor:pointer;font-size:14px;line-height:1}.pr-toolbar .pr-zoom button:hover{background:var(--ink-800);color:var(--text-100)}.pr-toolbar .pr-zoom button[disabled]{opacity:.4;cursor:not-allowed}.pr-toolbar .pr-zoom .zoom-val{font-family:var(--font-mono);font-size:10.5px;min-width:38px;text-align:center;color:var(--text-300)}.pr-body{display:flex;flex-direction:column}.pr-canvas{position:relative;height:240px;overflow:hidden;min-width:0;background:linear-gradient(180deg,var(--ink-880) 0%,var(--ink-900) 100%)}.pr-grid-svg,.pr-notes-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.pr-grid-svg{pointer-events:none;opacity:.55}.pr-notes-svg{pointer-events:none}.pr-playline{position:absolute;background:var(--accent-300);box-shadow:0 0 12px var(--accent-glow);z-index:6;pointer-events:none;left:0;right:0;bottom:0;height:2px}.pr-playline:after{content:"now";position:absolute;right:8px;bottom:4px;font-family:var(--font-mono);font-size:9px;color:var(--accent-300);letter-spacing:.08em;text-transform:uppercase}.pr-keyboard{position:relative;background:var(--ink-900);display:flex;flex-direction:row;height:48px;border-top:1px solid var(--ink-750);order:99}.pr-key{flex:1;background:#e9eaf1;margin-right:1px;border-radius:0 0 3px 3px;position:relative;transition:.12s;min-width:0}.pr-key:last-child{margin-right:0}.pr-key.lit{background:linear-gradient(180deg,var(--accent-300),var(--accent-500));box-shadow:inset 0 0 14px var(--accent-glow)}.pr-key .lbl{position:absolute;pointer-events:none;font-family:var(--font-mono);font-size:8.5px;color:#00000073;bottom:3px;left:0;right:0;text-align:center}.pr-key.lit .lbl{color:#fff}.pr-bk-row{position:absolute;pointer-events:none;top:0;left:0;right:0;height:30px}.pr-bk{position:absolute;background:#1a1a1f;box-shadow:inset 0 -2px #0c0c10,0 1px 1px #0006;transition:.12s;top:0;height:100%;border-radius:0 0 2px 2px}.pr-bk.lit{background:linear-gradient(180deg,var(--accent-400),var(--accent-600))}body[data-wavemode=pr] .pianoroll-stage{display:flex}body[data-wavemode=pr] [data-slot=wave-stage],body[data-wavemode=wave] .pianoroll-stage{display:none}body[data-wavemode=wave] [data-slot=wave-stage]{display:block}.pr-toolbar .pr-view{display:inline-flex;align-items:center;background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-7);padding:2px;gap:2px}.pr-toolbar .pr-view button{font-size:10.5px;padding:4px 10px;color:var(--text-400);background:transparent;border:0;border-radius:var(--r-5);cursor:pointer;transition:.12s}.pr-toolbar .pr-view button:hover{color:var(--text-100);background:var(--ink-800)}.pr-toolbar .pr-view button[data-on=true]{background:var(--accent-500);color:#fff;box-shadow:0 0 0 1px var(--accent-400) inset}.pr-keyboard-vert{display:none;position:relative;width:64px;background:var(--ink-900);border-right:1px solid var(--ink-750);flex-direction:column-reverse;flex-shrink:0;height:240px}.pr-key-v{flex:1 1 0;background:#e9eaf1;border-bottom:1px solid #c2c4cc;position:relative;min-height:0}.pr-key-v:last-child{border-bottom:0}.pr-key-v.lit{background:linear-gradient(90deg,var(--accent-300),var(--accent-500));box-shadow:inset 0 0 14px var(--accent-glow)}.pr-key-v .lbl-v{position:absolute;font-family:var(--font-mono);font-size:8.5px;color:#0000008c;right:4px;bottom:1px;pointer-events:none}.pr-bk-col{position:absolute;pointer-events:none;top:0;bottom:0;left:0;width:60%}.pr-bk-v{position:absolute;background:#1a1a1f;box-shadow:inset -2px 0 #0c0c10,1px 0 1px #0006;left:0;width:100%;border-radius:0 2px 2px 0;transition:.12s}.pr-bk-v.lit{background:linear-gradient(90deg,var(--accent-400),var(--accent-600))}.pianoroll-stage[data-view=melodyne] .pr-body{flex-direction:row}.pianoroll-stage[data-view=melodyne] .pr-keyboard-vert{display:flex}.pianoroll-stage[data-view=melodyne] .pr-keyboard{display:none}.pianoroll-stage[data-view=melodyne] .pr-canvas{flex:1 1 auto;min-width:0}.pianoroll-stage[data-view=melodyne] .pr-playline:after{content:""}.pianoroll-stage[data-view=melodyne] .pr-playline{font-size:0}.pr-spectrum{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .2s;mix-blend-mode:screen}.pr-spectrum [data-role=bar]{fill:var(--accent-300);opacity:.55}body[data-tier=avanzado][data-sound=on] .pr-spectrum{opacity:.7}.pr-melodyne-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .2s}body[data-tier=avanzado][data-sound=on] .pr-melodyne-svg{opacity:1}.stems-bar{display:flex;align-items:center;gap:var(--s-8);margin-top:var(--s-12);padding:var(--s-8) var(--s-12);background:var(--ink-870);border:1px solid var(--ink-750);border-radius:var(--r-10) var(--r-10) 0 0;border-bottom:none;flex-wrap:wrap}.stems-divider{width:1px;height:22px;background:var(--ink-750);margin:0 var(--s-4)}.stem-tab{display:flex;align-items:flex-start;gap:var(--s-8);padding:6px var(--s-12);border-radius:var(--r-7);background:transparent;border:1px solid transparent;color:var(--text-300);font-size:12px;cursor:pointer;transition:.15s;position:relative;font-family:inherit}.stem-tab:hover{background:var(--ink-800);color:var(--text-100)}.stem-tab[data-on=true]{background:#7b5cff1a;border-color:#7b5cff59;color:var(--text-100)}.stem-tab[data-on=true][data-stem=vocals]{background:#f472b61a;border-color:#f472b666}.stem-tab[data-on=true][data-stem=drums]{background:#fbbf241a;border-color:#fbbf2466}.stem-tab[data-on=true][data-stem=bass]{background:#34d3991a;border-color:#34d39966}.stem-tab[data-on=true][data-stem=other]{background:#67e8f91a;border-color:#67e8f966}.stem-tab .stem-tab-info{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.stem-tab .stem-tab-row{display:flex;align-items:center;gap:7px}.stem-tab .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-400)}.stem-tab[data-stem=vocals] .dot{background:var(--stem-vocals)}.stem-tab[data-stem=drums] .dot{background:var(--stem-drums)}.stem-tab[data-stem=bass] .dot{background:var(--stem-bass)}.stem-tab[data-stem=other] .dot{background:var(--stem-other)}.stem-tab .vu{width:24px;height:6px;border-radius:2px;background:var(--ink-750)}.multitrack-toggle{margin-left:auto;display:flex;align-items:center;gap:var(--s-8);color:var(--text-400);font-size:11px;cursor:pointer;background:transparent;border:0;padding:6px;font-family:inherit}.multitrack-toggle .switch{width:30px;height:16px;border-radius:var(--r-9);background:var(--ink-750);position:relative;transition:.15s}.multitrack-toggle .switch:after{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--text-400);transition:.15s}.multitrack-toggle[data-on=true] .switch{background:var(--accent-500)}.multitrack-toggle[data-on=true] .switch:after{left:16px;background:#fff}.stem-fader{display:flex;flex-direction:column;align-items:center;gap:3px;margin-left:var(--s-8);padding-left:var(--s-8);border-left:1px solid var(--ink-750)}.stem-fader .fader-track{position:relative;width:6px;height:48px;background:var(--ink-800);border:1px solid var(--ink-700);border-radius:3px;cursor:pointer}.stem-fader .fader-track:before{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:1px;background:var(--text-700)}.stem-fader .fader-fill{position:absolute;left:0;right:0;bottom:50%;background:linear-gradient(180deg,var(--accent-300),var(--accent-500));border-radius:0;transition:.05s}.stem-fader .fader-fill[data-neg=true]{background:linear-gradient(180deg,var(--ink-600),var(--ink-700))}.stem-fader .fader-knob{position:absolute;left:50%;width:14px;height:8px;background:#fff;border-radius:2px;transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--accent-400),0 4px 10px -4px var(--accent-glow);pointer-events:none}.stem-fader .fader-val{font-family:var(--font-mono);font-size:9.5px;color:var(--text-500);letter-spacing:-.02em;min-width:42px;text-align:center}.stem-fader .fader-val[data-zero=true]{color:var(--text-300)}.stem-fader .fader-val[data-mute=true]{color:var(--warn-rose)}.stem-tab[data-stem=vocals] .fader-fill:not([data-neg=true]){background:linear-gradient(180deg,#f9a8d4,var(--stem-vocals))}.stem-tab[data-stem=drums] .fader-fill:not([data-neg=true]){background:linear-gradient(180deg,#fde68a,var(--stem-drums))}.stem-tab[data-stem=bass] .fader-fill:not([data-neg=true]){background:linear-gradient(180deg,#6ee7b7,var(--stem-bass))}.stem-tab[data-stem=other] .fader-fill:not([data-neg=true]){background:linear-gradient(180deg,#a5f3fc,var(--stem-other))}.stems-banner{display:flex;align-items:center;gap:var(--s-12);margin-top:var(--s-12);padding:var(--s-12) 18px;background:linear-gradient(90deg,#7b5cff1a,#7b5cff0a);border:1px solid rgba(123,92,255,.35);border-radius:var(--r-10)}.stems-banner .spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(123,92,255,.25);border-top-color:var(--accent-300);animation:stems-spin 1s linear infinite;flex-shrink:0}@keyframes stems-spin{to{transform:rotate(360deg)}}.stems-banner .info{flex:1}.stems-banner .info .h{color:var(--text-100);font-size:13px}.stems-banner .info .h .num{color:var(--accent-300);font-family:var(--font-mono)}.stems-banner .info .sub{color:var(--text-500);font-size:11px;margin-top:3px}.stems-banner .progress{flex:0 0 200px;height:6px;border-radius:3px;background:var(--ink-750);overflow:hidden}.stems-banner .progress .fill{height:100%;background:linear-gradient(90deg,var(--accent-500),var(--accent-300));width:0%;transition:width .3s}.multi-stage{display:flex;flex-direction:column;background:var(--ink-870);border:1px solid var(--ink-750);border-top:none;border-radius:0 0 var(--r-10) var(--r-10);overflow:hidden}.mt-track{height:80px;border-bottom:1px solid var(--ink-800);position:relative;display:flex;align-items:stretch}.mt-track:last-child{border-bottom:none}.mt-track .mt-label{width:84px;flex-shrink:0;padding:var(--s-8) var(--s-12);border-right:1px solid var(--ink-800);display:flex;flex-direction:column;gap:var(--s-4);background:var(--ink-880)}.mt-track .mt-label .name{font-size:11px;color:var(--text-200);display:flex;align-items:center;gap:5px}.mt-track .mt-label .name .dot{width:7px;height:7px;border-radius:50%}.mt-track[data-stem=vocals] .mt-label .name .dot{background:var(--stem-vocals)}.mt-track[data-stem=drums] .mt-label .name .dot{background:var(--stem-drums)}.mt-track[data-stem=bass] .mt-label .name .dot{background:var(--stem-bass)}.mt-track[data-stem=other] .mt-label .name .dot{background:var(--stem-other)}.mt-track .mt-wave{flex:1;position:relative;color:var(--accent-400)}.mt-track[data-stem=vocals] .mt-wave{color:var(--stem-vocals)}.mt-track[data-stem=drums] .mt-wave{color:var(--stem-drums)}.mt-track[data-stem=bass] .mt-wave{color:var(--stem-bass)}.mt-track[data-stem=other] .mt-wave{color:var(--stem-other)}.mt-track .mt-wave svg{width:100%;height:100%;display:block}.mt-track[data-on=true] .mt-label{background:var(--ink-850)}.mt-track[data-on=true] .mt-wave{opacity:1}.mt-track[data-on=false] .mt-wave{opacity:.55}body[data-tier=simple] .stems-bar,body[data-tier=simple] .stems-banner,body[data-tier=simple] .multi-stage{display:none}.analysis-on{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:var(--s-8) var(--s-12);background:var(--ink-870);border:1px solid var(--ink-750);border-radius:var(--r-9)}.analysis-on .ao-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-500);font-weight:600;margin-right:var(--s-4)}.analysis-on .ao-btn{background:var(--ink-800);border:1px solid var(--ink-700);padding:4px var(--s-12);font-size:11.5px;color:var(--text-300);border-radius:var(--r-7);cursor:pointer;font-family:inherit;letter-spacing:-.01em;transition:.12s}.analysis-on .ao-btn:hover{color:var(--text-100);border-color:var(--ink-600)}.analysis-on .ao-btn[data-on=true]{background:#7b5cff24;color:var(--accent-300);border-color:#7b5cff5c;font-weight:600}body:not([data-stems=active]) .analysis-on{display:none}.transport{position:fixed;left:0;right:0;bottom:0;height:72px;background:var(--ink-870);border-top:1px solid var(--ink-700);display:flex;align-items:center;padding:0 var(--s-32);gap:var(--s-24);z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.transport[data-enabled=false]{opacity:.55;pointer-events:none}body{padding-bottom:88px}.tr-controls{display:flex;align-items:center;gap:6px}.tr-btn{width:38px;height:38px;border:0;border-radius:var(--r-9);background:transparent;color:var(--text-300);display:grid;place-items:center;transition:.15s;cursor:pointer}.tr-btn:hover{color:var(--text-100);background:var(--ink-800)}.tr-btn:disabled{cursor:not-allowed;opacity:.6}.tr-btn.primary{width:46px;height:46px;background:var(--accent-500);color:#fff;box-shadow:0 6px 20px -6px var(--accent-glow),0 0 0 1px var(--accent-400) inset}.tr-btn.primary:hover{background:var(--accent-400)}.tr-btn.primary:disabled{background:var(--ink-700);box-shadow:none}.tr-time{font-family:var(--font-mono);font-size:13px;color:var(--text-300);min-width:108px;display:flex;gap:4px}.tr-time .now{color:var(--text-100)}.tr-time .sep{color:var(--text-700)}.tr-slider{flex:1;height:4px;border-radius:2px;background:var(--ink-700);position:relative;cursor:pointer;outline:none}.tr-slider:focus-visible{box-shadow:0 0 0 2px var(--accent-glow)}.tr-slider .fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent-500),var(--accent-400));border-radius:2px;pointer-events:none}.tr-slider .knob{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--accent-glow);pointer-events:none}.tr-divider{width:1px;height:32px;background:var(--ink-700)}.tr-speed{display:flex;align-items:center;gap:2px;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-7);padding:2px;flex-shrink:0}.tr-speed .sp{padding:4px 8px;font-family:var(--font-mono);font-size:10px;color:var(--text-400);background:transparent;border:0;border-radius:var(--r-5);cursor:pointer;transition:.12s}.tr-speed .sp:hover{color:var(--text-100);background:var(--ink-800)}.tr-speed .sp[data-on=true]{background:var(--accent-500);color:#fff;box-shadow:0 0 0 1px var(--accent-400) inset}.tr-speed .sp:disabled{cursor:not-allowed;opacity:.6}.status-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-12);padding:var(--s-12) var(--s-16);border-radius:var(--r-10);border:1px solid var(--ink-700);background:var(--ink-870);font-size:13px;color:var(--text-200);margin:var(--s-8) 0 var(--s-16) 0}.status-banner[data-kind=decoding],.status-banner[data-kind=analyzing]{border-color:#7b5cff59;background:var(--accent-soft);color:var(--accent-200)}.status-banner[data-kind=error]{border-color:var(--warn-rose-bd, rgba(232, 154, 168, .55));background:var(--warn-rose-bg, rgba(232, 154, 168, .12));color:var(--warn-rose, #e89aa8)}.sb-content{display:flex;align-items:center;gap:var(--s-12);min-width:0}.sb-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60ch}.sb-spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--accent-300);border-right-color:transparent;animation:sb-spin .8s linear infinite;display:inline-block}@keyframes sb-spin{to{transform:rotate(360deg)}}.sb-dismiss{border:0;background:transparent;color:inherit;font-size:18px;line-height:1;padding:0 var(--s-8);cursor:pointer;border-radius:var(--r-5);opacity:.7}.sb-dismiss:hover{opacity:1;background:#ffffff0d}.toast-stack{position:fixed;z-index:120;display:flex;flex-direction:column;gap:var(--s-8);pointer-events:none;width:min(380px,calc(100vw - 32px))}.toast-stack[data-pos=bottom-right]{right:var(--s-24);bottom:var(--s-24);align-items:flex-end}.toast-stack[data-pos=bottom-center]{left:50%;bottom:var(--s-24);transform:translate(-50%);align-items:center}.toast-stack[data-pos=top-right]{right:var(--s-24);top:var(--s-24);align-items:flex-end;flex-direction:column-reverse}.toast{pointer-events:auto;width:100%;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-12, 12px);padding:var(--s-12) var(--s-16);display:flex;align-items:flex-start;gap:var(--s-12);box-shadow:0 18px 40px -16px #0000008c,0 4px 14px -6px #00000059;animation:toast-in .25s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.toast.leaving{animation:toast-out .22s cubic-bezier(.4,0,.7,1) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.98)}}.toast-ico{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;margin-top:1px}.toast-body{flex:1;min-width:0}.toast-msg{color:var(--text-100);font-size:13.5px;font-weight:500;line-height:1.4}.toast-sub{color:var(--text-500);font-size:11.5px;margin-top:2px;line-height:1.4}.toast-action{margin-top:var(--s-8);padding:5px 12px;border-radius:var(--r-7);font-size:11.5px;font-weight:500;background:transparent;border:1px solid var(--ink-700);color:var(--text-200);cursor:pointer;transition:.12s}.toast-action:hover{background:var(--ink-800)}.toast-close{flex-shrink:0;padding:6px;margin:-4px -6px -4px 0;color:var(--text-600);border-radius:var(--r-5);cursor:pointer;background:transparent;border:0}.toast-close:hover{color:var(--text-200);background:var(--ink-800)}.toast-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:#ffffff0a}.toast-progress-fill{height:100%;width:100%;transform-origin:left;animation:toast-progress-tick linear forwards}@keyframes toast-progress-tick{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-success{border-left:3px solid var(--good-green)}.toast-success .toast-ico{background:var(--good-green-bg);color:var(--good-green)}.toast-success .toast-progress-fill{background:linear-gradient(90deg,var(--good-green),rgba(91,212,155,.3))}.toast-success .toast-action{color:var(--good-green);border-color:#5bd49b52}.toast-info{border-left:3px solid var(--accent-400)}.toast-info .toast-ico{background:var(--accent-soft);color:var(--accent-300)}.toast-info .toast-progress-fill{background:linear-gradient(90deg,var(--accent-400),rgba(123,92,255,.3))}.toast-info .toast-action{color:var(--accent-300);border-color:#7b5cff52}.toast-info .toast-spin{animation:toast-spin 1.4s linear infinite}@keyframes toast-spin{to{transform:rotate(360deg)}}.toast-warning{border-left:3px solid var(--warn-amber)}.toast-warning .toast-ico{background:var(--warn-amber-bg);color:var(--warn-amber)}.toast-warning .toast-progress-fill{background:linear-gradient(90deg,var(--warn-amber),rgba(240,183,100,.3))}.toast-warning .toast-action{color:var(--warn-amber);border-color:var(--warn-amber-bd)}.toast-error{border-left:3px solid var(--warn-rose)}.toast-error .toast-ico{background:var(--warn-rose-bg);color:var(--warn-rose)}.toast-error .toast-action{color:var(--warn-rose);border-color:var(--warn-rose-bd)}.library-screen{max-width:1408px;margin:0 auto;padding:var(--s-32);color:var(--text-200)}.lib-hero{display:flex;gap:var(--s-24);align-items:flex-end;justify-content:space-between;margin-bottom:var(--s-32);flex-wrap:wrap}.lib-hero-title{font-size:28px;font-weight:600;color:var(--text-100);letter-spacing:-.015em;margin:0}.lib-hero-sub{color:var(--text-500);font-size:13.5px;margin-top:6px}.lib-hero-actions{display:flex;gap:var(--s-12);align-items:center;flex-wrap:wrap}.lib-btn-primary,.lib-btn-ghost{display:inline-flex;align-items:center;gap:var(--s-8);padding:9px 16px;border-radius:var(--r-9);font-weight:600;font-size:12.5px;transition:.15s;cursor:pointer}.lib-btn-primary{background:var(--accent-500);color:#fff;border:1px solid var(--accent-400);box-shadow:0 4px 14px -6px var(--accent-glow)}.lib-btn-primary:hover{background:var(--accent-400)}.lib-btn-ghost{background:transparent;color:var(--text-300);border:1px solid var(--ink-700);font-weight:500}.lib-btn-ghost:hover{color:var(--text-100);border-color:var(--ink-600)}.lib-filters{display:grid;grid-template-columns:1fr auto auto;gap:var(--s-12);margin-bottom:var(--s-24);align-items:center}.lib-search{position:relative;display:flex;align-items:center;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-10);padding:0 var(--s-16);height:42px;transition:.15s}.lib-search:focus-within{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-glow)}.lib-search svg{color:var(--text-500);flex-shrink:0}.lib-search input{flex:1;border:0;outline:0;background:transparent;color:var(--text-100);font-family:var(--sans);font-size:13.5px;padding:0 var(--s-12)}.lib-search input::-moz-placeholder{color:var(--text-600)}.lib-search input::placeholder{color:var(--text-600)}.filter-pills{display:flex;gap:6px;padding:3px;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-10)}.filter-pill{padding:7px 14px;font-size:12px;color:var(--text-400);border-radius:var(--r-7);font-weight:500;transition:.15s;background:transparent;border:0;cursor:pointer}.filter-pill:hover{color:var(--text-100)}.filter-pill[data-on=true]{background:var(--accent-500);color:#fff;font-weight:600}.lib-sort{height:42px;padding:0 12px;border-radius:var(--r-9);background:var(--ink-870);border:1px solid var(--ink-700);color:var(--text-200);font-family:var(--sans);font-size:12.5px;cursor:pointer}.lib-section{margin-bottom:var(--s-40)}.lib-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s-16);gap:var(--s-12)}.lib-section-title{font-size:13px;font-weight:600;color:var(--text-300);text-transform:uppercase;letter-spacing:.12em;margin:0}.lib-section-count{font-family:var(--mono);font-size:11px;color:var(--text-600)}.tracks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-16)}.track-card{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);overflow:hidden;cursor:pointer;transition:.18s;display:flex;flex-direction:column;text-align:left;color:inherit}.track-card:hover,.track-card:focus-visible{border-color:var(--accent-500);transform:translateY(-2px);box-shadow:0 12px 32px -12px var(--accent-glow);outline:none}.track-art{aspect-ratio:1.6 / 1;position:relative;overflow:hidden;background:var(--ink-850)}.track-wave{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.track-overlay{position:absolute;inset:auto 0 0 0;padding:var(--s-12) var(--s-16);background:linear-gradient(180deg,transparent,rgba(7,7,12,.85));display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-12)}.track-key-info{font-family:var(--mono);font-size:11px;color:var(--text-200)}.track-key{color:var(--accent-300)}.track-sep{color:var(--text-500);margin:0 6px}.track-status{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:var(--r-5);font-size:10.5px;font-weight:600;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}.track-status-done{background:var(--good-green-bg);color:var(--good-green)}.track-status-processing{background:var(--accent-soft);color:var(--accent-300)}.track-status-failed{background:var(--warn-rose-bg);color:var(--warn-rose)}.track-body{padding:var(--s-16);display:flex;flex-direction:column;gap:var(--s-8);flex:1}.track-title{font-size:14px;font-weight:600;color:var(--text-100);letter-spacing:-.005em;line-height:1.3;word-break:break-word}.track-meta{font-size:12px;color:var(--text-500)}.track-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--s-12) var(--s-16);border-top:1px solid var(--ink-800);background:var(--ink-880);font-size:11px;color:var(--text-500)}.track-duration{color:var(--text-300);font-family:var(--mono)}.track-id{color:var(--text-600)}.upload-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-12);padding:var(--s-32);border:1.5px dashed var(--ink-600);border-radius:var(--r-14);background:var(--ink-870);transition:.18s;cursor:pointer;min-height:100%;text-align:center}.upload-tile:hover{border-color:var(--accent-400);background:#7b5cff0a}.upload-tile-ico{width:48px;height:48px;border-radius:var(--r-10);background:var(--accent-soft);color:var(--accent-300);display:grid;place-items:center}.upload-tile-h{font-size:14px;color:var(--text-100);font-weight:600}.upload-tile-sub{font-size:11.5px;color:var(--text-500);text-align:center;max-width:200px}.empty-library{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--s-64) var(--s-32);background:var(--ink-870);border:1px dashed var(--ink-700);border-radius:var(--r-16);gap:var(--s-16)}.empty-library-icon{width:72px;height:72px;border-radius:var(--r-16);background:var(--accent-soft);color:var(--accent-300);display:grid;place-items:center}.empty-library-title{font-size:20px;color:var(--text-100);margin:0}.empty-library-sub{font-size:13.5px;color:var(--text-500);max-width:480px;line-height:1.55;margin:0}.empty-library-cta{display:inline-flex;align-items:center;gap:var(--s-8);padding:10px 18px;border-radius:var(--r-9);background:var(--accent-500);color:#fff;font-weight:600;font-size:12.5px;cursor:pointer;border:1px solid var(--accent-400);margin-top:var(--s-8)}.empty-library-cta:hover{background:var(--accent-400)}.lib-topbar{display:flex;align-items:center;justify-content:space-between;padding:18px var(--s-32);border-bottom:1px solid var(--ink-800);background:var(--ink-950);position:sticky;top:0;z-index:30;margin-bottom:var(--s-24)}.lib-topbar-brand{display:flex;align-items:center;gap:var(--s-12);cursor:pointer;background:transparent;border:0;color:inherit}.lib-topbar-mark{width:28px;height:28px;border-radius:var(--r-9);background:radial-gradient(120% 120% at 20% 10%,var(--accent-400) 0%,var(--accent-600) 60%,var(--accent-700) 100%);display:grid;place-items:center;flex-shrink:0}.lib-topbar-name{font-weight:600;color:var(--text-100);letter-spacing:-.01em;font-size:15px}.lib-topbar-tag{color:var(--text-500);font-size:12px}@media(max-width:767px){.library-screen{padding:18px 16px}.lib-filters{grid-template-columns:1fr}.lib-hero-title{font-size:22px}.filter-pills{overflow-x:auto}}.ob-screen{background:radial-gradient(circle at 20% 10%,rgba(123,92,255,.12),transparent 50%),radial-gradient(circle at 80% 90%,rgba(91,212,155,.08),transparent 50%),var(--ink-950);min-height:100vh;color:var(--text-200)}.ob-wrap{max-width:840px;margin:0 auto;padding:32px 24px 64px}.ob-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-32)}.ob-brand{display:flex;align-items:center;gap:var(--s-12);background:transparent;border:0;color:inherit;cursor:pointer}.ob-brand-mark{width:28px;height:28px;border-radius:var(--r-9);background:radial-gradient(120% 120% at 20% 10%,var(--accent-400) 0%,var(--accent-600) 60%,var(--accent-700) 100%);display:grid;place-items:center;flex-shrink:0}.ob-brand-name{font-weight:600;color:var(--text-100);font-size:15px}.ob-skip{font-size:12.5px;color:var(--text-500);padding:6px 10px;border-radius:var(--r-7);background:transparent;border:0;cursor:pointer}.ob-skip:hover{color:var(--text-200);background:var(--ink-870)}.ob-stepper{display:flex;align-items:center;gap:0;margin-bottom:var(--s-32);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:var(--s-12) var(--s-16)}.ob-step{flex:1;display:flex;align-items:center;gap:var(--s-8);min-width:0}.ob-step-dot{width:24px;height:24px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--ink-700);background:var(--ink-850);display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--text-500);font-weight:600}.ob-step.active .ob-step-dot{border-color:var(--accent-500);background:var(--accent-500);color:#fff;box-shadow:0 0 0 3px #7b5cff2e}.ob-step.done .ob-step-dot{border-color:var(--good-green);background:var(--good-green);color:#fff}.ob-step-lbl{font-size:12px;color:var(--text-500);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ob-step.active .ob-step-lbl{color:var(--text-100);font-weight:600}.ob-step.done .ob-step-lbl{color:var(--text-300)}.ob-step-conn{flex:0 0 32px;height:1px;background:var(--ink-700);margin:0 6px}.ob-step-conn.done{background:var(--good-green)}.ob-card{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-16);padding:var(--s-32);display:none}.ob-card.show{display:block;animation:obFadeUp .3s ease both}@keyframes obFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ob-card h2{font-size:24px;font-weight:600;color:var(--text-100);margin:0 0 8px;letter-spacing:-.01em}.ob-card .ob-sub{color:var(--text-400);font-size:14px;line-height:1.55;max-width:60ch;margin:0 0 var(--s-24)}.ob-welcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-12);margin-top:var(--s-16)}.ob-feature{padding:var(--s-16);background:var(--ink-850);border:1px solid var(--ink-750);border-radius:var(--r-10)}.ob-feature-h{color:var(--text-100);font-weight:600;font-size:13px;margin-bottom:6px}.ob-feature-d{color:var(--text-500);font-size:11.5px;line-height:1.45}.ob-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-12)}.ob-grid-4{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-12)}.ob-option{padding:var(--s-16);background:var(--ink-850);border:1px solid var(--ink-750);border-radius:var(--r-10);cursor:pointer;transition:.15s;text-align:left;display:flex;flex-direction:column;gap:var(--s-8);color:inherit}.ob-option:hover{border-color:var(--accent-500);transform:translateY(-2px)}.ob-option[data-on=true]{background:linear-gradient(135deg,#7b5cff1a,#7b5cff05);border-color:var(--accent-500);box-shadow:0 0 0 1px var(--accent-500) inset}.ob-option-name{color:var(--text-100);font-weight:600;font-size:14px}.ob-option-desc{color:var(--text-500);font-size:12px;line-height:1.45}.ob-option-ex{font-family:var(--mono);font-size:10.5px;color:var(--text-600);margin-top:4px}.ob-demo-zone{border:2px dashed var(--ink-600);border-radius:var(--r-14);padding:var(--s-32);text-align:center;background:var(--ink-880);display:flex;flex-direction:column;align-items:center;gap:var(--s-12);transition:.15s}.ob-demo-icon{width:64px;height:64px;border-radius:50%;background:var(--accent-soft);color:var(--accent-300);display:grid;place-items:center}.ob-demo-zone h3{font-size:16px;color:var(--text-100);font-weight:600;margin:0}.ob-demo-zone-sub{font-size:12px;color:var(--text-500)}.ob-demo-actions{display:flex;gap:var(--s-12);flex-wrap:wrap;justify-content:center;margin-top:var(--s-16)}.ob-or-divider{display:flex;align-items:center;gap:var(--s-12);margin:var(--s-16) 0;color:var(--text-600);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.ob-or-divider:before,.ob-or-divider:after{content:"";flex:1;height:1px;background:var(--ink-800)}.ob-nav{display:flex;justify-content:space-between;align-items:center;margin-top:var(--s-24);gap:var(--s-12)}.ob-back{color:var(--text-400);padding:8px 14px;border-radius:var(--r-9);font-size:13px;background:transparent;border:0;cursor:pointer}.ob-back:hover{color:var(--text-100);background:var(--ink-870)}.ob-btn-primary,.ob-btn-secondary{display:inline-flex;align-items:center;gap:var(--s-8);padding:9px 16px;border-radius:var(--r-9);font-weight:600;font-size:12.5px;cursor:pointer;transition:.15s}.ob-btn-primary{background:var(--accent-500);color:#fff;border:1px solid var(--accent-400);box-shadow:0 4px 14px -6px var(--accent-glow)}.ob-btn-primary:hover{background:var(--accent-400)}.ob-btn-primary:disabled{opacity:.5;cursor:wait}.ob-btn-secondary{background:var(--ink-850);color:var(--text-200);border:1px solid var(--ink-700)}.ob-btn-secondary:hover{background:var(--ink-800);border-color:var(--ink-600)}@media(max-width:767px){.ob-wrap{padding:18px 14px 60px}.ob-card{padding:20px}.ob-grid-3,.ob-welcome-grid,.ob-grid-4{grid-template-columns:1fr}.ob-step-lbl{display:none}}.processing-screen{background:radial-gradient(circle at 50% 0%,rgba(123,92,255,.1),transparent 60%),var(--ink-950);min-height:100vh;color:var(--text-200)}.processing-wrap{max-width:780px;margin:0 auto;padding:32px 24px 64px}.processing-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-32)}.processing-cancel{font-size:12.5px;color:var(--text-500);padding:6px 12px;border-radius:var(--r-7);background:transparent;border:0;cursor:pointer}.processing-cancel:hover{color:var(--warn-rose);background:var(--ink-870)}.track-prev{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:var(--s-16);display:flex;align-items:center;gap:var(--s-16);margin-bottom:var(--s-16)}.track-prev-thumb{width:48px;height:48px;border-radius:var(--r-9);flex-shrink:0;background:linear-gradient(135deg,var(--accent-500),var(--accent-700));position:relative;overflow:hidden}.track-prev-info{flex:1;min-width:0}.track-prev-name{font-size:13.5px;color:var(--text-100);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-prev-meta{font-family:var(--mono);font-size:11px;color:var(--text-500);margin-top:2px}.processing-hero{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-16);padding:var(--s-32);margin-bottom:var(--s-16);text-align:center;position:relative;overflow:hidden}.processing-hero:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:linear-gradient(90deg,transparent,var(--accent-glow),transparent);opacity:.6;pointer-events:none;transform:translate(-100%);animation:processingShimmer 2.4s ease-in-out infinite}@keyframes processingShimmer{50%{transform:translate(100%)}to{transform:translate(100%)}}.processing-ring{width:120px;height:120px;margin:0 auto var(--s-16);position:relative}.processing-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.processing-ring .ring-bg{stroke:var(--ink-800)}.processing-ring .ring-fg{stroke:var(--accent-500);stroke-linecap:round;transition:stroke-dashoffset .4s ease}.processing-ring .ring-pct{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--mono);font-size:28px;font-weight:600;color:var(--text-100);letter-spacing:-.01em}.processing-hero h2{font-size:18px;font-weight:600;color:var(--text-100);margin:0 0 6px;letter-spacing:-.01em}.processing-hero-sub{font-size:13px;color:var(--text-400)}.processing-timeline{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);overflow:hidden}.processing-stage{display:grid;grid-template-columns:28px 1fr auto;gap:var(--s-16);padding:var(--s-16) var(--s-24);align-items:center;border-bottom:1px solid var(--ink-800);position:relative}.processing-stage:last-child{border-bottom:0}.processing-stage:before{content:"";position:absolute;left:38px;top:50%;bottom:-50%;width:1px;background:var(--ink-700)}.processing-stage:last-child:before{display:none}.processing-stage.done:before{background:var(--good-green)}.stage-ico{width:24px;height:24px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--ink-700);background:var(--ink-850);display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--text-500);font-weight:600;z-index:1;position:relative}.processing-stage.done .stage-ico{background:var(--good-green);border-color:var(--good-green);color:#fff}.processing-stage.active .stage-ico{background:var(--accent-500);border-color:var(--accent-400);color:#fff;box-shadow:0 0 0 4px #7b5cff2e;animation:stageActivePulse 1.4s ease-in-out infinite}@keyframes stageActivePulse{50%{box-shadow:0 0 0 8px #7b5cff0f}}.processing-stage.failed .stage-ico{background:var(--warn-rose);border-color:var(--warn-rose);color:#fff}.stage-lbl{font-size:13.5px;color:var(--text-300);font-weight:500}.processing-stage.active .stage-lbl,.processing-stage.done .stage-lbl{color:var(--text-100)}.stage-desc{font-size:11.5px;color:var(--text-500);margin-top:2px;line-height:1.4}.processing-stage.active .stage-desc{color:var(--accent-300)}.stage-detail{font-family:var(--mono);font-size:11px;color:var(--text-500);margin-top:4px}.stage-right{font-family:var(--mono);font-size:11px;color:var(--text-500);flex-shrink:0;text-transform:uppercase;letter-spacing:.05em}.processing-stage.done .stage-right{color:var(--good-green)}.processing-stage.active .stage-right{color:var(--accent-300)}.processing-stage.failed .stage-right{color:var(--warn-rose)}.stage-mini-bar{grid-column:2;height:3px;background:var(--ink-800);border-radius:2px;overflow:hidden;margin-top:8px;display:none}.processing-stage.active .stage-mini-bar{display:block}.stage-mini-bar-fill{height:100%;width:60%;background:linear-gradient(90deg,var(--accent-500),var(--accent-300));border-radius:2px;animation:stageMiniSlide 1.6s ease-in-out infinite}@keyframes stageMiniSlide{0%{width:10%;transform:translate(-50%)}50%{width:60%;transform:translate(0)}to{width:10%;transform:translate(120%)}}.processing-error{background:#e89aa80a;border:1px solid var(--warn-rose-bd);border-radius:var(--r-14);padding:var(--s-32);text-align:center;margin-top:var(--s-16)}.processing-error-ico{width:64px;height:64px;border-radius:50%;margin:0 auto var(--s-16);background:var(--warn-rose-bg);border:2px solid var(--warn-rose);display:grid;place-items:center;color:var(--warn-rose)}.processing-error h3{font-size:18px;color:var(--text-100);margin:0 0 6px}.processing-error p{font-size:13px;color:var(--text-400);margin:0 auto;max-width:48ch;line-height:1.5}.processing-error-actions{display:flex;gap:var(--s-8);justify-content:center;flex-wrap:wrap;margin-top:var(--s-16)}.processing-btn-primary,.processing-btn-secondary{display:inline-flex;align-items:center;gap:var(--s-8);padding:9px 16px;border-radius:var(--r-9);font-weight:600;font-size:12.5px;cursor:pointer}.processing-btn-primary{background:var(--accent-500);color:#fff;border:1px solid var(--accent-400)}.processing-btn-secondary{background:var(--ink-850);color:var(--text-200);border:1px solid var(--ink-700)}.public-share{max-width:920px;margin:0 auto;padding:var(--s-32);background:radial-gradient(ellipse at top,var(--ink-880) 0%,var(--ink-950) 60%);min-height:100vh;box-sizing:border-box}.ps-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--s-24);border-bottom:1px solid var(--ink-800);margin-bottom:var(--s-24)}.ps-brand{display:flex;align-items:center;gap:8px;color:var(--text-100);text-decoration:none}.ps-brand-mark{width:24px;height:24px;border-radius:6px;background:linear-gradient(135deg,var(--accent-500),var(--accent-700));display:grid;place-items:center}.ps-brand-name{font-weight:600;font-size:14px}.ps-by{font-size:11.5px;color:var(--text-500)}.ps-by strong{color:var(--text-200);font-weight:500}.ps-hero{display:grid;grid-template-columns:200px 1fr;gap:var(--s-24);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-16);padding:var(--s-24);align-items:center}.ps-hero-art{aspect-ratio:1 / 1;border-radius:var(--r-14);overflow:hidden;background:linear-gradient(135deg,var(--accent-600),var(--accent-700));display:grid;place-items:center;color:#fff;position:relative}.ps-hero-art .label{position:absolute;bottom:14px;left:14px;right:14px;font-family:var(--mono, ui-monospace, monospace);font-size:11px;color:#ffffffd9}.ps-hero-info h1{font-size:24px;font-weight:600;margin:0 0 6px;color:var(--text-100);letter-spacing:-.01em}.ps-hero-info .artist{color:var(--text-400);font-size:14px;margin-bottom:var(--s-12)}.ps-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--s-12)}.ps-pill{padding:4px 10px;background:var(--ink-880);border:1px solid var(--ink-800);border-radius:999px;font-size:11.5px;color:var(--text-200)}.ps-pill.accent{background:var(--accent-soft);border-color:var(--accent-500);color:var(--accent-300)}.ps-pill .num{font-family:var(--mono, ui-monospace, monospace)}.ps-actions{display:flex;gap:var(--s-8);flex-wrap:wrap}.ps-actions button,.ps-actions a{padding:8px 14px;border-radius:var(--r-7);font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:500}.ps-actions .btn-primary{background:var(--accent-500);color:#fff;border:1px solid var(--accent-400)}.ps-actions .btn-secondary{background:var(--ink-880);color:var(--text-200);border:1px solid var(--ink-700)}.ps-strip{margin-top:var(--s-24);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);overflow:hidden}.ps-chord-strip{display:flex;height:50px;border-top:1px solid var(--ink-800)}.ps-chord-strip .seg{flex:1;padding:6px 10px;border-right:1px solid var(--ink-800);display:flex;flex-direction:column;justify-content:space-between;min-width:0}.ps-chord-strip .seg:last-child{border-right:0}.ps-chord-strip .seg .nm{font-family:var(--mono, ui-monospace, monospace);font-size:12px;font-weight:600;color:var(--text-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-chord-strip .seg .rm{font-family:var(--mono, ui-monospace, monospace);font-size:9px;color:var(--text-500)}.ps-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-12);margin-top:var(--s-24)}.ps-stat{padding:var(--s-16);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-10)}.ps-stat .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-500);font-weight:600}.ps-stat .v{font-family:var(--mono, ui-monospace, monospace);font-size:22px;color:var(--text-100);font-weight:600;margin-top:6px;letter-spacing:-.01em}.ps-stat .v.acc{color:var(--accent-300)}.ps-stat .sub{font-size:11.5px;color:var(--text-500);margin-top:4px}.ps-cta{margin-top:var(--s-32);padding:var(--s-24);border-radius:var(--r-14);background:linear-gradient(135deg,#7b5cff1a,#7b5cff05);border:1px solid rgba(123,92,255,.25);text-align:center}.ps-cta h3{font-size:16px;color:var(--text-100);font-weight:600;margin:0 0 6px}.ps-cta p{font-size:13px;color:var(--text-400);margin:0 0 var(--s-12)}.ps-cta a{padding:10px 18px;border-radius:var(--r-9);background:var(--accent-500);color:#fff;border:1px solid var(--accent-400);font-weight:500;font-size:13px;text-decoration:none;display:inline-block}@media(max-width:767px){.public-share{padding:18px}.ps-hero{grid-template-columns:1fr}.ps-hero-art{max-width:160px;margin:0 auto}}.error-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--s-64) var(--s-32);background:#e89aa80a;border:1px solid var(--warn-rose-bd);border-radius:var(--r-14);gap:var(--s-16);max-width:640px;margin:0 auto}.error-state-icon{width:80px;height:80px;border-radius:50%;background:var(--warn-rose-bg);color:var(--warn-rose);border:2px solid var(--warn-rose);display:grid;place-items:center}.error-state-title{font-size:22px;color:var(--text-100);margin:0;letter-spacing:-.01em}.error-state-sub{font-size:13.5px;color:var(--text-400);max-width:48ch;line-height:1.55;margin:0}.error-state-details{font-family:var(--mono);font-size:11px;color:var(--text-500);background:var(--ink-880);border:1px solid var(--ink-800);border-radius:var(--r-7);padding:var(--s-12);text-align:left;margin:0;max-width:100%;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.error-state-actions{display:flex;gap:var(--s-8);flex-wrap:wrap;justify-content:center;margin-top:var(--s-8)}.error-state-cta{padding:10px 18px;border-radius:var(--r-9);background:var(--accent-500);color:#fff;font-weight:600;font-size:12.5px;cursor:pointer;border:1px solid var(--accent-400)}.error-state-cta:hover{background:var(--accent-400)}.error-state-cta-secondary{padding:10px 18px;border-radius:var(--r-9);background:transparent;color:var(--text-200);font-weight:500;font-size:12.5px;cursor:pointer;border:1px solid var(--ink-700)}.error-state-cta-secondary:hover{color:var(--text-100);border-color:var(--ink-600)}.error-state-network .error-state-icon{background:var(--warn-amber-bg);color:var(--warn-amber);border-color:var(--warn-amber)}.error-state-server .error-state-icon{background:var(--accent-soft);color:var(--accent-300);border-color:var(--accent-500)}.share-modal{width:100%;max-width:520px;max-height:88vh;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-16);box-shadow:0 32px 80px -16px #000000b3;display:flex;flex-direction:column;overflow:hidden}.share-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s-16) var(--s-24);border-bottom:1px solid var(--ink-800)}.share-head .title{font-size:14px;color:var(--text-100);font-weight:600;display:flex;align-items:center;gap:8px}.share-head .title svg{color:var(--accent-300)}.share-head .x{width:28px;height:28px;border-radius:var(--r-7);display:grid;place-items:center;background:var(--ink-850);border:1px solid var(--ink-700);color:var(--text-400);cursor:pointer}.share-head .x:hover{color:var(--warn-rose, #E89AA8);border-color:var(--warn-rose-bd)}.share-body{padding:var(--s-24);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-16)}.share-track{display:flex;align-items:center;gap:var(--s-12);padding:var(--s-12);background:var(--ink-880);border:1px solid var(--ink-800);border-radius:var(--r-10)}.share-track .thumb{width:40px;height:40px;border-radius:var(--r-7);flex-shrink:0;background:linear-gradient(135deg,var(--accent-500),var(--accent-700))}.share-track .info{flex:1;min-width:0}.share-track .nm{font-size:13px;color:var(--text-100);font-weight:500}.share-track .meta{font-family:var(--mono, ui-monospace, "JetBrains Mono", monospace);font-size:11px;color:var(--text-500);margin-top:2px}.share-section-h{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-500);font-weight:600;margin-bottom:var(--s-8)}.share-vis-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.share-vis{padding:var(--s-12);background:var(--ink-880);border:1px solid var(--ink-800);border-radius:var(--r-9);cursor:pointer;transition:.12s;text-align:left;display:flex;flex-direction:column;gap:4px;color:var(--text-100)}.share-vis:hover{border-color:var(--accent-500)}.share-vis[data-on=true]{background:var(--accent-soft);border-color:var(--accent-500)}.share-vis .ico{color:var(--text-400)}.share-vis[data-on=true] .ico{color:var(--accent-300)}.share-vis .lbl{font-size:12.5px;color:var(--text-100);font-weight:500}.share-vis[data-on=true] .lbl{color:var(--accent-300)}.share-vis .desc{font-size:11px;color:var(--text-500);line-height:1.35}.share-link-row{display:flex;gap:6px;padding:6px 6px 6px 12px;background:var(--ink-880);border:1px solid var(--ink-700);border-radius:var(--r-9);align-items:center}.share-link-row .url{flex:1;font-family:var(--mono, ui-monospace, "JetBrains Mono", monospace);font-size:12px;color:var(--text-200);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.share-link-row .copy{padding:6px 12px;background:var(--accent-500);color:#fff;border:1px solid var(--accent-400);border-radius:var(--r-7);font-size:11.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.share-link-row .copy.copied{background:var(--good-green);border-color:var(--good-green)}.share-opt{display:flex;align-items:center;justify-content:space-between;padding:var(--s-12) 0;border-bottom:1px solid var(--ink-800)}.share-opt:last-child{border-bottom:0}.share-opt .info{flex:1;min-width:0;padding-right:var(--s-12)}.share-opt .lbl{font-size:12.5px;color:var(--text-100);font-weight:500}.share-opt .desc{font-size:11px;color:var(--text-500);margin-top:2px;line-height:1.4}.share-switch{width:34px;height:20px;border-radius:10px;background:var(--ink-700);position:relative;cursor:pointer;transition:.18s;flex-shrink:0;border:1px solid var(--ink-600, #363B53);display:inline-block}.share-switch:after{content:"";position:absolute;left:1px;top:0;width:16px;height:16px;border-radius:50%;background:var(--text-500);transition:.18s}.share-switch[data-on=true]{background:var(--accent-500);border-color:var(--accent-400)}.share-switch[data-on=true]:after{background:#fff;left:15px}.share-foot{padding:var(--s-12) var(--s-24);border-top:1px solid var(--ink-800);display:flex;justify-content:flex-end;align-items:center;gap:var(--s-8);background:var(--ink-880)}.share-foot .btn-primary{padding:6px 14px;border-radius:var(--r-7);background:var(--accent-500);color:#fff;border:1px solid var(--accent-400);font-size:12px;font-weight:500;cursor:pointer}.share-foot .btn-primary:hover{background:var(--accent-400)}@media(max-width:520px){.share-vis-grid{grid-template-columns:1fr}}.settings-screen{max-width:1200px;margin:0 auto;padding:var(--s-24) var(--s-32) var(--s-64)}.settings-head{margin-bottom:var(--s-24)}.settings-head h1{font-size:22px;font-weight:600;color:var(--text-100);margin:0 0 4px;letter-spacing:-.01em}.settings-head .crumb{font-size:12.5px;color:var(--text-500)}.settings-head .crumb a{color:var(--text-500);cursor:pointer;text-decoration:none}.settings-head .crumb a:hover{color:var(--text-300)}.settings-head .crumb .sep{color:var(--text-700);margin:0 6px}.settings-grid{display:grid;grid-template-columns:220px 1fr;gap:var(--s-32)}.settings-side{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:2px}.settings-side a{display:flex;align-items:center;gap:var(--s-8);padding:8px 12px;border-radius:var(--r-7);font-size:13px;color:var(--text-400);cursor:pointer;border-left:2px solid transparent;text-decoration:none}.settings-side a:hover{color:var(--text-100);background:var(--ink-870)}.settings-side a[data-active=true]{color:var(--accent-300);background:var(--accent-soft);border-left-color:var(--accent-500);font-weight:500}.settings-main{display:flex;flex-direction:column;gap:var(--s-32);min-width:0}.settings-section{scroll-margin-top:96px}.settings-section h2{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-500);font-weight:600;margin:0 0 var(--s-12)}.settings-card{background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-16);padding:var(--s-16) var(--s-24);border-bottom:1px solid var(--ink-800)}.settings-row:last-child{border-bottom:0}.settings-row .info{flex:1;min-width:0}.settings-row .lbl{font-size:13.5px;color:var(--text-100);font-weight:500}.settings-row .desc{font-size:12px;color:var(--text-500);margin-top:3px;line-height:1.45;max-width:48ch}.settings-row .ctrl{flex-shrink:0}.settings-input{background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-7);color:var(--text-100);font-size:13px;padding:7px 12px;min-width:200px}.settings-input:focus{border-color:var(--accent-500);outline:none;box-shadow:0 0 0 3px #7b5cff2e}.settings-input[readonly]{cursor:not-allowed;opacity:.85}.settings-select{background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-7);color:var(--text-100);font-size:13px;padding:7px 12px;min-width:200px;cursor:pointer}.settings-select:focus{border-color:var(--accent-500);outline:none}.settings-seg{display:inline-flex;gap:2px;padding:2px;background:var(--ink-850);border:1px solid var(--ink-700);border-radius:var(--r-9)}.settings-seg button{padding:5px 12px;font-size:11.5px;color:var(--text-400);border-radius:var(--r-7);cursor:pointer;background:transparent;border:0;font-family:inherit}.settings-seg button[data-on=true]{background:var(--accent-500);color:#fff}.settings-switch{display:inline-block;flex-shrink:0;width:38px;height:22px;border-radius:11px;background:var(--ink-700);position:relative;cursor:pointer;transition:.18s;border:1px solid var(--ink-600, #363B53)}.settings-switch:after{content:"";position:absolute;left:2px;top:1px;width:16px;height:16px;border-radius:50%;background:var(--text-500);transition:.18s}.settings-switch[data-on=true]{background:var(--accent-500);border-color:var(--accent-400)}.settings-switch[data-on=true]:after{background:#fff;left:18px}.settings-profile{padding:var(--s-24);display:flex;align-items:center;gap:var(--s-16)}.settings-avatar{width:72px;height:72px;border-radius:var(--r-14);background:linear-gradient(135deg,var(--accent-500),var(--accent-700));color:#fff;display:grid;place-items:center;font-weight:600;font-size:22px;letter-spacing:.5px}.settings-profile .who{flex:1}.settings-profile .nm{font-size:18px;color:var(--text-100);font-weight:600}.settings-profile .em{font-size:13px;color:var(--text-400);margin-top:2px}.settings-profile .pl{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;margin-top:8px;background:var(--good-green-bg);border:1px solid var(--good-green-bd);border-radius:var(--r-7);font-size:11px;color:var(--good-green);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.settings-plan{padding:var(--s-24)}.settings-plan h3{font-size:18px;font-weight:600;color:var(--text-100);margin:0}.settings-plan p{font-size:13px;color:var(--text-400);margin:6px 0 0}.settings-plan .meta{display:flex;gap:var(--s-16);margin-top:var(--s-12);font-size:11.5px;color:var(--text-500)}.settings-plan .actions{display:flex;gap:var(--s-8);margin-top:var(--s-16);flex-wrap:wrap}.settings-plan .actions button{padding:7px 14px;border-radius:var(--r-7);font-size:12.5px;cursor:pointer}.settings-plan .actions .btn-primary{background:var(--accent-500);color:#fff;border:1px solid var(--accent-400)}.settings-plan .actions .btn-secondary{background:var(--ink-850);color:var(--text-200);border:1px solid var(--ink-700)}.settings-savebar{position:sticky;bottom:16px;margin-top:var(--s-24);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-14);padding:var(--s-12) var(--s-16);display:flex;justify-content:space-between;align-items:center;box-shadow:0 16px 40px -16px #0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.settings-savebar .msg{font-size:12.5px;color:var(--text-300);display:flex;align-items:center;gap:8px}.settings-savebar .dot{width:6px;height:6px;border-radius:50%;background:var(--good-green);box-shadow:0 0 8px var(--good-green)}@media(max-width:1023px){.settings-grid{grid-template-columns:1fr}.settings-side{position:static;flex-direction:row;flex-wrap:wrap;gap:4px;padding:8px;background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-10)}.settings-side a{padding:6px 10px;font-size:12px}}@media(max-width:767px){.settings-screen{padding:18px 16px 80px}.settings-row{flex-direction:column;align-items:flex-start;gap:8px;padding:14px 18px}.settings-row .ctrl{width:100%}.settings-input,.settings-select{width:100%;min-width:0}}.no-tonal{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--s-48) var(--s-32);background:linear-gradient(135deg,#7b5cff0a,#e89aa805);border:1px dashed var(--ink-700);border-radius:var(--r-14);gap:var(--s-16);max-width:720px;margin:0 auto}.no-tonal-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--ink-870);border:2px solid var(--ink-700);color:var(--accent-300)}.no-tonal-title{font-size:20px;color:var(--text-100);margin:0;letter-spacing:-.01em}.no-tonal-sub{font-size:13.5px;color:var(--text-400);max-width:52ch;line-height:1.55;margin:0}.no-tonal-hints{margin-top:var(--s-16);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s-12);width:100%;max-width:600px;text-align:left}.no-tonal-hint{padding:var(--s-12);background:var(--ink-870);border:1px solid var(--ink-700);border-radius:var(--r-10);display:flex;flex-direction:column;gap:4px}.no-tonal-hint-h{font-size:11px;color:var(--accent-300);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.no-tonal-hint-d{font-size:12.5px;color:var(--text-300);line-height:1.45}.no-tonal-stats{display:flex;gap:var(--s-16);font-family:var(--mono, ui-monospace, monospace);font-size:11.5px;color:var(--text-500);flex-wrap:wrap;justify-content:center}.no-tonal-stats b{color:var(--text-200);font-weight:500}.no-tonal-actions{display:flex;gap:var(--s-8);flex-wrap:wrap;justify-content:center;margin-top:var(--s-8)}.no-tonal-actions .btn-primary{padding:9px 16px;border-radius:var(--r-9);background:var(--accent-500);color:#fff;border:1px solid var(--accent-400);font-weight:500;font-size:12.5px;cursor:pointer}.no-tonal-actions .btn-secondary{padding:9px 16px;border-radius:var(--r-9);background:transparent;color:var(--text-200);border:1px solid var(--ink-700);font-weight:500;font-size:12.5px;cursor:pointer}@media(max-width:480px){.no-tonal{padding:var(--s-32) var(--s-16)}.no-tonal-title{font-size:18px}}
