@import "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@300;400;500;600;700&display=swap";:root{--font-mono:"Roboto Mono", "Consolas", "Monaco", monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root,[data-theme=dark]{--canvas-bg:#121214;--grid-color:#222226;--ui-bg:#1a1a1e;--ui-border:#2e2e35;--accent:#2f6fed;--text-primary:#fff;--text-secondary:#a0a0a5;--text-muted:#606065;--danger:#ff453a;--success:#30d158;--warning:#ff9f0a;--surface:#24242a;--surface-hover:#2c2c34;--surface-active:#2f6fed;--selection:#2f6fed38;--shadow-color:#0006}[data-theme=light]{--canvas-bg:#faf9f6;--grid-color:#e6e2d8;--ui-bg:#fff;--ui-border:#e0e0e6;--accent:#2f6fed;--text-primary:#111;--text-secondary:#555558;--text-muted:#8e8e93;--danger:#ff3b30;--success:#34c759;--warning:#ff9500;--surface:#f5f5f7;--surface-hover:#ebebef;--surface-active:#2f6fed;--selection:#2f6fed26;--shadow-color:#0000000f}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;font-family:var(--font-sans);background:var(--ui-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:12px;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--ui-bg)}::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent);color:#fff}input,select,textarea,button{font-family:var(--font-mono);font-size:11px}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;z-index:1000;background:#000;border-radius:4px;padding:4px 8px;font-size:10px;transition:opacity .15s;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}[data-tooltip]:hover:after{opacity:1}.landing-root{background:var(--canvas-bg);color:var(--text-primary);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.landing-theme-toggle{border:1px solid var(--ui-border);background:var(--ui-bg);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:18px;right:18px}.landing-theme-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.landing-inner{text-align:center;width:100%;max-width:820px}.landing-brand{align-items:center;gap:10px;margin-bottom:22px;display:inline-flex}.landing-logo{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.landing-brand-name{font-family:var(--font-mono);letter-spacing:.02em;font-size:20px;font-weight:700}.landing-title{letter-spacing:-.02em;margin-bottom:8px;font-size:34px;font-weight:800}.landing-subtitle{color:var(--text-secondary);margin-bottom:34px;font-size:14px}.landing-cards{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}@media (width<=640px){.landing-cards{grid-template-columns:1fr}.landing-title{font-size:26px}}.landing-card{text-align:left;color:inherit;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:14px;flex-direction:column;align-items:flex-start;padding:26px 24px;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.landing-card:hover{border-color:var(--card-accent,var(--accent));box-shadow:0 10px 30px var(--shadow-color);transform:translateY(-3px)}.landing-card-icon{background:var(--surface);border-radius:14px;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:18px;display:flex}.landing-card-title{margin-bottom:8px;font-size:20px;font-weight:700}.landing-card-desc{color:var(--text-secondary);margin-bottom:18px;font-size:13px;line-height:1.5}.landing-card-cta{color:var(--card-accent,var(--accent));align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.landing-footer{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:36px;font-size:11px;display:flex}.landing-credit{color:var(--text-muted)}.landing-credit a{color:var(--text-secondary);font-weight:600;text-decoration:none}.landing-credit a:hover{color:var(--accent);text-decoration:underline}.landing-socials{align-items:center;gap:8px;display:inline-flex}.landing-social{border:1px solid var(--ui-border);background:var(--ui-bg);width:30px;height:30px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:color .15s,border-color .15s,transform .15s;display:inline-flex}.landing-social:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.menu-home-btn{width:26px;height:22px;color:var(--text-secondary);border-radius:4px;justify-content:center;align-items:center;margin-right:2px;text-decoration:none;display:inline-flex}.menu-home-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.menu-mode-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);background:var(--surface);border:1px solid var(--ui-border);border-radius:999px;margin-right:6px;padding:2px 8px;font-size:10px;font-weight:600}.fp-insert-btn:hover{border-color:var(--accent)!important}button,input,select,textarea{font-family:var(--font-sans);font-size:11px}.app-container{background:var(--ui-bg);width:100vw;height:100vh;color:var(--text-primary);font-family:var(--font-sans);flex-direction:column;display:flex;overflow:hidden}.menu-bar{background:var(--ui-bg);border-bottom:1px solid var(--ui-border);z-index:100;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;height:36px;min-height:36px;padding:0 12px;display:flex}.menu-bar .app-title{font-family:var(--font-sans);color:var(--text-primary);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:6px;margin-right:24px;font-size:12px;font-weight:700;display:flex}.menu-bar .app-title svg{width:14px;height:14px;color:var(--accent)}.menu-item{position:relative}.menu-item>button{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:6px 12px;font-size:11px;font-weight:600;transition:all .15s}.menu-item>button:hover,.menu-item>button.active{background:var(--surface);color:var(--text-primary)}.menu-dropdown{background:var(--ui-bg);border:1px solid var(--ui-border);z-index:200;min-width:180px;box-shadow:0 6px 16px var(--shadow-color);border-radius:4px;padding:4px;animation:.12s cubic-bezier(.16,1,.3,1) dropdownIn;position:absolute;top:100%;left:0}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-dropdown button{width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:11px;font-weight:500;transition:all .1s;display:flex}.menu-dropdown button:hover{background:var(--surface-hover);color:var(--text-primary)}.menu-dropdown button .shortcut{color:var(--text-muted);font-family:var(--font-mono);margin-left:20px;font-size:9px}.menu-dropdown .separator{background:var(--ui-border);height:1px;margin:4px 0}.feedback-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;transition:all .15s;display:flex}.feedback-btn:hover{background:var(--surface);color:var(--text-primary)}.feedback-btn svg{width:16px;height:16px}.gank-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:6px;transition:all .15s;display:flex}.gank-btn:hover{background:var(--surface);color:var(--accent)}.gank-btn svg{width:16px;height:16px}.theme-toggle-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:6px;transition:all .15s;display:flex}.theme-toggle-btn:hover{background:var(--surface);color:var(--text-primary)}.theme-toggle-btn svg{width:16px;height:16px}.main-area{flex:1;display:flex;overflow:hidden}.left-toolbar{background:var(--ui-bg);border-right:1px solid var(--ui-border);z-index:50;flex-direction:column;align-items:center;gap:8px;width:48px;min-width:48px;padding:12px 0;display:flex}.tool-btn{border:1px solid var(--ui-border);background:var(--ui-bg);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.tool-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.tool-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tool-btn svg{width:16px;height:16px}.via-tool-wrapper{display:inline-block;position:relative}.via-submenu-popup{background:var(--surface);border:1px solid var(--ui-border);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:6px;gap:4px;padding:4px;display:flex;position:absolute;top:50%;left:36px;transform:translateY(-50%);box-shadow:0 4px 12px #00000026}.via-submenu-popup:before{content:"";background:0 0;width:12px;height:100%;position:absolute;top:0;left:-12px}.via-submenu-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.via-submenu-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.via-submenu-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.toolbar-divider{background:var(--ui-border);width:24px;height:1px;margin:4px 0}.color-swatch{cursor:pointer;border:1px solid var(--ui-border);border-radius:3px;width:26px;height:26px;transition:transform .15s,border-color .15s;position:relative}.color-swatch:hover{z-index:10;transform:scale(1.1)}.color-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--accent);transform:scale(1.05)}.canvas-container{background:var(--canvas-bg);flex:1;position:relative;overflow:hidden}.canvas-container canvas{cursor:crosshair;display:block}.canvas-container.tool-select canvas{cursor:default}.canvas-container.panning canvas{cursor:grab}.canvas-container.panning:active canvas{cursor:grabbing}.canvas-container.tool-dropper canvas{cursor:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8cGF0aCBkPSJNMTQgMTggTDIyIDEwIEEgNS43IDUuNyAwIDAgMSAzMCAxOCBMMTggMjIgWiIgZmlsbD0iI2VmNDQ0NCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgPHBhdGggZD0iTTQgMjggTDE0IDE4IEwxOCAyMiBMOCAzMiBaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CiAgPHBhdGggZD0iTTYgMzAgTDExIDI1IEwxNSAyOSBMMTAgMzIgWiIgZmlsbD0iIzNiODJmNiIvPgogIDxwYXRoIGQ9Ik0wIDMyIEw0IDI4IEw4IDMyIFoiIGZpbGw9IndoaXRlIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+) 0 32,crosshair}.inline-label-input{background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--text-primary);font-family:var(--font-mono);z-index:50;min-width:80px;box-shadow:0 4px 12px var(--shadow-color);border-radius:3px;outline:none;padding:4px 8px;font-size:11px;position:absolute}.right-panel{background:var(--ui-bg);border-left:1px solid var(--ui-border);z-index:50;flex-direction:column;width:240px;min-width:240px;display:flex;overflow-y:auto}.panel-header{border-bottom:1px solid var(--ui-border);text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);padding:12px;font-size:10px;font-weight:700}.panel-empty{color:var(--text-muted);text-align:center;padding:32px 16px;font-size:11px;line-height:1.6}.panel-content{flex-direction:column;gap:16px;padding:16px;display:flex}.prop-group{flex-direction:column;gap:6px;display:flex}.prop-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-size:9px;font-weight:700}.prop-input{background:var(--surface);border:1px solid var(--ui-border);color:var(--text-primary);border-radius:3px;outline:none;padding:6px 8px;font-size:11px;transition:all .15s}.prop-input:focus{border-color:var(--accent)}.prop-select{background:var(--surface);border:1px solid var(--ui-border);color:var(--text-primary);cursor:pointer;border-radius:3px;outline:none;padding:6px 8px;font-size:11px}.prop-btn{border:1px solid var(--ui-border);background:var(--surface);color:var(--text-primary);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:11px;font-weight:600;transition:all .15s;display:flex}.prop-btn:hover{background:var(--surface-hover)}.prop-btn.danger{border-color:var(--danger);color:var(--danger)}.prop-btn.danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.prop-btn-row{gap:8px;display:flex}.prop-btn-row .prop-btn{flex:1}.color-option{border:1px solid var(--ui-border);background:var(--surface);color:var(--text-primary);cursor:pointer;font-family:var(--font-mono);border-radius:3px;align-items:center;gap:8px;margin-top:4px;padding:6px 8px;font-size:10px;font-weight:500;transition:all .15s;display:flex}.color-option:hover{background:var(--surface-hover)}.color-option.active{background:var(--accent);color:#fff;border-color:var(--accent)}.color-dot{border:1px solid var(--ui-border);border-radius:2px;flex-shrink:0;width:10px;height:10px}.status-bar{background:var(--ui-bg);border-top:1px solid var(--ui-border);height:26px;min-height:26px;color:var(--text-secondary);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:0 12px;font-size:9px;font-weight:600;display:flex}.status-left{align-items:center;gap:16px;display:flex}.status-right{color:var(--text-muted);align-items:center;gap:12px;display:flex}.credit-link{color:var(--accent);font-weight:700;text-decoration:none;transition:color .15s}.credit-link:hover{text-decoration:underline}.credit-icon{color:var(--text-muted);align-items:center;gap:4px;text-decoration:none;transition:color .15s;display:inline-flex}.credit-icon:hover{color:var(--text-primary)}.status-item{align-items:center;gap:4px;display:flex}.status-item .dot{border-radius:50%;width:6px;height:6px}.status-item .dot.on{background:#30d158}.status-item .dot.off{background:var(--danger)}.status-separator{background:var(--ui-border);width:1px;height:12px}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:500;background:#0006;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--ui-bg);border:1px solid var(--ui-border);width:480px;max-width:90vw;box-shadow:0 12px 30px var(--shadow-color);border-radius:6px;animation:.18s cubic-bezier(.16,1,.3,1) modalIn}@keyframes modalIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--ui-border);align-items:center;gap:10px;padding:20px 20px 12px;display:flex}.modal-header h2{text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);font-size:13px;font-weight:700}.modal-header svg{color:var(--accent)}.modal-body{flex-direction:column;gap:12px;padding:20px;display:flex}.template-option{background:var(--surface);border:1px solid var(--ui-border);cursor:pointer;border-radius:4px;align-items:flex-start;gap:16px;padding:14px;transition:all .15s;display:flex}.template-option:hover{border-color:var(--accent);background:var(--surface-hover)}.template-option .tpl-icon{border:1px solid var(--ui-border);background:var(--ui-bg);width:40px;height:40px;color:var(--text-primary);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.template-option:hover .tpl-icon{background:var(--accent);color:#fff;border-color:var(--accent)}.template-option .tpl-info h3{color:var(--text-primary);margin-bottom:4px;font-size:12px;font-weight:700}.template-option .tpl-info p{color:var(--text-secondary);font-size:10px;line-height:1.5}.export-modal{width:620px;max-width:95vw}.export-layout{gap:24px;padding:20px;display:flex}@media (width<=600px){.export-layout{flex-direction:column;gap:16px}}.export-preview-container{flex-direction:column;flex:1.1;align-items:center;gap:12px;display:flex}.export-preview-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);align-self:flex-start;font-size:9px;font-weight:700}.export-preview-box{aspect-ratio:1;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:4px;justify-content:center;align-items:center;width:100%;max-height:250px;display:flex;position:relative;overflow:hidden}.export-preview-box canvas{object-fit:contain;max-width:100%;max-height:100%;display:block}.export-preview-dims{color:var(--text-muted);text-align:center;font-size:9px;font-weight:600}.export-options-container{flex-direction:column;flex:.9;justify-content:space-between;gap:14px;display:flex}.export-option-group{flex-direction:column;gap:6px;display:flex}.export-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);font-size:9px;font-weight:700}.export-btn-group{gap:6px;display:flex}.export-btn-group.vertical{flex-direction:column}.export-btn{border:1px solid var(--ui-border);background:var(--surface);color:var(--text-primary);cursor:pointer;text-align:center;border-radius:3px;flex:1;padding:8px 10px;font-size:11px;font-weight:600;transition:all .15s}.export-btn:hover{background:var(--surface-hover)}.export-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.export-actions{gap:10px;margin-top:12px;display:flex}.export-action-btn{border:1px solid var(--ui-border);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;text-align:center;border-radius:3px;flex:1;padding:10px;font-size:11px;font-weight:700;transition:all .15s}.export-action-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.export-action-btn.primary:hover{background:#e04d00}.export-action-btn.secondary{background:var(--surface);color:var(--text-primary)}.export-action-btn.secondary:hover{background:var(--surface-hover)}.zoom-controls{background:var(--ui-bg);border:1px solid var(--ui-border);box-shadow:0 4px 12px var(--shadow-color);z-index:40;border-radius:6px;flex-direction:column;align-items:stretch;display:flex;position:absolute;bottom:12px;right:12px;overflow:hidden}.zoom-btn{width:40px;height:32px;color:var(--text-primary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s;display:flex}.zoom-btn:hover{background:var(--surface-hover)}.zoom-btn.zoom-level{border-top:1px solid var(--ui-border);border-bottom:1px solid var(--ui-border);color:var(--text-secondary);font-family:Roboto Mono,monospace;font-size:10px;font-weight:700}.shortcuts-hud{z-index:40;transition:all .15s ease-out;position:absolute;bottom:12px;left:12px;overflow:hidden;background:var(--ui-bg)!important;border:1px solid var(--ui-border)!important;box-shadow:0 4px 12px var(--shadow-color)!important;border-radius:4px!important}.shortcuts-hud.collapsed{width:auto;height:32px}.shortcuts-hud.expanded{width:250px;padding:12px}.hud-toggle-btn{color:var(--text-primary);cursor:pointer;text-align:left;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;border-radius:3px;align-items:center;gap:6px;width:100%;padding:4px 8px;font-size:10px;font-weight:700;display:flex}.hud-toggle-btn:hover{background:var(--surface-hover)}.hud-content{margin-top:8px}.hud-header{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px;font-size:9px;font-weight:700}.hud-grid{flex-direction:column;gap:6px;display:flex}.hud-row{color:var(--text-primary);justify-content:space-between;align-items:center;font-size:10px;display:flex}.hud-row span{font-size:10px}.hud-row kbd{background:var(--surface);border:1px solid var(--ui-border);color:var(--text-primary);font-size:8px;font-weight:700;font-family:var(--font-mono);box-shadow:none;border-radius:2px;padding:1px 4px}.layers-section-header{border-top:1px solid var(--ui-border);text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);margin-top:8px;padding:12px;font-size:9px;font-weight:700}.layers-toggle-all-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500;transition:all .15s}.layers-toggle-all-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.layers-list{flex-direction:column;gap:4px;padding:0 12px 16px;display:flex}.layer-row{border:1px solid var(--ui-border);background:var(--surface);color:var(--text-primary);border-radius:3px;justify-content:space-between;align-items:center;padding:6px 8px;transition:all .15s;display:flex}.layer-row:hover{background:var(--surface-hover)}.layer-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.layer-color-indicator{border:1px solid var(--ui-border);border-radius:2px;flex-shrink:0;width:10px;height:10px}.layer-color-indicator.via-symbol{background:var(--text-primary);border-color:var(--ui-border)}.layer-color-indicator.label-symbol{color:#fff;font-size:8px;font-weight:700;font-family:var(--font-mono);background:#8888a8;justify-content:center;align-items:center;line-height:1;display:flex}.layer-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:500;overflow:hidden}.layer-controls{align-items:center;gap:4px;display:flex}.layer-ctrl-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:4px;transition:all .15s;display:flex}.layer-ctrl-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.layer-ctrl-btn.inactive{color:var(--text-muted);opacity:.4}.layer-ctrl-btn.active{color:var(--accent)}.layer-opacity-control{align-items:center;gap:6px;margin-left:2px;display:flex}.layer-opacity-slider{appearance:none;background:var(--ui-border);cursor:pointer;border-radius:0;outline:none;width:32px;height:2px;transition:width .15s}.layer-opacity-slider:hover,.layer-opacity-slider:focus{width:48px}.layer-opacity-slider::-webkit-slider-thumb{appearance:none;border:1px solid var(--ui-border);background:var(--ui-bg);cursor:pointer;border-radius:50%;width:8px;height:8px;transition:background .15s}.layer-opacity-slider::-webkit-slider-thumb:hover{background:var(--accent)}.layer-opacity-percent{color:var(--text-muted);text-align:right;width:24px;font-size:8px;font-weight:600;font-family:var(--font-mono)}.custom-swatch{overflow:hidden}.custom-color-picker-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;top:0;left:0}.panel-tabs{border-bottom:1px solid var(--ui-border);background:var(--ui-bg);display:flex}.panel-tab{text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 8px;font-size:10px;font-weight:700;transition:all .15s;position:relative}.panel-tab:hover{color:var(--text-primary);background:var(--surface)}.panel-tab.active{color:var(--text-primary)}.panel-tab.active:after{content:"";background:var(--accent);border-radius:1px;height:2px;position:absolute;bottom:0;left:8px;right:8px}.layer-palette-scroll{flex-direction:column;align-items:center;width:100%;max-height:calc(100vh - 380px);padding:0 4px;display:flex;overflow:hidden auto}.layer-palette-scroll::-webkit-scrollbar{width:3px}.layer-palette-scroll::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:2px}.palette-row{border:1px solid var(--ui-border);cursor:pointer;background:var(--ui-bg);box-sizing:border-box;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;margin-bottom:4px;transition:all .15s;display:flex;position:relative}.palette-row:hover{background:var(--surface-hover)}.palette-row.active{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 2px var(--accent)}.palette-swatch{border:1px solid #00000026;border-radius:2px;flex-shrink:0;width:20px;height:20px}.palette-edit{opacity:0;cursor:pointer;background:#0009;border-radius:3px;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.palette-row:hover .palette-edit{opacity:1}.palette-color-input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.palette-remove-btn{background:var(--danger);cursor:pointer;color:#fff;opacity:0;z-index:10;border:none;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;padding:0;transition:opacity .15s;display:flex;position:absolute;top:-4px;right:-4px}.palette-row:hover .palette-remove-btn{opacity:1}.palette-remove-btn:hover{color:#fff;background:#e04d00}.palette-add-metal-btn{background:var(--surface);border:1px dashed var(--ui-border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;margin-top:2px;padding:0;transition:all .15s;display:flex}.palette-add-metal-btn:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.palette-divider-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-top:1px solid var(--ui-border);text-align:center;margin-top:4px;padding:6px 0 2px;font-size:7px;font-weight:700}.layers-tab-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.layers-tab-header{text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;padding:10px 12px;font-size:9px;font-weight:700;display:flex}.layer-action-btn{background:var(--surface);border:1px solid var(--ui-border);color:var(--text-secondary);cursor:pointer;border-radius:3px;align-items:center;gap:3px;padding:3px 6px;font-size:9px;font-weight:600;transition:all .15s;display:flex}.layer-action-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent)}.layer-stack{flex-direction:column;flex:1;gap:3px;padding:8px;display:flex;overflow-y:auto}.layer-drop-indicator{background:var(--accent);height:2px;box-shadow:0 0 6px var(--accent);border-radius:1px;margin:3px 0;transition:all .1s;position:relative}.layer-stack-row{border:1px solid var(--ui-border);background:var(--surface);cursor:pointer;border-radius:3px;align-items:center;gap:4px;min-height:32px;padding:5px 6px;transition:all .12s;display:flex}.layer-stack-row:hover{background:var(--surface-hover)}.layer-stack-row.active{border-color:var(--accent);background:#2f6fed14}.layer-stack-row.dragging{opacity:.5}.layer-drag-handle{cursor:grab;color:var(--text-muted);border-radius:2px;align-items:center;padding:2px;transition:color .15s;display:flex}.layer-drag-handle:hover{color:var(--text-primary)}.layer-drag-handle:active{cursor:grabbing}.layer-vis-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:2px;align-items:center;padding:2px;transition:all .15s;display:flex}.layer-vis-btn:hover{color:var(--text-primary)}.layer-vis-btn.hidden{color:var(--text-muted);opacity:.4}.layer-stack-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:4px;min-width:0;font-size:10px;font-weight:500;display:flex;overflow:hidden}.layer-custom-badge{background:var(--accent);color:#fff;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:7px;font-weight:700;display:inline-flex}.layer-el-count{color:var(--text-muted);flex-shrink:0;font-size:8px;font-weight:600}.layer-rename-input{background:var(--surface);border:1px solid var(--accent);color:var(--text-primary);border-radius:2px;outline:none;flex:1;min-width:0;padding:2px 4px;font-size:10px}.layer-options-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:2px;align-items:center;padding:2px;transition:all .15s;display:flex}.layer-options-btn:hover{color:var(--text-primary);background:var(--surface-hover)}.layer-options-dropdown{background:var(--ui-bg);border:1px solid var(--ui-border);z-index:200;min-width:120px;box-shadow:0 6px 16px var(--shadow-color);border-radius:4px;padding:4px;animation:.12s cubic-bezier(.16,1,.3,1) dropdownIn;position:absolute;top:100%;right:0}.layer-options-dropdown button{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:3px;padding:6px 10px;font-size:10px;font-weight:500;transition:all .1s;display:block}.layer-options-dropdown button:hover{background:var(--surface-hover);color:var(--text-primary)}.layer-delete-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:2px;align-items:center;padding:2px;transition:all .15s;display:flex}.layer-delete-btn:hover{color:var(--danger)}.layer-delete-btn:disabled{opacity:.2;cursor:not-allowed}.custom-layer-form{border-bottom:1px solid var(--ui-border);background:var(--surface);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.clf-field{flex-direction:column;gap:3px;display:flex}.clf-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:9px;font-weight:700}.clf-field input[type=text]{background:var(--ui-bg);border:1px solid var(--ui-border);color:var(--text-primary);border-radius:3px;outline:none;padding:5px 8px;font-size:11px}.clf-field input[type=text]:focus{border-color:var(--accent)}.clf-field input[type=color]{border:1px solid var(--ui-border);cursor:pointer;background:0 0;border-radius:3px;width:32px;height:24px;padding:0}.clf-field input[type=range]{width:100%}.clf-stroke-options{gap:4px;display:flex}.clf-stroke-btn{border:1px solid var(--ui-border);background:var(--ui-bg);color:var(--text-primary);cursor:pointer;text-align:center;border-radius:3px;flex:1;padding:4px 6px;font-size:9px;font-weight:600;transition:all .15s}.clf-stroke-btn:hover{background:var(--surface-hover)}.clf-stroke-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.clf-actions{gap:6px;margin-top:4px;display:flex}.clf-create-btn{background:var(--accent);color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:3px;flex:1;padding:6px;font-size:10px;font-weight:700;transition:all .15s}.clf-create-btn:hover{background:#e04d00}.clf-create-btn:disabled{opacity:.4;cursor:not-allowed}.clf-cancel-btn{background:var(--surface);color:var(--text-primary);border:1px solid var(--ui-border);cursor:pointer;border-radius:3px;padding:6px 12px;font-size:10px;font-weight:600;transition:all .15s}.clf-cancel-btn:hover{background:var(--surface-hover)}.mobile-sidebar-toggle-btn{display:none}.canvas-floating-btn{background:var(--accent);color:#fff;border:1px solid var(--ui-border);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;z-index:100;border-radius:4px;padding:8px 16px;font-size:11px;font-weight:700;transition:all .15s;position:absolute;top:12px;left:50%;transform:translate(-50%)}.canvas-floating-btn:hover{background:#e04d00}@media (width<=768px){.main-area{position:relative}.right-panel{z-index:150;width:240px;box-shadow:-4px 0 16px var(--shadow-color);border-left:1px solid var(--ui-border);background:var(--ui-bg);transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.right-panel.open{transform:translate(0)}.mobile-sidebar-toggle-btn{background:var(--ui-bg);border:1px solid var(--ui-border);width:36px;height:36px;color:var(--text-primary);cursor:pointer;z-index:100;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;top:12px;right:12px}.mobile-sidebar-toggle-btn:hover{background:var(--surface-hover)}.menu-bar{white-space:nowrap;-webkit-overflow-scrolling:touch;border-bottom:1px solid var(--ui-border);justify-content:space-between;padding:0 4px;overflow-x:auto}.menu-bar::-webkit-scrollbar{display:none}.menu-bar .app-title{margin-right:8px}.shortcuts-hud{display:none}.status-bar{height:28px;min-height:28px;padding:0 6px;font-size:8px}.status-left{gap:8px}.status-right{gap:6px}.credit-author,.credit-author-sep,.credit-text{display:none}.status-separator{margin:0 2px}.left-toolbar{border-right:1px solid var(--ui-border);width:44px;min-width:44px;padding:10px 0}.tool-btn{width:30px;height:30px}.color-swatch{width:22px;height:22px}.layer-palette-scroll{max-height:calc(100vh - 340px)}}.autosave-toast{background:var(--surface);color:var(--text-primary);border:1px solid var(--ui-border);box-shadow:0 4px 16px var(--shadow-color);z-index:1000;pointer-events:none;border-radius:6px;padding:10px 20px;font-size:12px;font-weight:600;animation:.3s ease-out toastIn;position:fixed;bottom:40px;right:20px}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.support-toast{z-index:1000;width:320px;box-shadow:0 12px 40px var(--shadow-color);border-radius:12px;flex-direction:column;gap:12px;padding:16px;transition:background-color .3s,border-color .3s,color .3s;animation:.4s cubic-bezier(.16,1,.3,1) toastIn;display:flex;position:fixed;bottom:40px;right:20px}[data-theme=dark] .support-toast{-webkit-backdrop-filter:blur(16px);color:var(--text-primary);background:#1a1a1ed9;border:1px solid #ffffff14}[data-theme=light] .support-toast{-webkit-backdrop-filter:blur(16px);color:var(--text-primary);background:#ffffffd9;border:1px solid #00000014}.support-toast-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background-color .2s,color .2s;display:flex;position:absolute;top:12px;right:12px}.support-toast-close:hover{background:var(--surface-hover);color:var(--text-primary)}.support-toast-content{padding-right:16px}.support-toast-title{font-family:var(--font-sans);color:var(--text-primary);letter-spacing:-.2px;margin-bottom:4px;font-size:13px;font-weight:700}.support-toast-text{font-family:var(--font-sans);color:var(--text-secondary);font-size:11px;line-height:1.4}.support-toast-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.support-btn-action{cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-sans);border:none;border-radius:6px;padding:6px 12px;transition:all .2s}.support-btn-action.feedback{background:var(--surface);color:var(--text-primary);border:1px solid var(--ui-border)}.support-btn-action.feedback:hover{background:var(--surface-hover)}.support-btn-action.gank{background:var(--accent);color:#fff;flex-grow:1}.support-btn-action.gank:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #2f6fed33}.support-btn-action.review{color:#1a1a1a;background:#f5a623;flex-grow:1;font-weight:600}.support-btn-action.review:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 4px 12px #f5a62340}.support-btn-action.remind{color:var(--text-muted);background:0 0;border:none;padding-left:4px;padding-right:4px}.support-btn-action.remind:hover{color:var(--text-secondary);text-decoration:underline}@media (width<=768px){.support-toast{width:auto;max-width:calc(100% - 40px);box-shadow:0 8px 30px var(--shadow-color);bottom:20px;left:20px;right:20px}}
