:root{--bg:#000;--surface:#0a0a0a;--surface2:#141414;--surface3:#1e1e1e;--border:#222;--text:#eee;--text2:#666;--accent:#eee;--blue:#007AFF}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:12px;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#282828;border-radius:2px}.canvas-wrap{display:flex;justify-content:center;align-items:center;width:100%;height:100%;overflow:hidden;padding:20px}.canvas-item{position:relative;background:#111;background-image:radial-gradient(circle,#2a2a2a 1px,transparent 1px);background-size:16px 16px;overflow:hidden;border:1px solid var(--border)}.canvas-item.selected{border-color:#444}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--surface);height:40px;flex-shrink:0}.topbar-group{display:flex;align-items:center;gap:8px}.logo{font-weight:600;font-size:13px;letter-spacing:-.5px;color:#888}.seg-ctrl{display:flex;gap:1px;background:var(--border);padding:1px}.seg-btn{padding:4px 10px;border:none;background:var(--surface2);color:var(--text2);font-size:11px;font-weight:500;cursor:pointer;transition:color .1s}.seg-btn.active{background:var(--surface3);color:var(--text)}.seg-btn:hover:not(.active){color:var(--text)}.sidebar{width:260px;background:var(--surface);border-left:1px solid var(--border);height:100vh;overflow:hidden;flex-shrink:0}.panel{padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.panel-title{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.btn{padding:5px 10px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-size:11px;font-weight:500;cursor:pointer;transition:all .1s;display:inline-flex;align-items:center;justify-content:center;gap:4px}.btn:hover{color:var(--text);border-color:#444}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.primary:hover{background:#0066d6}.btn-sm{padding:3px 8px;font-size:10px}.input-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.input-label{font-size:10px;color:var(--text2);min-width:40px}.slider{flex:1;-webkit-appearance:none;height:2px;background:var(--surface3);outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;background:#888;border-radius:50%;cursor:pointer}.input-num{width:48px;padding:4px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:10px;text-align:center;-moz-appearance:textfield}.input-num::-webkit-inner-spin-button,.input-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-row{display:flex;gap:4px}.color-swatch{width:22px;height:22px;cursor:pointer;border:1px solid var(--border);transition:all .1s}.color-swatch:hover,.color-swatch.active{border-color:var(--blue)}.upload-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.upload-btn{padding:10px;background:var(--surface2);border:1px dashed var(--border);cursor:pointer;text-align:center;font-size:10px;color:var(--text2);transition:all .1s}.upload-btn:hover{border-color:#555;color:var(--text)}.tpl-btn{padding:6px 4px;background:var(--surface2);border:1px solid var(--border);color:var(--text2);font-size:8px;cursor:pointer;transition:all .1s;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tpl-btn:hover{color:var(--text);border-color:#444}.fx-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-top:6px}.fx-btn{padding:4px 2px;background:var(--surface2);border:1px solid var(--border);color:var(--text2);font-size:8px;cursor:pointer;transition:all .1s}.fx-btn:hover{border-color:#444}.fx-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.txt-toolbar{display:flex;gap:2px;margin-bottom:8px}.txt-toolbar .btn{width:28px;height:24px;padding:0;font-size:11px}.txt-toolbar .btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.rich-text-editor{width:100%;min-height:60px;max-height:120px;background:var(--surface2);border:1px solid var(--border);color:#fff!important;padding:8px;font-size:11px;overflow-y:auto;margin-bottom:6px;font-family:Space Grotesk,sans-serif}.rich-text-editor *{color:#fff!important;font-size:11px!important}.rich-text-editor:focus{outline:none;border-color:var(--blue)}.rich-text-editor[contenteditable]:empty:before{content:attr(placeholder);color:var(--text2)}.rich-toolbar{display:flex;gap:4px;margin-bottom:8px;align-items:center}.rich-toolbar .btn{height:24px;padding:0 6px;font-size:10px}.rich-toolbar select{padding:2px 4px;background:var(--surface2);border:1px solid var(--border);color:#fff;font-size:10px;height:24px}.rich-toolbar input[type=number]{width:44px;padding:2px 4px;background:var(--surface2);border:1px solid var(--border);color:#fff;font-size:10px;text-align:center;height:24px}.rich-toolbar input[type=color]{width:24px;height:24px;border:none;cursor:pointer;padding:0}.color-input-row{display:flex;gap:4px;align-items:center;margin-top:8px}.hex-input{flex:1;padding:6px 8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:11px;font-family:IBM Plex Mono}.color-picker{width:28px;height:28px;border:none;cursor:pointer;padding:0}.layer{position:absolute;cursor:move;-webkit-user-select:none;user-select:none}.layer.selected{outline:1px solid var(--blue);outline-offset:1px}.layer:hover .del-btn{opacity:1}.del-btn{position:absolute;top:-8px;right:-8px;width:16px;height:16px;background:#ff3b30;color:#fff;border:none;font-size:10px;cursor:pointer;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center;z-index:10}.resize-h{position:absolute;right:-3px;bottom:-3px;width:8px;height:8px;background:var(--blue);cursor:se-resize;z-index:10}.text-content{white-space:pre;pointer-events:none}.fx-shadow{text-shadow:3px 3px 0 rgba(0,0,0,.3)}.fx-lift{text-shadow:0 6px 12px rgba(0,0,0,.4)}.fx-hollow{-webkit-text-stroke:1.5px currentColor;color:transparent!important}.fx-splice{text-shadow:2px 2px 0 #0ff,-2px -2px 0 #f0f}.fx-outline{-webkit-text-stroke:2px currentColor;paint-order:stroke fill}.fx-echo{text-shadow:2px 2px 0 rgba(0,0,0,.2),4px 4px 0 rgba(0,0,0,.15),6px 6px 0 rgba(0,0,0,.1)}.fx-glitch{text-shadow:2px 0 #0ff,-2px 0 #f0f}.fx-neon{text-shadow:0 0 5px currentColor,0 0 10px currentColor,0 0 20px currentColor}.fx-bg{background:#0009;padding:4px 10px;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scale-handle{position:absolute;width:8px;height:8px;background:var(--blue);z-index:20;pointer-events:auto}.scale-handle.tl{top:-4px;left:-4px;cursor:nw-resize}.scale-handle.tr{top:-4px;right:-4px;cursor:ne-resize}.scale-handle.bl{bottom:-4px;left:-4px;cursor:sw-resize}.scale-handle.br{bottom:-4px;right:-4px;cursor:se-resize}.scale-outline{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid var(--blue);pointer-events:none;z-index:19}
