:root{--bg-primary:#111119;--bg-secondary:#1a1a24;--bg-tertiary:#223;--bg-hover:#2a2a3d;--bg-active:#333350;--surface:#1e1e2e;--border:#333350;--border-light:#446;--text-primary:#f0f0f8;--text-secondary:#b0b0c0;--text-muted:#707080;--accent:#f5c84b;--accent-glow:rgba(245,200,75,.3);--danger:#ff5252;--success:#69f0ae;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow:0 4px 20px rgba(0,0,0,.4)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{width:100%;height:100%;overflow:hidden;background:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-webkit-user-select:none;-moz-user-select:none;user-select:none}.editor-layout{display:flex;flex-direction:column;width:100vw;height:100dvh}.editor-body{flex:1 1;min-height:0}.editor-body,.sidebar-panel{display:flex;overflow:hidden;position:relative}.sidebar-panel{flex-shrink:0;align-self:stretch;z-index:10}.sidebar-left{flex-direction:row}.sidebar-right{flex-direction:row-reverse}.sidebar-inner{transition:width .28s cubic-bezier(.4,0,.2,1);flex-shrink:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebar-inner.resizing{transition:none}.sidebar-panel.closed .sidebar-inner{width:0!important}.sidebar-inner .layers-panel,.sidebar-inner .ls-root{flex:1 1;min-width:0;min-height:0}.sidebar-resize-handle{width:5px;flex-shrink:0;cursor:col-resize;background:transparent;position:relative;transition:background .15s;z-index:20}.sidebar-resize-handle:after{content:"";position:absolute;top:0;bottom:0;width:12px;background:transparent}.sidebar-resize-right:after{left:-4px}.sidebar-resize-left:after{right:-4px}.sidebar-resize-handle.dragging,.sidebar-resize-handle:hover{background:var(--accent);box-shadow:0 0 8px var(--accent)}.sidebar-tab{width:14px;flex-shrink:0;background:var(--bg-secondary);border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;border-left:1px solid var(--border)}.sidebar-tab:hover{background:var(--bg-hover);color:var(--accent)}.sidebar-tab-left{border-left:1px solid var(--border)}.sidebar-tab-right{border-left:none;border-right:1px solid var(--border)}.sidebar-backdrop{display:none}.panel-toggle-btn.active{color:var(--accent)!important}@media (max-width:1023px){.sidebar-tab{display:none}}@media (max-width:767px){.sidebar-panel{position:fixed;top:48px;bottom:0;z-index:200;transition:transform .28s cubic-bezier(.4,0,.2,1)}.sidebar-left{left:0;transform:translateX(-100%);box-shadow:4px 0 24px rgba(0,0,0,.4)}.sidebar-left.open{transform:translateX(0)}.sidebar-right{right:0;transform:translateX(100%);box-shadow:-4px 0 24px rgba(0,0,0,.4)}.sidebar-right.open{transform:translateX(0)}.sidebar-inner,.sidebar-panel.closed .sidebar-inner{width:auto!important;overflow-y:auto}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:199;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:backdrop-in .2s ease}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.save-btn span,.top-title,.zoom-text{display:none}}@media (max-width:479px){.top-logo{width:22px;height:22px}.top-btn{padding:6px}.top-center .top-btn:nth-child(n+5){display:none}}.top-bar{justify-content:space-between;height:48px;padding:0 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.top-bar,.top-left{display:flex;align-items:center;gap:8px}.top-center,.top-right{display:flex;align-items:center;gap:4px}.top-title{font-size:15px;font-weight:700;color:var(--accent);letter-spacing:.5px}.top-btn{display:flex;align-items:center;justify-content:center;gap:4px;width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);cursor:pointer;transition:all .15s}.top-btn:hover{background:var(--bg-hover)}.top-btn:active{background:var(--bg-active)}.top-btn:disabled{opacity:.35;cursor:not-allowed}.save-btn{width:auto!important;padding:0 12px;background:var(--accent);color:var(--bg-primary);font-weight:600;font-size:13px;gap:6px}.save-btn:hover{filter:brightness(1.1);background:var(--accent)}.top-divider{width:1px;height:20px;background:var(--border);margin:0 4px}.zoom-text{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:44px;text-align:center}.canvas-wrapper{flex:1 1;min-width:0;min-height:0;position:relative;overflow:hidden;background:linear-gradient(45deg,#1a1a24 25%,transparent 0),linear-gradient(-45deg,#1a1a24 25%,transparent 0),linear-gradient(45deg,transparent 75%,#1a1a24 0),linear-gradient(-45deg,transparent 75%,#1a1a24 0);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;background-color:#141420;cursor:crosshair;contain:strict}.canvas-transform{position:absolute;left:50%;top:50%;transform-origin:center center;box-shadow:0 0 60px rgba(0,0,0,.6);will-change:transform}.transparency-grid{background-image:linear-gradient(45deg,#e2e2e2 25%,transparent 0),linear-gradient(-45deg,#e2e2e2 25%,transparent 0),linear-gradient(45deg,transparent 75%,#e2e2e2 0),linear-gradient(-45deg,transparent 75%,#e2e2e2 0);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;background-color:#ccc}.canvas-layer{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:-webkit-optimize-contrast}.ls-root{width:100%;min-width:0;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.ls-tool-strip{overflow-y:auto;flex-shrink:0;max-height:45vh}.ls-tool-strip::-webkit-scrollbar{width:3px}.ls-tool-strip::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.ls-accordion-item{border-bottom:1px solid var(--border)}.ls-accordion-item:last-child{border-bottom:none}.ls-cat-row{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:600;transition:background .12s,color .12s;text-align:left}.ls-cat-row:hover{background:var(--bg-hover);color:var(--text-primary)}.ls-cat-row.active{background:var(--bg-active);color:var(--accent)}.ls-cat-icon{display:flex;align-items:center;flex-shrink:0}.ls-cat-label{flex:1 1}.ls-cat-chevron{opacity:.5}.ls-tool-list{background:var(--bg-tertiary);padding:3px 0 4px;animation:ls-expand .15s ease}@keyframes ls-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ls-tool-row{display:flex;align-items:center;gap:9px;width:100%;padding:6px 14px 6px 28px;border:none;border-left:2.5px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11.5px;font-weight:500;transition:all .12s;text-align:left}.ls-tool-row:hover{background:var(--bg-hover);color:var(--text-primary)}.ls-tool-row.active{border-left-color:var(--accent);background:var(--bg-active);color:var(--accent);font-weight:700}.ls-tool-icon-sm{display:flex;align-items:center;flex-shrink:0}.ls-tool-label{font-size:11px}.ls-props-divider{height:1px;background:var(--border);flex-shrink:0}.ls-props-panel{flex:1 1;min-height:0;overflow-y:auto;padding:6px 0}.ls-props-panel::-webkit-scrollbar{width:3px}.ls-props-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.lsp-group{padding:8px 12px;border-bottom:1px solid var(--border)}.lsp-group:last-child{border-bottom:none}.lsp-label{font-size:9.5px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}.lsp-slider-row{display:flex;align-items:center;gap:8px}.lsp-slider{flex:1 1;height:3px;accent-color:var(--accent);cursor:pointer}.lsp-val{font-size:11px;font-weight:700;color:var(--text-primary);min-width:34px;text-align:right}.lsp-icon-row{display:flex;gap:4px}.lsp-icon-btn{width:30px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .13s}.lsp-icon-btn.on{background:var(--accent);border-color:var(--accent);color:#000}.lsp-toggle-row{display:flex;align-items:center;gap:8px}.lsp-toggle{padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:600;transition:all .13s}.lsp-toggle.on{background:var(--bg-active);border-color:var(--accent);color:var(--accent)}.lsp-big-swatch{width:100%;height:26px;border-radius:var(--radius-sm);border:2px solid var(--border);cursor:pointer;margin-bottom:8px;transition:opacity .1s}.lsp-big-swatch:hover{opacity:.85}.lsp-color-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:3px;gap:3px}.lsp-swatch{height:18px;border-radius:3px;border:1.5px solid var(--border);cursor:pointer;transition:transform .1s}.lsp-swatch:hover{transform:scale(1.2)}.lsp-swatch.sel{border-color:var(--accent);box-shadow:0 0 5px var(--accent-glow)}.lsp-color-row{display:flex;align-items:center;gap:8px}.lsp-color-input{width:28px;height:28px;border-radius:4px;border:2px solid var(--border);cursor:pointer;padding:0;background:none}.lsp-filter-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px}.lsp-filter-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 2px;border:1.5px solid transparent;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;font-size:9px;text-align:center;transition:all .13s}.lsp-filter-btn.active{border-color:var(--accent);color:var(--accent)}.lsp-filter-btn:hover,.lsp-filter-thumb{background:var(--bg-hover)}.lsp-filter-thumb{width:32px;height:22px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}.lsp-textarea{padding:6px 8px;resize:vertical;font-family:inherit}.lsp-select,.lsp-textarea{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px}.lsp-select{padding:5px 6px;cursor:pointer}.lsp-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0;color:var(--text-secondary);font-size:11px}.prop-section{margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border)}.prop-section:last-child{border-bottom:none}.prop-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.prop-row{display:flex;align-items:center;gap:8px}.prop-slider{flex:1 1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:2px;background:var(--bg-tertiary);outline:none;cursor:pointer}.prop-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 0 6px var(--accent-glow)}.prop-value{font-size:11px;font-weight:600;color:var(--text-secondary);min-width:36px;text-align:right}.color-dots{display:flex;flex-wrap:wrap;gap:5px}.color-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all .15s}.color-dot:hover{transform:scale(1.15)}.color-dot.selected{border-color:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.color-dot.active-color{width:28px;height:28px;border-color:var(--accent)}.toggle-btn{padding:4px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-primary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s}.toggle-btn.on{border-color:var(--accent);color:var(--accent)}.layers-panel{width:220px;min-width:220px;background:var(--bg-secondary);border-left:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;overflow:hidden;contain:content}.layers-header{display:flex;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:700;border-bottom:1px solid var(--border);color:var(--text-primary)}.layer-count{margin-left:auto;font-size:11px;font-weight:600;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px}.layers-list{overflow-y:auto;flex:1 1;padding:4px}.layer-item{padding:8px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;margin-bottom:2px;border:1.5px solid transparent}.layer-item:hover{background:var(--bg-hover)}.layer-item.active{background:var(--bg-active);border-color:var(--accent);box-shadow:inset 0 0 0 0 var(--accent-glow)}.layer-main{gap:6px}.layer-main,.layer-vis-btn{display:flex;align-items:center}.layer-vis-btn{width:26px;height:26px;justify-content:center;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:4px}.layer-vis-btn:hover{background:var(--bg-tertiary)}.layer-name{flex:1 1;background:transparent;border:none;color:var(--text-primary);font-size:12px;font-weight:500;outline:none;min-width:0}.layer-name:focus{background:var(--bg-tertiary);border-radius:4px;padding:2px 6px}.layer-actions{display:flex;gap:2px}.layer-actions button{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:4px}.layer-actions button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.layer-actions .delete-btn:hover{color:var(--danger)}.layer-actions button:disabled{opacity:.3;cursor:not-allowed}.layer-opacity{display:flex;align-items:center;gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.layer-opacity input[type=range]{flex:1 1;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border-radius:2px}.layer-opacity input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent)}.bottom-tray{background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}.bt-categories{display:flex;gap:2px;padding:6px 8px;overflow-x:auto;border-bottom:1px solid var(--border)}.bt-categories::-webkit-scrollbar{height:4px}.bt-categories::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.cat-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 10px;border:1.5px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:10px;font-weight:600;transition:all .15s;white-space:nowrap;min-width:52px}.cat-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cat-btn.active{background:var(--bg-active);border-color:var(--accent);color:var(--accent)}.bt-tools{display:flex;gap:4px;padding:8px 8px 10px;overflow-x:auto}.bt-tools::-webkit-scrollbar{height:4px}.bt-tools::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.tool-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;border:1.5px solid transparent;border-radius:var(--radius);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .2s;min-width:60px}.tool-btn:hover{background:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px)}.tool-btn.active{background:var(--bg-active);border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.tool-icon-box{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:16px;font-weight:800}.tool-name{font-size:10px;font-weight:600;white-space:nowrap}.adjustment-slider-panel{background:var(--surface);border-top:1px solid var(--border);padding:8px 16px}.filter-thumbs-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:6px;border-bottom:1px solid var(--border)}.filter-thumbs-strip::-webkit-scrollbar{height:4px}.filter-thumbs-strip::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.filter-thumb{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;border:1.5px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);padding:4px;transition:all .15s}.filter-thumb:hover{background:var(--bg-hover)}.filter-thumb.active{border-color:var(--accent);color:var(--accent)}.filter-preview{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--text-muted)}.filter-label{font-size:10px;font-weight:600;white-space:nowrap}.slider-row{display:flex;align-items:center;gap:10px}.slider-label{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:80px}.adj-slider{flex:1 1;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3px;background:var(--bg-tertiary);outline:none;cursor:pointer}.adj-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 0 8px var(--accent-glow)}.slider-value{font-size:12px;font-weight:700;color:var(--accent);min-width:40px;text-align:right}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@media (max-width:1024px){.properties-tray{width:180px;min-width:180px;padding:8px}.layers-panel{width:200px;min-width:0}.top-bar{padding:0 8px}.top-title{font-size:13px}.save-btn span,.top-divider{display:none}.zoom-text{min-width:36px;font-size:11px}.bottom-tools{gap:2px;padding:4px 8px}.tool-category-btn{padding:6px 8px;font-size:10px;gap:3px}.tool-item{padding:4px 8px;font-size:11px}}@media (max-width:768px){.layers-panel,.properties-tray,.top-title{display:none}.top-bar{height:44px;gap:4px}.top-btn{width:32px;height:32px}.save-btn{padding:0 10px;font-size:12px;height:32px}.canvas-wrapper{touch-action:none;-webkit-touch-callout:none}.bottom-tools{gap:2px;padding:4px 6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.bottom-tools::-webkit-scrollbar{display:none}.tool-category-btn{padding:6px 10px;font-size:11px;white-space:nowrap;flex-shrink:0}.tool-category-btn svg{width:14px;height:14px}.tool-items{gap:2px;padding:4px 6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tool-items::-webkit-scrollbar{display:none}.tool-item{padding:4px 10px;font-size:11px;white-space:nowrap;flex-shrink:0}.adjustment-slider-panel{padding:6px 12px}.slider-row{gap:8px}.slider-label{font-size:11px;min-width:50px}.adj-slider{height:3px}.filter-thumbs-strip{gap:6px;padding:4px 8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-thumbs-strip::-webkit-scrollbar{display:none}.filter-thumb{min-width:52px}.filter-preview{width:40px;height:40px}.filter-label{font-size:9px}.crop-controls{flex-wrap:wrap;padding:8px 12px;gap:8px;bottom:8px}.crop-ratio-btn{padding:5px 8px;font-size:11px}.crop-size-info{min-width:auto}.text-modal{padding:16px;width:95vw}.text-modal-input{min-height:56px;font-size:14px}.text-modal-row{gap:8px;margin-bottom:10px}.text-modal-row label{min-width:45px;font-size:12px}.style-btn{width:34px;height:34px}}@media (max-width:480px){.top-bar{height:40px;padding:0 6px}.top-logo{height:22px}.top-btn{width:28px;height:28px}.top-btn svg{width:14px;height:14px}.save-btn{padding:0 8px;font-size:11px;height:28px}.bottom-tools{padding:3px 4px}.tool-category-btn{padding:5px 7px;font-size:10px;gap:2px;border-radius:4px}.tool-category-btn svg{width:12px;height:12px}.tool-items{padding:3px 4px}.tool-item{padding:3px 8px;font-size:10px}.adjustment-slider-panel{padding:4px 8px}.slider-label{font-size:10px;min-width:40px}.slider-value{font-size:10px;min-width:30px}.crop-controls{padding:6px 8px;gap:6px;border-radius:var(--radius)}.crop-ratios{gap:2px}.crop-ratio-btn{padding:4px 6px;font-size:10px}.crop-apply,.crop-cancel{padding:6px 10px;font-size:12px}.text-modal{padding:12px}.text-modal-header{font-size:16px;margin-bottom:14px}.text-modal-input{min-height:48px;font-size:13px}.text-modal-actions{gap:6px}.text-modal-apply,.text-modal-cancel{padding:8px 14px;font-size:13px}}@supports (padding:env(safe-area-inset-bottom)){.editor-bottom{padding-bottom:env(safe-area-inset-bottom)}.top-bar{padding-top:env(safe-area-inset-top)}}.top-logo{height:28px;width:auto;object-fit:contain;filter:brightness(1.1)}.canvas-container-wrap{position:relative;flex:1 1;min-width:0;display:flex;align-items:stretch;overflow:hidden}.text-modal-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.text-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:460px;max-width:95vw;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.text-modal-header{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:var(--text-primary);font-size:18px;font-weight:700}.text-modal-header span{flex:1 1}.text-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:all .15s}.text-modal-close:hover{color:var(--danger);background:var(--bg-hover)}.text-modal-input{width:100%;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;color:var(--text-primary);font-size:16px;font-family:inherit;resize:vertical;min-height:70px;margin-bottom:16px;outline:none;transition:border-color .2s}.text-modal-input:focus{border-color:var(--accent)}.text-modal-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.text-modal-row label{color:var(--text-secondary);font-size:13px;min-width:55px;font-weight:600}.text-modal-select{flex:1 1;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 10px;font-size:14px;font-family:inherit;outline:none;cursor:pointer}.text-modal-select:focus{border-color:var(--accent)}.text-style-btns{display:flex;gap:6px}.style-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s}.style-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.style-btn.on{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.text-modal-row input[type=color]{width:38px;height:38px;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);cursor:pointer;padding:2px}.text-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.text-modal-cancel{padding:10px 20px;border:1px solid var(--border);border-radius:var(--radius);background:none;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:600;transition:all .15s}.text-modal-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.text-modal-apply{display:flex;align-items:center;gap:6px;padding:10px 24px;background:var(--accent);color:var(--bg-primary);border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:700;transition:all .2s}.text-modal-apply:hover{filter:brightness(1.1);transform:translateY(-1px)}.text-modal-apply:disabled{opacity:.4;cursor:not-allowed;transform:none}.crop-overlay{z-index:100}.crop-overlay,.crop-svg{position:absolute;inset:0}.crop-svg{width:100%;height:100%;display:block;overflow:visible}.crop-border,.crop-center,.crop-dimmer,.crop-grid-h,.crop-grid-v,.crop-handle{display:none}.crop-controls{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 20px;box-shadow:var(--shadow);z-index:10}.crop-ratios{display:flex;gap:4px}.crop-ratio-btn{padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.crop-ratio-btn:hover{background:var(--bg-hover)}.crop-ratio-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.crop-size-info{color:var(--text-muted);font-size:12px;font-weight:600;min-width:80px;text-align:center}.crop-actions{display:flex;gap:8px}.crop-apply,.crop-cancel{display:flex;align-items:center;gap:4px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:700;cursor:pointer;border:none;transition:all .15s}.crop-cancel{background:var(--bg-hover);color:var(--text-secondary)}.crop-cancel:hover{background:var(--bg-active);color:var(--text-primary)}.crop-apply{background:var(--accent);color:var(--bg-primary)}.crop-apply:hover{filter:brightness(1.1)}.crop-transform-row{display:flex;align-items:center;gap:4px;width:100%}.crop-transform-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.crop-transform-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.layers-header-actions{display:flex;gap:4px;margin-left:auto}.layers-hdr-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s}.layers-hdr-btn:hover{background:var(--bg-hover);color:var(--accent)}.layers-hdr-btn:disabled{opacity:.3;cursor:not-allowed}.text-prop-input{width:100%;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;color:var(--text-primary);font-size:14px;font-family:inherit;resize:vertical;min-height:60px;outline:none;transition:border-color .2s;line-height:1.4;margin-top:4px}.text-prop-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.text-prop-select{width:100%;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;cursor:pointer;margin-top:4px;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23b0b0c0' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding:7px 30px 7px 10px}.text-prop-select:focus{border-color:var(--accent)}.text-style-row{display:flex;gap:6px;margin-top:6px}.text-color-row{display:flex;align-items:center;gap:10px;margin-top:4px}.text-color-input{width:40px;height:32px;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);cursor:pointer;padding:2px;flex-shrink:0;transition:border-color .15s}.text-color-input:hover{border-color:var(--accent)}.text-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 12px;color:var(--text-muted);text-align:center;font-size:13px;line-height:1.5}.mobile-text-drawer{display:none}@media (max-width:768px){.mobile-text-drawer{display:block;position:fixed;bottom:0;left:0;right:0;z-index:500;background:var(--bg-secondary);border-top:1px solid var(--border);border-radius:16px 16px 0 0;box-shadow:0 -8px 40px rgba(0,0,0,.5);max-height:60dvh;overflow-y:auto;animation:drawerSlideUp .3s ease;padding-bottom:env(safe-area-inset-bottom,0)}.mobile-text-drawer:before{content:"";display:block;width:40px;height:4px;background:var(--border-light);border-radius:2px;margin:10px auto 0}.mobile-text-drawer .properties-tray{display:block!important;width:100%;min-width:unset;border-right:none;border-top:none;padding:8px 16px 16px;background:transparent}.editor-bottom{position:relative;z-index:10}}@keyframes drawerSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}