:root{--bg-app: #131316;--bg-panel: #1c1c21;--bg-panel-alt: #24242b;--bg-input: #121215;--border: #33333d;--border-strong: #474753;--text: #e4e4ea;--text-muted: #9a9aa6;--accent: #7c5cff;--accent-soft: rgba(124, 92, 255, .16);--cyan: #3ad3e3;--danger: #e05c58;--success: #4fbf7b;--radius: 4px;--shadow: 0 16px 40px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-app);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;overflow:hidden}:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}.app{display:flex;flex-direction:column;height:100%}.topbar{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex:0 0 auto;z-index:40}.topbar-brand{font-weight:600;letter-spacing:.04em;border-left:2px solid var(--accent);padding-left:8px;white-space:nowrap}.project-name{width:200px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:5px 8px}.save-status{font-size:11px;color:var(--text-muted);white-space:nowrap}.save-status.is-saved{color:var(--success)}.save-status.is-error{color:var(--danger)}.topbar-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.topbar-flash{position:absolute;top:100%;left:12px;margin-top:6px;background:var(--bg-panel-alt);border:1px solid var(--border);border-left:2px solid var(--cyan);padding:6px 10px;border-radius:var(--radius);z-index:50}.separator{width:1px;height:20px;background:var(--border);margin:0 2px}.dropdown{position:absolute;top:100%;right:12px;margin-top:6px;width:340px;max-height:60vh;overflow:auto;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);z-index:60;display:flex;flex-direction:column;gap:10px}.dropdown h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.project-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel-alt)}.project-row-name{display:block;font-weight:600}.workspace{display:flex;flex:1 1 auto;min-height:0}.toolbar{display:flex;flex-direction:column;gap:16px}.toolbar-group{display:flex;flex-direction:column;gap:5px}.canvas-area{position:relative;flex:1 1 auto;min-width:0;overflow:hidden;background:repeating-conic-gradient(#191920,#191920 25%,#1e1e26 0%,#1e1e26 50%) 50% / 22px 22px;touch-action:none}.canvas-area.is-drawing{cursor:crosshair}.canvas-area.is-panning{cursor:grab}.canvas-area.is-picking{cursor:copy}.canvas-area.is-blocked{cursor:not-allowed}.canvas-hud{position:absolute;left:10px;bottom:10px;display:flex;align-items:center;gap:10px;background:#131316db;border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px;font-size:11px;pointer-events:none}.canvas-hud .warning{color:var(--danger)}.dock{display:flex;flex-direction:column;background:var(--bg-panel);overflow:hidden;flex:0 0 auto}.dock.is-left{border-right:1px solid var(--border)}.dock.is-right{border-left:1px solid var(--border)}.dock-tail{flex:0 0 auto;min-height:10px}.dock-tail.is-over{min-height:24px;background:var(--accent-soft);border-top:2px solid var(--accent)}.dock-resizer{flex:0 0 5px;background:var(--bg-app);border:none;padding:0;cursor:col-resize}.dock-resizer:hover,.dock-resizer.is-dragging{background:var(--accent)}.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel.is-collapsed{flex:0 0 auto}.panel.is-over{box-shadow:inset 0 3px 0 var(--accent)}.panel.is-moving{opacity:.45}.panel-body{display:flex;flex-direction:column;gap:8px;padding:8px 10px 12px;overflow:hidden auto;min-height:0}.layers-panel,.coach-panel{display:flex;flex-direction:column;gap:8px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:6px;flex:0 0 auto;background:var(--bg-panel-alt);border-bottom:1px solid var(--border);padding:4px 6px 4px 2px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.panel-header:active{cursor:grabbing}.panel-toggle{display:flex;align-items:center;gap:6px;flex:1 1 auto;background:none;border:none;color:inherit;padding:4px 6px;cursor:pointer;text-align:left}.chevron{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-muted);transition:transform .12s ease}.chevron.is-closed{transform:rotate(-90deg)}.panel-header-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.panel-header h2{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.layer-list{display:flex;flex-direction:column;gap:5px}.layer-row{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:var(--radius);padding:6px;cursor:pointer}.layer-row.is-active{border-color:var(--accent);background:var(--accent-soft)}.layer-row.is-dragging{opacity:.5}.layer-row-main{display:flex;align-items:center;gap:8px}.layer-thumb{flex:0 0 56px;height:36px;background:repeating-conic-gradient(#d8d8de,#d8d8de 25%,#fff 0%,#fff 50%) 50% / 8px 8px;border:1px solid var(--border);border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center}.layer-thumb img{width:100%;height:100%;object-fit:contain}.layer-row-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.layer-row-controls{display:flex;gap:4px}.layer-name{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:3px 6px}.layer-row-detail{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.layer-actions{display:flex;gap:4px;flex-wrap:wrap}.inline-field{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.inline-field .field-label{flex:0 0 60px}.inline-field input[type=range]{flex:1 1 auto}.inline-field select{flex:1 1 auto;min-width:0}.coach-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:6px 8px;resize:vertical;font-family:inherit;font-size:13px}.reference-preview{margin:0;border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden}.reference-preview figcaption{padding:4px 6px;border-top:1px solid var(--border);background:var(--bg-panel-alt)}.reference-preview img{display:block;width:100%;height:auto}.assist-levels{display:flex;flex-direction:column;gap:5px}.assist-buttons{display:flex;flex-wrap:wrap;gap:4px}.assist-buttons .tool-button{flex:1 1 62px;justify-content:center}.reference-controls{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.steps{display:flex;flex-direction:column;gap:6px}.steps-header{display:flex;align-items:center;gap:8px}.progress{flex:1 1 auto;height:4px;background:var(--bg-input);border-radius:2px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent);transition:width .2s ease}.step-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px}.step-list li.is-done .step-title{text-decoration:line-through;color:var(--text-muted)}.step-head{display:flex;align-items:center;gap:6px;cursor:pointer}.step-title{font-weight:600}.step-layer{display:inline-block;margin-top:2px;font-size:10px;color:var(--cyan);text-transform:uppercase;letter-spacing:.06em}.step-description{margin:4px 0 0;color:var(--text-muted);line-height:1.45}.feedback{background:var(--bg-panel-alt);border:1px solid var(--border);border-left:2px solid var(--cyan);border-radius:var(--radius);padding:8px;white-space:pre-wrap;line-height:1.5}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:6px;box-shadow:var(--shadow);padding:16px;width:min(760px,100%);max-height:80vh;overflow:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-header h2{margin:0;font-size:15px}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.help-grid h3{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.help-grid dl{margin:0;display:flex;flex-direction:column;gap:4px}.help-row{display:flex;align-items:baseline;gap:8px}.help-row dt{flex:0 0 116px}.help-row dd{margin:0;color:var(--text-muted)}kbd{display:inline-block;background:var(--bg-input);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:3px;padding:1px 5px;font-family:inherit;font-size:10px;color:var(--text-muted)}.field-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.field-value{font-size:11px;color:var(--text-muted)}.checkbox-row{display:flex;align-items:center;gap:6px;cursor:pointer}input[type=range]{width:100%;accent-color:var(--accent)}input[type=color]{width:100%;height:26px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:2px;cursor:pointer}input[type=checkbox]{accent-color:var(--accent)}select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:4px 6px;font-family:inherit;font-size:12px}.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.swatch{height:18px;border:1px solid var(--border);border-radius:2px;cursor:pointer;padding:0}.swatch.is-active{outline:2px solid var(--accent);outline-offset:1px}button{font-family:inherit;font-size:12px}.tool-button,.ghost-button,.icon-button,.primary-button{background:var(--bg-panel-alt);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:6px 10px;cursor:pointer}.tool-button{display:flex;align-items:center;justify-content:space-between;gap:6px;text-align:left}.tool-button:hover,.ghost-button:hover,.icon-button:hover,.primary-button:hover{border-color:var(--border-strong)}.tool-button.is-active{background:var(--accent-soft);border-color:var(--accent);color:#fff}.icon-button{font-size:10px;padding:2px 6px;color:var(--text-muted)}.icon-button.is-on{color:var(--text);border-color:var(--accent)}.primary-button{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.primary-button:hover{background:#8d71ff;border-color:#8d71ff}.ghost-button.is-danger:hover{border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.4;cursor:not-allowed}.full{width:100%}.link-button{background:none;border:none;color:var(--text);cursor:pointer;padding:0;text-align:left;font-size:12px}.link-button:hover{color:var(--accent)}.muted{color:var(--text-muted)}.small{font-size:11px}.notice{background:var(--bg-panel-alt);border:1px solid var(--border);border-left:2px solid var(--cyan);border-radius:var(--radius);padding:6px 8px;margin:0;color:var(--text-muted);line-height:1.4}.notice.is-error{border-left-color:var(--danger);color:var(--danger)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:#3c3c47;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.splitter{flex:0 0 5px;background:var(--bg-app);cursor:row-resize;border:none;padding:0}.splitter:hover,.splitter.is-dragging{background:var(--accent)}.splitter.is-inactive{flex:0 0 1px;background:var(--border);cursor:default}.brush-list{display:flex;flex-direction:column;gap:3px}.brush-button{display:flex;flex-direction:column;align-items:stretch;gap:2px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:4px 5px;cursor:pointer;color:var(--text-muted);text-align:left}.brush-button:hover{border-color:var(--border-strong)}.brush-button.is-active{border-color:var(--accent);background:var(--accent-soft);color:#fff}.brush-preview{display:block;width:100%;height:28px;background:#f4f4f6;border-radius:2px}.brush-name{font-size:11px}.field-hint{margin:0;font-size:11px;line-height:1.35;color:var(--text-muted)}
