: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{flex:0 0 148px;background:var(--bg-panel);border-right:1px solid var(--border);padding:10px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.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)}.right-panels{flex:0 0 340px;display:flex;flex-direction:column;background:var(--bg-panel);border-left:1px solid var(--border);overflow:hidden}.panel{display:flex;flex-direction:column;gap:8px;padding:10px;overflow-y:auto}.layers-panel,.coach-panel{flex:1 1 auto}.panel-header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:-10px;background:var(--bg-panel);padding:2px 0;z-index:2}.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;gap:6px}.inline-field .field-label{flex:0 0 72px}.inline-field input[type=range],.inline-field select{flex:1 1 auto}.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;gap:4px}.assist-buttons .tool-button{flex:1 1 0;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}}.layers-slot{display:flex;min-height:0;overflow:hidden}.layers-slot .panel{flex:1 1 auto}.coach-slot{flex:1 1 auto;display:flex;min-height:0;overflow:hidden}.splitter{flex:0 0 5px;background:var(--border);cursor:row-resize;border:none;padding:0}.splitter:hover,.splitter.is-dragging{background:var(--accent)}
