.control-panel,.editor{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.control-panel{padding:28px}

.panel-heading>div,.editor-header>div:first-child{display:flex;align-items:center;gap:12px}
.panel-heading h2,.editor-header h2{font-size:16px;font-weight:600;letter-spacing:-.2px}
.panel-heading p{margin:7px 0 0 41px;color:var(--muted);font-size:12px}
.panel-heading.compact{margin-top:0}

.section-number{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:8px;background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.4px}

.upload-zone{display:block;margin-top:18px;cursor:pointer}
.upload-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.preview{position:relative;min-height:230px;display:grid;place-items:center;overflow:hidden;border:1.5px dashed var(--border-strong);border-radius:14px;background:var(--surface);transition:.2s ease}
.upload-zone:hover .preview,.upload-zone.dragover .preview{border-color:var(--accent);background:var(--accent-soft)}
.preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:12px;background:var(--bg);opacity:0;transform:scale(.98);transition:opacity .25s ease,transform .25s ease}
.preview img.loaded{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.preview img{transition:none}}
.upload-content{display:flex;flex-direction:column;align-items:center;text-align:center}
.upload-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:13px;border-radius:12px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border)}
.upload-icon svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.upload-content strong{font-size:13px;font-weight:600}
.upload-content>span{color:var(--muted);font-size:11px;margin-top:5px}
.upload-content u{color:var(--accent);text-decoration:none}
.upload-content small{color:var(--muted);font-size:9px;margin-top:12px;text-transform:uppercase;letter-spacing:.5px}
.replace-image{position:absolute;right:12px;bottom:12px;width:auto;padding:8px 11px;color:var(--bg);background:var(--text);border:0;border-radius:8px;font:600 10px "Inter",sans-serif;cursor:pointer;z-index:2}

.divider{height:1px;background:var(--border);margin:24px 0}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.field>span{display:block;color:var(--soft);font-size:11px;font-weight:600;margin:0 0 7px 2px}
.select-wrap{position:relative}
.select-wrap:after{content:"⌄";position:absolute;right:13px;top:50%;transform:translateY(-58%);color:var(--muted);font-size:15px;pointer-events:none}
select{appearance:none;width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--border);border-radius:10px;outline:none;background:var(--surface);color:var(--text);font:500 12px "Inter",sans-serif;transition:.2s}
select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

button{font-family:"Inter",sans-serif}
.generate-button{position:relative;width:100%;height:50px;display:flex;align-items:center;justify-content:center;gap:9px;margin-top:20px;border:0;border-radius:12px;color:var(--bg);background:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:.15s}
.generate-button:hover{opacity:.88}
.generate-button:active{transform:translateY(1px)}
.generate-button:disabled{opacity:.55;cursor:wait}
.button-spark{font-size:14px;color:var(--accent)}
.button-arrow{position:absolute;right:17px;font-size:16px;font-weight:400}
.generate-button.is-loading .button-arrow{display:none}
.cost-badge{text-align:center;color:var(--muted);font-size:9px;margin-top:9px}
.privacy-note{text-align:center;color:var(--muted);font-size:9px;margin-top:11px}

.loading-dots{display:inline-flex;gap:3px;margin-left:2px;vertical-align:middle}
.loading-dots span{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.3;animation:loading-dot 1.1s ease-in-out infinite}
.loading-dots span:nth-child(2){animation-delay:.15s}
.loading-dots span:nth-child(3){animation-delay:.3s}
@keyframes loading-dot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.loading-dots span{animation:none;opacity:.7}}
.privacy-note span{color:var(--success);margin-right:3px}

.editor{display:flex;flex-direction:column;min-height:670px;overflow:hidden}
.editor-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--border)}
.editor-header>div:first-child>div p{color:var(--muted);font-size:10px;margin-top:3px}
.output-status{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--surface);font-size:9px;font-weight:600}
.output-status span{background:var(--border-strong);box-shadow:none}
.output-status.ready{color:var(--success)}
.output-status.ready span{background:var(--success);animation:status-pulse 2s ease-in-out infinite}
@keyframes status-pulse{0%,100%{box-shadow:0 0 0 0 rgba(47,122,82,.35)}50%{box-shadow:0 0 0 4px rgba(47,122,82,0)}}
@media(prefers-reduced-motion:reduce){.output-status.ready span{animation:none}}

.editor-body{position:relative;flex:1;min-height:480px;background:var(--surface-3)}
#output{position:absolute;inset:0;width:100%;height:100%;resize:none;border:0;outline:0;padding:26px 28px;background:transparent;color:var(--text);font:12px/1.75 "SFMono-Regular",Consolas,monospace;z-index:1}
#output::placeholder{color:transparent}
.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;pointer-events:none}
.empty-icon{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:14px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);font-size:18px}
.empty-state h3{font:600 14px "Inter",sans-serif;color:var(--soft)}
.empty-state p{max-width:290px;color:var(--muted);font-size:11px;line-height:1.55;margin-top:7px}
.editor.has-output .empty-state{display:none}

.editor-footer{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:12px 18px 12px 24px;border-top:1px solid var(--border);background:var(--surface)}
#wordCount{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px}
.action-buttons{display:flex;gap:7px}
.action{width:auto;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--soft);font-size:10px;font-weight:600;cursor:pointer;transition:.15s}
.action:hover{border-color:var(--border-strong);color:var(--text)}
.action.ghost{background:transparent;border-color:transparent}
.action.primary{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border)}
.action span{margin-right:4px}
