:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:Consolas, Monaco, "Courier New", monospace;--bg-app:#f5f2ee;--bg-panel:#faf8f5;--bg-sidebar:#faf8f5;--bg-card:#f2efe9;--bg-input:#edeae4;--bg-input-focus:#f5f2ee;--border-color:#e0dbd3;--text-primary:#2c2520;--text-secondary:#7a7168;--text-muted:#a39e96;--section-radius:10px;--accent:#0c8ce9;--accent-hover:#0a7ecb;--accent-light:#0c8ce914;--danger:#f24e1e;--danger-hover:#d13f14;--danger-light:#f24e1e14;--margin-xlarge:20px;--margin-large:30px;--margin-medium:20px;--margin-small:10px;--margin-xsmall:5px;--gap-xxsmall:5px;--gap-xsmall:10px;--gap-small:20px;--gap-medium:30px;--gap-large:40px;--scrollbarWidth:4px;--strokeWeight:1px;--panel-width:260px;--toolbar_buttonSize:30px;--canvas-top-gutter:64px;--canvas-bottom-gutter:72px}body.theme-dark,.theme-dark{--bg-app:#1c1a18;--bg-panel:#262320;--bg-sidebar:#262320;--bg-card:#302c28;--border-color:#3a3530;--text-primary:#ede8e0;--text-secondary:#a09888;--text-muted:#6b6358;--bg-input:#332f2a;--bg-input-focus:#3a3530;--accent-hover:#229cf5;--accent-light:#0c8ce933;--danger-hover:#ff6337;--danger-light:#f24e1e33}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);margin:0;padding:0;font-size:11px;overflow:hidden}canvas{z-index:1;display:block;position:absolute;top:0;left:0}#ritmo-canvas canvas,#borro-canvas canvas,#copo-canvas canvas,#refrac-canvas canvas{top:var(--canvas-top-gutter);bottom:var(--canvas-bottom-gutter);left:0;right:calc(var(--panel-width) + var(--margin-xlarge) * 2);margin:auto}#borro-canvas canvas,#copo-canvas canvas,#refrac-canvas canvas{box-shadow:0 1px 2px #0000000a,0 8px 24px #00000014,0 24px 56px #0000000f}body.theme-dark #borro-canvas canvas,body.theme-dark #copo-canvas canvas,body.theme-dark #refrac-canvas canvas{box-shadow:0 1px 2px #0000004d,0 8px 24px #00000073,0 24px 56px #00000059}.ratio-switcher{bottom:24px;left:calc((100% - var(--panel-width) - var(--margin-xlarge) * 2) / 2);z-index:20;background:color-mix(in srgb, var(--bg-panel) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:999px;align-items:center;gap:2px;padding:6px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 4px 16px #0000001a}body.theme-dark .ratio-switcher{box-shadow:0 4px 16px #0006}.ratio-btn{font-family:var(--font-sans);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:500;transition:color .15s,background .15s}.ratio-btn:hover{color:var(--text-primary)}.ratio-btn.active{background:var(--text-primary);color:var(--bg-panel);box-shadow:0 1px 3px #00000026}.app-topbar{top:max(12px, env(safe-area-inset-top,0px));z-index:1000;pointer-events:auto;align-items:center;gap:8px;max-width:calc(100vw - 24px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.apps-container{z-index:0;width:100vw;height:100dvh;position:absolute;top:0;left:0;overflow:hidden}.app-view{width:100%;height:100%}.app-switcher-container{z-index:9999;pointer-events:auto;position:absolute;top:20px;left:50%;transform:translate(-50%)}.app-switcher{background:#ddd8d0;border-radius:12px;flex-shrink:1;gap:2px;min-width:0;padding:3px;transition:background .3s;display:flex;box-shadow:0 4px 12px #00000014}.app-switcher-icon{flex-shrink:0;padding:3px}.switcher-icon-btn{justify-content:center;align-items:center;display:flex;padding:8px!important}.panel-toggle{color:#6b6358;cursor:pointer;background:#ddd8d0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:none;box-shadow:0 4px 12px #00000014}body.theme-dark .panel-toggle{color:#a09888;background:#332f2a}.panel-toggle:hover{color:var(--accent)}body.theme-dark .app-switcher{background:#332f2a;box-shadow:0 4px 16px #0006}.switcher-tab{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;color:#6b6358;height:auto;box-shadow:none;white-space:nowrap;background:0 0;border:none;border-radius:9px;padding:8px 16px;font-size:10px;font-weight:600;transition:color .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}body.theme-dark .switcher-tab{color:#a09888}.switcher-tab:hover{color:#2c2520}body.theme-dark .switcher-tab:hover{color:#ede8e0}.switcher-tab.active{background:#faf8f5;box-shadow:0 2px 6px #0000001a;color:var(--accent)!important}body.theme-dark .switcher-tab.active{background:#262320;box-shadow:0 2px 6px #0000004d;color:var(--accent)!important}#canvas-container,.canvas-viewport,#vertice-canvas,#grafema-canvas{z-index:1;position:absolute;top:0;left:0;overflow:hidden;width:100vw!important;height:100vh!important}#myCanvas{display:block;width:100%!important;height:100%!important}.secuencia-panel,.sidebar{background:var(--bg-panel);border:1px solid var(--border-color);z-index:10;box-sizing:border-box;border-radius:14px;flex-direction:column;padding:14px;display:flex;position:absolute!important}.right-sidebar,.sidebar{box-shadow:0 4px 20px #0000000d;width:var(--panel-width)!important;height:calc(100vh - (var(--margin-xlarge) * 2))!important;margin:var(--margin-xlarge)!important;top:0!important;left:auto!important;right:0!important}body.theme-dark .sidebar,body.theme-dark .secuencia-panel{box-shadow:0 4px 20px #0000004d}#app-container,.app-container,#v-app-container,#g-app-container{width:100vw;height:100vh;display:block;position:relative;overflow:hidden}.panel-header,.sidebar-header{border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;height:36px;margin-bottom:4px;padding-bottom:8px;display:flex}.sidebar-content{flex-direction:column;flex:1;gap:6px;min-height:0;margin:0 -6px 0 0;padding:0 6px 0 0;display:flex;overflow-y:auto}.sidebar-content::-webkit-scrollbar{width:var(--scrollbarWidth)}.scrollBox::-webkit-scrollbar{width:var(--scrollbarWidth)}.sidebar-content::-webkit-scrollbar-track{background:0 0}.scrollBox::-webkit-scrollbar-track{background:0 0}.sidebar-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.scrollBox::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.scrollBox::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin:10px 0 6px;font-size:9px;font-weight:700}.section-subtitle{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 10px;font-size:9px;font-weight:600;display:block}.lineHorizontal{background-color:var(--border-color);width:100%;height:1px;margin:10px 0}.sidebar-content{counter-reset:panel-section}.panel-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--section-radius);counter-increment:panel-section;flex-direction:column;gap:8px;padding:10px 12px;transition:padding .2s,background .15s;display:flex}.panel-section h2.section-title{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;align-items:center;height:20px;margin:0;padding:0;font-size:9px;font-weight:700;display:flex}.panel-section h2.section-title span{align-items:center;gap:6px;display:flex}.panel-section h2.section-title span:before{content:counter(panel-section, decimal-leading-zero);font-size:8px;font-weight:700;font-family:var(--font-mono);color:var(--text-muted);letter-spacing:0}.panel-section h2.section-title:hover{color:var(--accent)}.panel-section h2.section-title .chevron-icon{width:10px;height:10px;color:var(--text-muted);transition:transform .2s}.panel-section.collapsed h2.section-title .chevron-icon{transform:rotate(-90deg)}.panel-section .section-content{opacity:1;flex-direction:column;gap:8px;max-height:1500px;transition:max-height .3s cubic-bezier(0,1,0,1),opacity .2s,margin-top .2s;display:flex;overflow:hidden}.panel-section.collapsed{padding-bottom:10px}.panel-section.collapsed .section-content{opacity:0;pointer-events:none;max-height:0;margin-top:0;overflow:hidden}.control-card{border-bottom:1px solid var(--border-color);flex-direction:column;gap:8px;padding:12px 0;display:flex}.card-title{color:var(--text-primary);justify-content:space-between;align-items:center;height:20px;margin-bottom:2px;font-size:11px;font-weight:600;display:flex}.card-title span.title-aside{color:var(--text-secondary);font-size:10px;font-weight:400}.parameter-row-group{grid-template-columns:1fr 1fr;gap:8px;display:grid}.parameter-row{flex-direction:column;gap:4px;display:flex}.parameter-row.compact{flex-direction:row;align-items:center;gap:6px;height:24px}.parameter-row.compact .parameter-label{white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:90px;overflow:hidden}.parameter-row.compact input[type=range],.parameter-row.compact .custom-slider{flex:1;margin:0}.parameter-row.compact .num-input-wrapper{flex-shrink:0}.parameter-row.border-top{border-top:1px solid var(--border-color);margin-top:4px;padding-top:8px}.parameter-header,.parameter-label-container{justify-content:space-between;align-items:center;display:flex}.parameter-label{color:var(--text-secondary);font-size:10px;font-weight:500}.parameter-value-badge{font-family:var(--font-mono);color:var(--text-primary);font-size:10px}.num-input-wrapper{background:var(--bg-input);border:1px solid #0000;border-radius:4px;align-items:center;height:20px;padding:0 6px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex}.num-input-wrapper:hover{background:var(--bg-input-focus)}.num-input-wrapper:focus-within{background:var(--bg-input-focus);border-color:var(--accent)}.secuencia-num-input,.grafema-num-input{-moz-appearance:textfield;font-family:var(--font-mono)!important;color:var(--text-primary)!important;text-align:right!important;background:0 0!important;border:none!important;outline:none!important;width:32px!important;height:100%!important;padding:0 2px 0 0!important;font-size:9px!important}.secuencia-num-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.secuencia-num-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grafema-num-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grafema-num-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grafema-text-input{box-sizing:border-box;background:var(--bg-input);width:100%;color:var(--text-primary);font-family:var(--font-sans);border:1px solid #0000;border-radius:6px;outline:none;padding:5px 8px;font-size:11px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s}.grafema-text-input:hover{background:var(--bg-input-focus)}.grafema-text-input:focus{background:var(--bg-input-focus);border-color:var(--accent)}.grafema-select{background:var(--bg-input);width:100%;color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:1px solid #0000;border-radius:6px;outline:none;padding:5px 24px 5px 8px;font-size:11px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s}.grafema-select:hover{background-color:var(--bg-input-focus)}.grafema-select:focus{background-color:var(--bg-input-focus);border-color:var(--accent)}body.theme-dark .grafema-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23aaa' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}.unit{color:var(--text-secondary);font-size:8px;font-family:var(--font-mono);-webkit-user-select:none;user-select:none}input[type=range],.ranger,.custom-slider{appearance:none;background:linear-gradient(var(--slider-fill,var(--text-primary)), var(--slider-fill,var(--text-primary))) no-repeat left center / var(--fill,0%) 2px, linear-gradient(var(--border-color), var(--border-color)) no-repeat center / 100% 1.5px;touch-action:none;border-radius:1px;outline:none;width:100%;height:16px;margin:0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--text-primary);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--bg-panel,#fff);cursor:pointer;border-radius:50%;transition:box-shadow .1s}.ranger::-webkit-slider-thumb{appearance:none;background:var(--text-primary);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--bg-panel,#fff);cursor:pointer;border-radius:50%;transition:box-shadow .1s}.custom-slider::-webkit-slider-thumb{appearance:none;background:var(--text-primary);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--bg-panel,#fff);cursor:pointer;border-radius:50%;transition:box-shadow .1s}input[type=range]::-webkit-slider-thumb:hover{box-shadow:inset 0 0 0 2px var(--bg-panel,#fff)}.ranger::-webkit-slider-thumb:hover{box-shadow:inset 0 0 0 2px var(--bg-panel,#fff)}.custom-slider::-webkit-slider-thumb:hover{box-shadow:inset 0 0 0 2px var(--bg-panel,#fff)}input[type=range]::-moz-range-thumb{background:var(--text-primary);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--bg-panel,#fff);cursor:pointer;border:none;border-radius:50%;transition:box-shadow .1s}.ranger::-moz-range-thumb{background:var(--text-primary);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--bg-panel,#fff);cursor:pointer;border:none;border-radius:50%;transition:box-shadow .1s}.custom-slider::-moz-range-thumb{background:var(--text-primary);width:14px;height:14px;box-shadow:inset 0 0 0 3px var(--bg-panel,#fff);cursor:pointer;border:none;border-radius:50%;transition:box-shadow .1s}input[type=range]::-moz-range-thumb:hover{box-shadow:inset 0 0 0 2px var(--bg-panel,#fff)}.ranger::-moz-range-thumb:hover{box-shadow:inset 0 0 0 2px var(--bg-panel,#fff)}.custom-slider::-moz-range-thumb:hover{box-shadow:inset 0 0 0 2px var(--bg-panel,#fff)}input[type=text],input[type=number],select{background:var(--bg-input);color:var(--text-primary);font-family:var(--font-sans);border:1px solid #0000;border-radius:6px;outline:none;width:100%;height:28px;padding:5px 8px;font-size:11px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s}input[type=text]:hover,input[type=number]:hover{background:var(--bg-input-focus)}input[type=text]:focus,input[type=number]:focus,select:focus{background:var(--bg-input-focus);border-color:var(--accent)}.grafema-input-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grafema-input-wrapper{background:var(--bg-input);border:1px solid #0000;border-radius:6px;align-items:center;height:28px;padding:0 6px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex}.grafema-input-wrapper:hover{background:var(--bg-input-focus)}.grafema-input-wrapper:focus-within{background:var(--bg-input-focus);border-color:var(--accent)}.grafema-input-prefix{color:var(--text-secondary);font-size:10px;font-family:var(--font-mono);-webkit-user-select:none;user-select:none;width:12px}.grafema-input-wrapper input{height:100%!important;color:var(--text-primary)!important;background:0 0!important;border:none!important;outline:none!important;width:calc(100% - 12px)!important;padding:4px!important;font-size:11px!important}.btn{background:var(--bg-input);color:var(--text-primary);font-family:var(--font-sans);cursor:pointer;width:100%;height:28px;box-shadow:none;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:11px;font-weight:500;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex}.btn:hover{background:var(--border-color)}.btn-accent,.btn-primary{background:var(--accent);color:#fff}.btn-accent:hover,.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-input);color:var(--text-secondary)}.btn-secondary:hover{color:var(--text-primary)}.btn-danger{background:var(--danger-light);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.export-status{color:var(--text-secondary);text-align:center;min-height:12px;font-size:10px;position:relative}.export-status.has-progress{padding-bottom:8px}.export-status.has-progress:after{content:"";height:3px;width:var(--export-progress,0%);background:var(--accent);border-radius:2px;transition:width .15s;position:absolute;bottom:0;left:0}.r-code-textarea{resize:vertical;width:100%;height:56px;font-family:var(--font-mono);border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-primary);box-sizing:border-box;border-radius:6px;outline:none;padding:6px 8px;font-size:10px}.r-code-textarea:hover{background:var(--bg-input-focus)}.r-code-textarea:focus{background:var(--bg-input-focus);border-color:var(--accent)}.field-hint{color:var(--text-secondary);margin-top:4px;font-size:9px;display:block}.mode-selector+*{margin-top:8px}.btn-group{gap:8px;display:flex}.btn-group-row{flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.btn-icon{color:var(--text-secondary);cursor:pointer;box-shadow:none;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex}.btn-icon:hover{background:var(--border-color);color:var(--text-primary)}.btn-icon.btn-danger:hover{background:var(--danger-light);color:var(--danger)}.checkbox-container{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:11px;display:flex}.checkbox-container input{display:none}.custom-checkbox{border:1px solid var(--text-secondary);border-radius:3px;justify-content:center;align-items:center;width:12px;height:12px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex}.checkbox-container:hover .custom-checkbox{border-color:var(--text-primary)}.checkbox-container input:checked+.custom-checkbox{background:var(--accent);border-color:var(--accent)}.checkbox-container input:checked+.custom-checkbox:after{content:"";border:1.5px solid #fff;border-width:0 1.5px 1.5px 0;width:3px;height:6px;margin-bottom:1.5px;transform:rotate(45deg)}.color-picker-wrapper{background:var(--bg-input);border-radius:6px;justify-content:space-between;align-items:center;width:100%;height:24px;padding:4px 8px;display:flex}.color-pickers-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.color-pickers-row>div{flex-direction:column;gap:4px;display:flex}.color-pickers-row label,.color-picker-label{color:var(--text-secondary);font-size:10px}.color-input-container{align-items:center;display:flex}.color-code{font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;font-size:9px}input[type=color]{-webkit-appearance:none;cursor:pointer;background:0 0;border:none;border-radius:3px;width:14px;height:14px;padding:0}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:1px solid var(--border-color);border-radius:3px}.input-file-btn-wrapper{width:100%;position:relative;overflow:hidden}.file-picker-row{gap:8px;display:flex}.file-picker-row .input-file-btn-wrapper{flex:1}.input-file-btn-wrapper input[type=file]{opacity:0;cursor:pointer;font-size:100px;position:absolute;top:0;left:0}.secuencia-context-menu{background:var(--bg-panel);border:1px solid var(--border-color);z-index:1000;border-radius:6px;min-width:150px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0000001f}.secuencia-context-menu button{color:var(--text-primary);text-align:left;cursor:pointer;width:100%;box-shadow:none;background:0 0;border:none;padding:6px 12px;font-size:11px}.secuencia-context-menu button:hover{background:var(--bg-input)}.secuencia-context-menu button.active{background:var(--accent-light);color:var(--accent);font-weight:600}.context-separator{border-top:1px solid var(--border-color);margin-top:4px;padding-top:4px}.modal{z-index:2000;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal-content{background:var(--bg-sidebar);border:1px solid var(--border-color);width:90%;max-width:320px;color:var(--text-primary);border-radius:8px;flex-direction:column;gap:12px;padding:20px;display:flex;box-shadow:0 10px 30px #00000026}.modal-title{text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:12px;font-weight:700}.modal-content p{color:var(--text-secondary);font-size:11px;line-height:1.5}.dropdown-wrapper{flex-shrink:0;margin-bottom:8px;position:relative}.dropdown-header{background:var(--bg-input);border:1px solid #0000;border-radius:6px;align-items:center;height:28px;display:flex;overflow:hidden}.dropdown-header:hover{background:var(--bg-input-focus)}.dropdown-header:focus-within{background:var(--bg-input-focus);border-color:var(--accent)}.dropdown-toggle{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;box-shadow:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-toggle:hover{color:var(--text-primary)}.dropdown-menu{background:var(--bg-panel);border:1px solid var(--border-color);z-index:100;border-radius:6px;max-height:180px;padding:4px 0;list-style:none;display:none;position:absolute;top:30px;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.dropdown-menu.show{display:block}.dropdown-menu li{cursor:pointer;color:var(--text-primary);padding:6px 12px;font-size:11px;transition:background .15s}.dropdown-menu li:hover{background:var(--bg-input)}.dropdown-menu li.active{background:var(--accent-light);color:var(--accent);font-weight:600}.font-script-row{align-items:center;gap:6px;width:100%;display:flex}.font-script-row .dropdown-wrapper{flex:1;margin-bottom:0}.font-script-row .dropdown-menu{top:30px}.font-script-row .btn-text{flex-shrink:0;width:auto;height:28px;padding:0 12px}.font-script-row .btn-icon{flex-grow:0;flex-shrink:0;width:28px;height:28px;padding:0}.scroll-box-container{flex:1;min-height:0;position:relative;overflow:hidden}.scrollBox{width:100%;height:100%;padding-right:4px;overflow-y:scroll}#glyphSetScrollBox,#s-glyphSetScrollBox{background:var(--bg-input);box-sizing:border-box;border-radius:6px;flex:1;min-height:0;padding:6px;overflow-y:auto}#glyphSet,#s-glyphSet{grid-template-columns:repeat(auto-fill, minmax(var(--glyphSet_boxSize), 1fr));gap:4px;padding-bottom:20px;display:grid}.glyphSet_box{aspect-ratio:1;cursor:pointer;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;font-size:11px;font-weight:500;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex;width:100%!important;height:var(--glyphSet_boxSize)!important;margin:0!important}.glyphSet_box:hover{background:var(--border-color);color:var(--text-primary)}.glyphSet_box.active{font-weight:700;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;opacity:1!important}.glyphSet_box.empty{color:var(--text-muted);background:0 0}.glyphSet_box.missing{color:var(--danger);background:#f24e1e14;font-weight:600}.glyphSet_box label{cursor:pointer}.textarea-wrapper{background:var(--bg-input);border:1px solid #0000;border-radius:6px;flex-shrink:0;margin-bottom:4px;padding:6px 10px}.textarea-wrapper:hover{background:var(--bg-input-focus)}.textarea-wrapper:focus-within{background:var(--bg-input-focus);border-color:var(--accent)}textarea{resize:vertical;width:100%;height:80px;font-family:var(--font-sans);color:var(--text-primary);background:0 0;border:none;outline:none;font-size:11px;line-height:1.4}.empty-state{background:var(--bg-sidebar);border:1px dashed var(--border-color);text-align:center;color:var(--text-secondary);border-radius:6px;padding:16px 12px;font-size:10px;line-height:1.4}.controls-grid{flex-direction:column;gap:8px;display:flex}.hidden{display:none!important}.control-row{align-items:center;gap:8px;display:flex}.glyph-title-row{background:var(--bg-input);border-radius:6px;align-items:center;height:28px;margin-bottom:4px;padding:6px 8px;display:flex}.glyph-label{font-family:var(--font-mono);color:var(--text-primary);flex:1;font-size:10px;font-weight:600}.control-group{flex-direction:column;gap:6px;display:flex}.control-group label{color:var(--text-secondary);font-size:10px;font-weight:500}.letter-grid{background:var(--bg-input);border-radius:6px;grid-template-columns:repeat(6,1fr);gap:4px;padding:4px;display:grid}.btn-letter{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;box-shadow:none;background:0 0;border:none;border-radius:4px;outline:none;padding:6px 0;font-size:10px;font-weight:500;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,opacity .15s,transform .15s}.btn-letter:hover{background:var(--border-color);color:var(--text-primary)}.btn-letter.active{background:var(--accent);color:#fff;font-weight:700}.layers-list,.layers-container{border:1px solid var(--border-color);background:var(--bg-input);border-radius:6px;flex-direction:column;max-height:160px;display:flex;overflow-y:auto}.layer-item{border-bottom:1px solid var(--border-color);cursor:pointer;height:26px;color:var(--text-primary);justify-content:space-between;align-items:center;padding:6px 10px;font-size:11px;transition:background .15s;display:flex}.layer-item:last-child{border-bottom:none}.layer-item:hover{background:#00000008}body.theme-dark .layer-item:hover{background:#ffffff08}.layer-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.layer-item .vertex-count{font-size:9px;font-family:var(--font-mono);color:var(--text-secondary)}.canvas-overlay{z-index:5;pointer-events:none;position:absolute}.top-left-overlay{top:12px;left:12px}.top-right-overlay{top:12px;right:12px}.composition-stats{background:var(--bg-sidebar);border:1px solid var(--border-color);font-family:var(--font-mono);color:var(--text-secondary);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:10px;display:flex;box-shadow:0 1px 3px #0000000d}.separator{color:var(--border-color)}.shortcut-tip{background:var(--bg-sidebar);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;padding:4px 8px;font-size:10px;box-shadow:0 1px 3px #0000000d}kbd{font-family:var(--font-mono);background:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary);border-radius:3px;padding:1px 3px;font-size:9px}.gap-v-small{height:4px}.sidebar-footer{border-top:none;flex-direction:column;flex-shrink:0;gap:8px;margin-top:auto;padding:8px 0 0;display:flex}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layer-item:focus-visible,.glyphSet_box:focus-visible,#scriptList li:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;box-shadow:none}input[type=text]:focus-visible,input[type=number]:focus-visible,select:focus-visible,.grafema-text-input:focus-visible,.grafema-select:focus-visible,textarea:focus-visible{border-color:var(--accent);outline:none}:is(.btn:focus-visible,.btn-icon:focus-visible,.toolbar-btn:focus-visible,.mode-btn:focus-visible,.switcher-tab:focus-visible){outline:2px solid var(--accent);outline-offset:2px}::view-transition-old(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-new(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(root){animation-name:fade-out}::view-transition-new(root){animation-name:fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5px)}}.secuencia-panel,.sidebar,.app-switcher,.secuencia-subpanel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf8f5e0!important}body.theme-dark .secuencia-panel,body.theme-dark .sidebar,body.theme-dark .app-switcher,body.theme-dark .secuencia-subpanel{background:#262320e0!important}.auth-capsule{background:#ddd8d0;border-radius:12px;align-items:center;gap:2px;padding:3px;display:flex;box-shadow:0 4px 12px #00000014}body.theme-dark .auth-capsule{background:#332f2a}.btn-signin{background:var(--accent);color:#fff;font-family:var(--font-sans);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border:none;border-radius:9px;padding:8px 16px;font-size:10px;font-weight:600;transition:background .15s}.btn-signin:hover{background:var(--accent-hover)}.user-chip{background:var(--bg-panel);cursor:pointer;font-family:var(--font-sans);border-radius:9px;align-items:center;gap:6px;padding:5px 10px 5px 5px;display:flex;box-shadow:0 2px 6px #00000026}.user-avatar{background:var(--accent);color:#fff;text-transform:uppercase;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:9px;font-weight:700;display:flex}.user-name{color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.pro-badge{letter-spacing:.08em;color:var(--accent);background:var(--accent-light);border-radius:4px;padding:2px 5px;font-size:8px;font-weight:700}.switcher-tab .pro-dot{background:var(--accent);vertical-align:middle;opacity:.7;border-radius:50%;width:4px;height:4px;margin-left:4px;display:inline-block;position:relative;top:-1px}#paywall-modal{z-index:10000;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.paywall-backdrop{background:#0000008c;position:absolute;inset:0}.paywall-box{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;gap:0;width:calc(100vw - 48px);max-width:360px;padding:28px;display:flex;position:relative;box-shadow:0 20px 60px #00000026}.paywall-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1;position:absolute;top:14px;right:14px}.paywall-close:hover{color:var(--text-primary)}.paywall-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:8px;font-size:9px;font-weight:600}.paywall-title{color:var(--text-primary);margin-bottom:6px;font-size:18px;font-weight:700}.paywall-sub{color:var(--text-secondary);margin-bottom:18px;font-size:11px;line-height:1.5}.paywall-features{flex-direction:column;gap:7px;margin:0 0 20px;padding:0;list-style:none;display:flex}.paywall-features li{color:var(--text-primary);align-items:center;gap:8px;font-size:11px;display:flex}.paywall-features li:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.paywall-pricing{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.paywall-plan{border:1px solid var(--border-color);cursor:pointer;border-radius:8px;padding:10px 12px;transition:border-color .15s,background .15s}.paywall-plan:hover{border-color:var(--accent)}.paywall-plan.selected{border-color:var(--accent);background:var(--accent-light)}.paywall-plan-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px;font-size:9px;font-weight:600}.paywall-plan.selected .paywall-plan-label{color:var(--accent)}.paywall-plan-amount{color:var(--text-primary);font-size:20px;font-weight:700}.paywall-plan-period{color:var(--text-muted);margin-top:2px;font-size:10px}.paywall-plan.selected .paywall-plan-period{color:var(--accent)}.paywall-cta{border-radius:8px;height:36px;margin-bottom:12px;font-size:12px;font-weight:600}.paywall-footer{color:var(--text-muted);text-align:center;font-size:10px;line-height:1.6}.paywall-signin-link{color:var(--text-secondary);cursor:pointer;text-decoration:underline}.pro-preset-note{color:var(--text-muted);margin-top:5px;font-size:10px}.pro-preset-note a{color:var(--accent);cursor:pointer;text-decoration:underline}.btn-pro-locked:after{content:" ✦";opacity:.6;color:var(--accent);font-size:9px}.paywall-toast{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-primary);z-index:10001;opacity:0;pointer-events:none;border-radius:8px;padding:10px 18px;font-size:12px;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(8px);box-shadow:0 4px 16px #0000001f}.paywall-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.workspace-loader{background:var(--bg-app);z-index:100;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.spinner{border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spinner}@keyframes spinner{to{transform:rotate(360deg)}}.audio-player{flex-direction:column;gap:6px;padding:8px 10px;display:flex}.audio-player-row{align-items:center;gap:8px;display:flex}.audio-btn{background:var(--bg-input);width:28px;height:28px;color:var(--text-primary);cursor:pointer;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.audio-btn:hover{background:var(--accent-light);color:var(--accent)}.audio-bars{align-items:flex-end;gap:2px;height:12px;display:flex}.audio-bars .bar{background:currentColor;border-radius:1px;width:2px;height:20%}.audio-btn.is-playing .bar{animation:.6s ease-in-out infinite alternate eqBounce}.audio-btn.is-playing .bar:nth-child(2){animation-delay:.15s}.audio-btn.is-playing .bar:nth-child(3){animation-delay:.3s}.audio-btn.is-playing .bar:nth-child(4){animation-delay:.45s}@keyframes eqBounce{0%{height:20%}to{height:100%}}.audio-filename{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;overflow:hidden}.audio-time{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);flex-shrink:0}.audio-progress-wrap{background:var(--bg-input);cursor:pointer;border-radius:2px;height:4px;position:relative}.audio-progress-bar{background:var(--accent);pointer-events:none;border-radius:2px;width:0%;height:100%}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){:root{--panel-width:min(100vw - 24px, 320px)}.panel-toggle{display:flex}.app-topbar{top:max(8px, env(safe-area-inset-top,0px));justify-content:flex-start;width:auto;max-width:none;left:12px;right:12px;transform:none}#app-tabs-container.switcher-tab,.app-switcher .switcher-tab{padding:8px 10px;font-size:9px}.auth-capsule .user-name{display:none}#ritmo-canvas canvas,#borro-canvas canvas,#copo-canvas canvas,#refrac-canvas canvas{right:0}.ratio-switcher{left:50%;bottom:max(16px, env(safe-area-inset-bottom,0px));scrollbar-width:none;max-width:calc(100vw - 24px);overflow-x:auto}.ratio-switcher::-webkit-scrollbar{display:none}.right-sidebar,.sidebar{z-index:50;transition:transform .28s cubic-bezier(.4,0,.2,1);transform:translate(calc(100% + 24px));box-shadow:0 8px 32px #0000002e;width:min(100vw - 24px,340px)!important;height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;right:12px!important;top:max(12px, env(safe-area-inset-top,0px))!important;margin:0!important}body.panel-open .right-sidebar,body.panel-open .sidebar{transform:translate(0)}body.panel-open .canvas-viewport:after{content:"";z-index:5;pointer-events:none;background:#00000040;position:absolute;inset:0}.canvas-viewport{width:100%!important;height:100%!important}}@media (width<=420px){.app-switcher .switcher-tab{letter-spacing:.02em;padding:7px 8px}}
