:root{--bg-app: #0e0f12;--bg-surface: #17191f;--bg-surface-hover: #222630;--bg-surface-active: #2b313e;--bg-canvas-stage: #08090b;--border-subtle: #242935;--border-strong: #363d4e;--border-focus: #5b7fff;--color-primary: #5b7fff;--color-primary-hover: #4668eb;--color-accent: #00d2aa;--color-danger: #ff4d4f;--color-danger-hover: #e03b3d;--text-main: #f0f3f8;--text-muted: #8b95a8;--text-disabled: #4e5768;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--header-height: 52px;--tool-rail-width: 64px;--inspector-width: 300px;--mobile-dock-height: 60px;--touch-target-min: 44px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 9999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 6px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--shadow-glow: 0 0 16px rgba(91, 127, 255, .35);--transition-fast: .15s cubic-bezier(.16, 1, .3, 1);--transition-normal: .22s cubic-bezier(.16, 1, .3, 1);--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;height:100dvh;position:fixed;overflow:hidden;overscroll-behavior:none;background-color:var(--bg-app);color:var(--text-main);font-family:var(--font-sans);font-size:14px;line-height:1.4;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;border:none;background:none;outline:none}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;user-select:none}button:disabled{cursor:not-allowed;opacity:.4}img,svg{display:block;max-width:100%;height:auto}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{display:grid;grid-template-areas:"header header header" "rail stage inspector";grid-template-columns:var(--tool-rail-width) 1fr var(--inspector-width);grid-template-rows:var(--header-height) 1fr;width:100vw;height:100dvh;overflow:hidden;position:relative}.app-header{grid-area:header;background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:20}.tool-rail{grid-area:rail;background-color:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px;z-index:15}.canvas-stage{grid-area:stage;background-color:var(--bg-canvas-stage);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none}.inspector-panel{grid-area:inspector;background-color:var(--bg-surface);border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow-y:auto;z-index:15}.mobile-dock{display:none}@media (max-width: 1024px) and (min-width: 769px){:root{--inspector-width: 260px;--tool-rail-width: 56px}}@media (max-width: 768px){.app-container{grid-template-areas:"header" "stage" "dock";grid-template-columns:100%;grid-template-rows:var(--header-height) 1fr calc(var(--mobile-dock-height) + var(--sab))}.tool-rail,.inspector-panel{display:none}.mobile-dock{grid-area:dock;display:flex;align-items:center;justify-content:space-around;background-color:var(--bg-surface);border-top:1px solid var(--border-subtle);padding-bottom:var(--sab);height:calc(var(--mobile-dock-height) + var(--sab));z-index:30}}.btn{height:36px;padding:0 12px;border-radius:var(--radius-sm);background:var(--bg-surface-hover);color:var(--text-main);font-weight:500;gap:6px;transition:background var(--transition-fast),transform var(--transition-fast)}.btn:hover{background:var(--bg-surface-active)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-sm);color:var(--text-muted)}.btn-icon:hover{color:var(--text-main);background:var(--bg-surface-hover)}.btn-icon.active{color:var(--color-primary);background:var(--bg-surface-active)}.rail-btn{width:48px;height:48px;border-radius:var(--radius-md);flex-direction:column;gap:4px;font-size:10px;color:var(--text-muted)}.rail-btn:hover{color:var(--text-main);background:var(--bg-surface-hover)}.rail-btn.active{color:var(--color-primary);background:var(--bg-surface-active)}.input-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.input-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.input-control{height:32px;padding:0 8px;background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);color:var(--text-main);transition:border-color var(--transition-fast)}.input-control:focus{border-color:var(--border-focus)}.input-row{display:flex;gap:8px}.input-row>*{flex:1}.color-swatch-wrapper{display:flex;align-items:center;gap:8px;background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-xs);padding:4px 8px}.color-input{width:24px;height:24px;border-radius:var(--radius-xs);cursor:pointer;border:none;background:none;padding:0}.inspector-section{padding:16px;border-bottom:1px solid var(--border-subtle)}.inspector-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}.modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity var(--transition-normal)}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:480px;padding:24px;transform:translateY(12px) scale(.98);transition:transform var(--transition-normal)}.modal-overlay.open .modal-card{transform:translateY(0) scale(1)}.mobile-sheet-overlay{position:fixed;inset:0;background:#0009;z-index:90;opacity:0;pointer-events:none;transition:opacity var(--transition-normal)}.mobile-sheet-overlay.open{opacity:1;pointer-events:auto}.mobile-sheet{position:fixed;left:0;right:0;bottom:0;background:var(--bg-surface);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-top:1px solid var(--border-subtle);max-height:80dvh;overflow-y:auto;z-index:95;transform:translateY(100%);transition:transform var(--transition-normal);padding:16px;padding-bottom:calc(16px + var(--sab))}.mobile-sheet-overlay.open .mobile-sheet{transform:translateY(0)}.sheet-handle{width:36px;height:4px;border-radius:var(--radius-pill);background:var(--border-strong);margin:0 auto 16px}.toast-container{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none}.toast{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 16px;box-shadow:var(--shadow-md);font-size:13px;color:var(--text-main);animation:toastIn .25s cubic-bezier(.16,1,.3,1)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.canvas-wrapper{position:relative;box-shadow:0 0 30px #000000b3;background:#fff;transition:transform var(--transition-fast);transform-origin:center center}#pixo-canvas{display:block;touch-action:none}.stage-controls{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:4px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:4px;box-shadow:var(--shadow-sm);z-index:10}.zoom-indicator{font-size:11px;font-family:var(--font-mono);color:var(--text-muted);padding:0 6px;min-width:44px;text-align:center}@media (max-width: 768px){.stage-controls{bottom:8px;right:8px;padding:2px}}
