:root{--bg:#0a0a0a;--surface:#121212;--surface-hover:#181818;--surface-raised:#1c1c1c;--border:#242424;--border-highlight:#383838;--accent:#d4a843;--accent-hover:#e6b955;--accent-dim:#d4a84326;--text:#f0f0f0;--text-muted:#888;--text-dim:#666;--danger:#e05252;--success:#3fb950;--radius:12px;--radius-sm:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;max-width:100vw;height:100dvh;overflow:hidden}body{background:var(--bg);color:var(--text);flex-direction:column;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;display:flex}.btn-text-full{display:inline}.btn-text-short{display:none}header{border-bottom:1px solid var(--border);background:var(--surface);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:56px;padding:0 20px;display:flex;position:relative}.logo-group{align-items:center;gap:12px;display:flex}.logo{letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase;font-size:15px;font-weight:800}.logo span{color:var(--accent)}.header-actions{align-items:center;gap:8px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#0d0d0d;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-hover);color:#fff;border-color:var(--border-highlight)}.btn-magic{color:#fff;background:linear-gradient(135deg,#d4a84340 0%,#9370db40 100%);border:1px solid #d4a84380}.btn-magic:hover{border-color:var(--accent);background:linear-gradient(135deg,#d4a84366 0%,#9370db66 100%)}.btn-sm{padding:4px 10px;font-size:11px}.app-layout{flex:1;grid-template-rows:1fr;grid-template-columns:360px 1fr;height:calc(100dvh - 56px);min-height:0;display:grid;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);-webkit-overflow-scrolling:touch;flex-direction:column;gap:20px;height:100%;padding:20px;display:flex;overflow:hidden auto}.sidebar-section{flex-direction:column;gap:12px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);justify-content:space-between;align-items:center;font-size:11px;font-weight:800;display:flex}.upload-slots-container{flex-direction:column;gap:12px;display:flex}.upload-card{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:#141414;flex-direction:column;gap:10px;padding:12px;transition:border-color .2s,background .2s;display:flex}.upload-card:hover{border-color:var(--border-highlight)}.upload-card.active{border-color:var(--accent);background:#d4a8430a}.upload-card-header{justify-content:space-between;align-items:center;display:flex}.upload-card-badge{color:#fff;font-size:11px;font-weight:700}.upload-card.active .upload-card-badge{color:var(--accent)}.btn-upload-trigger{border:1px dashed var(--border-highlight);cursor:pointer;color:var(--text);background:#1c1c1c;border-radius:8px;align-items:center;gap:12px;width:100%;padding:10px 14px;transition:all .15s;display:flex}.btn-upload-trigger:hover{border-color:var(--accent);color:#fff;background:#222}.upload-card.active .btn-upload-trigger{border-color:#d4a84380}.btn-upload-trigger svg{color:var(--accent);flex-shrink:0}.upload-trigger-text{flex-direction:column;align-items:flex-start;gap:2px;display:flex;overflow:hidden}.upload-trigger-text strong{color:#fff;font-size:12px;font-weight:700}.upload-file-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:11px;overflow:hidden}.upload-preview-row{border-top:1px solid #1f1f1f;align-items:center;gap:10px;padding-top:6px;display:flex}.upload-status-text{color:var(--success);font-size:11px;font-weight:600}.layer-thumb{border:1px solid var(--border);object-fit:cover;width:44px;height:44px;color:var(--text-dim);background:#111;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex;overflow:hidden}.layer-thumb img{object-fit:cover;width:100%;height:100%}.swap-btn-container{justify-content:center;margin:-4px 0;display:flex}.swap-btn{border:1px solid var(--border);color:var(--accent);cursor:pointer;background:#202020;border-radius:20px;padding:3px 12px;font-size:11px;font-weight:700;transition:all .15s}.swap-btn:hover{background:var(--accent);color:#0d0d0d}.blend-modes-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.blend-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;text-align:left;background:#181818;border-radius:6px;flex-direction:column;gap:2px;padding:8px 10px;font-size:11px;font-weight:700;transition:all .15s;display:flex}.blend-btn span.mode-name{color:#fff}.blend-btn span.mode-desc{color:var(--text-dim);font-size:9px;font-weight:500}.blend-btn:hover{border-color:var(--border-highlight);color:#fff}.blend-btn.active{background:var(--accent);border-color:var(--accent)}.blend-btn.active span.mode-name{color:#0d0d0d}.blend-btn.active span.mode-desc{color:#000000b3}.control-group{flex-direction:column;gap:6px;display:flex}.control-label-row{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.control-val-badge{color:var(--accent);font-family:JetBrains Mono,monospace,sans-serif;font-size:11px}.optics-slider{appearance:none;cursor:pointer;background:#242424;border-radius:3px;outline:none;width:100%;height:5px}.optics-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s;box-shadow:0 0 6px #000000b3}.optics-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.canvas-viewport.drag-over{background:#d4a84314}.canvas-viewport.drag-over .canvas-frame-wrap{border-color:var(--accent);box-shadow:0 0 30px #d4a84359}.tool-mode-pills{align-items:center;gap:4px;display:flex}.brush-cursor{pointer-events:none;z-index:50;background:#d4a84326;border:1.5px solid #ffffffe6;border-radius:50%;transition:width 50ms,height 50ms;display:none;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 8px #0009}.canvas-viewport.tool-erase{cursor:crosshair}.canvas-viewport.tool-erase .brush-cursor{display:block}.workspace-area{background:#0d0d0d;flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.workspace-toolbar{border-bottom:1px solid var(--border);background:#141414;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.ratio-pills,.active-layer-pills,.tool-mode-pills{align-items:center;gap:4px;display:flex}.pill-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:#1c1c1c;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700;transition:all .15s}.pill-btn:hover{color:#fff;border-color:var(--border-highlight)}.pill-btn.active{background:var(--accent);color:#0d0d0d;border-color:var(--accent)}#btn-undo-toolbar:disabled,#btn-undo-sidebar:disabled{pointer-events:none;opacity:.35!important;cursor:not-allowed!important}#btn-undo-toolbar:not(:disabled):hover{border-color:var(--accent)!important;color:#fff!important;background:#d4a84326!important}.canvas-viewport{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;flex:1;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex;position:relative;overflow:hidden}.canvas-viewport.dragging{cursor:grabbing}.canvas-frame-wrap{touch-action:none;background:#000;border:1px solid #ffffff1f;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;max-width:calc(100% - 24px);max-height:calc(100% - 48px);transition:width .15s cubic-bezier(.2,0,.2,1),height .15s cubic-bezier(.2,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 16px 50px #000000d9}#double-canvas{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}.gesture-tips-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#aaa;pointer-events:none;z-index:10;background:#121212d9;border:1px solid #ffffff1a;border-radius:20px;align-items:center;gap:12px;padding:5px 14px;font-size:11px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.gesture-tips-overlay span strong{color:var(--accent)}.layer-indicator-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--accent);pointer-events:none;z-index:10;background:#141414d9;border:1px solid #d4a84366;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:700;display:flex;position:absolute;top:14px;left:14px}@media (width<=960px){html,body{width:100%;max-width:100vw;overflow-x:hidden}.hide-mobile,.btn-text-full{display:none!important}.btn-text-short{display:inline!important}header{flex-shrink:0;gap:6px;max-width:100vw;height:48px;padding:0 10px;overflow-x:hidden}.logo{font-size:13px}.header-actions{flex-shrink:0;gap:4px}.header-actions .btn{gap:4px;padding:4px 7px;font-size:11px}.app-layout{flex-direction:column;flex:1;width:100%;max-width:100vw;height:calc(100dvh - 48px);min-height:0;display:flex;overflow:hidden}.workspace-area{border-bottom:1px solid var(--border);z-index:20;flex:0 0 44dvh;order:1;width:100%;max-width:100vw;height:44dvh;min-height:230px;max-height:380px;position:relative;top:0;overflow:hidden;box-shadow:0 4px 20px #0009}.workspace-toolbar{white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0;justify-content:flex-start;gap:4px;width:100%;max-width:100vw;height:38px;padding:0 8px;overflow-x:auto}.workspace-toolbar::-webkit-scrollbar{display:none}.workspace-toolbar .pill-btn,.workspace-toolbar .btn{flex-shrink:0;padding:3px 7px;font-size:10px}.ratio-pills,.active-layer-pills,.tool-mode-pills,.toolbar-quick-actions{flex-shrink:0;align-items:center;gap:3px;display:flex}.canvas-viewport{touch-action:none;flex:1;min-height:0;padding:8px;overflow:hidden}.canvas-frame-wrap{touch-action:none;max-width:100%;max-height:100%}.sidebar{-webkit-overflow-scrolling:touch;background:var(--surface);border-right:none;flex:1;order:2;width:100%;max-width:100vw;height:auto;min-height:0;padding:14px 14px 50px;overflow:hidden auto}.gesture-tips-overlay{gap:4px;padding:3px 8px;font-size:9px;bottom:6px}.layer-indicator-badge{padding:2px 7px;font-size:9px;top:6px;left:6px}}
