.fd-app{display:flex;flex-direction:column;height:100%;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;}
.fd-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap;}
.fd-header-left{display:flex;align-items:center;gap:12px;}
.fd-header-right{display:flex;align-items:center;gap:8px;}
.fd-title{font-size:15px;font-weight:700;color:var(--text);}
.fd-body{flex:1;overflow:auto;display:flex;gap:0;min-height:0;}
.fd-sidebar{width:340px;min-width:300px;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;background:var(--bg);}
.fd-sidebar-header{padding:10px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.fd-sidebar-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-muted);}
.fd-sidebar-body{flex:1;overflow-y:auto;padding:10px;}
.fd-sidebar-footer{padding:10px 14px;border-top:1px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;gap:8px;}
.fd-row-count-row{display:flex;align-items:center;gap:8px;}
.fd-row-count-label{font-size:12px;color:var(--text-secondary);white-space:nowrap;}
.fd-row-count-input{width:80px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:13px;outline:none;text-align:center;}
.fd-row-count-input:focus{border-color:var(--accent);}
.fd-generate-btn{padding:8px 16px;border:none;background:var(--accent);color:#080b14;font-size:13px;font-weight:600;cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-sans);transition:background 0.15s;width:100%;}
.fd-generate-btn:hover{background:var(--accent-hover);}
.fd-field-list{display:flex;flex-direction:column;gap:6px;}
.fd-field-item{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color 0.15s;}
.fd-field-item:hover{border-color:var(--accent);}
.fd-field-drag{cursor:grab;color:var(--text-muted);font-size:14px;padding:0 2px;user-select:none;flex-shrink:0;}
.fd-field-drag:active{cursor:grabbing;}
.fd-field-name{flex:1;padding:3px 6px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text);font-size:12px;font-family:var(--font-mono);outline:none;min-width:0;}
.fd-field-name:focus{border-color:var(--accent);background:var(--bg);}
.fd-field-type{padding:3px 6px;border:1px solid var(--border);border-radius:3px;background:var(--surface-2);color:var(--text-secondary);font-size:11px;font-family:var(--font-sans);outline:none;cursor:pointer;max-width:130px;}
.fd-field-type:focus{border-color:var(--accent);}
.fd-field-remove{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:3px;flex-shrink:0;line-height:1;}
.fd-field-remove:hover{color:var(--red);background:var(--surface-2);}
.fd-field-config-btn{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:3px;flex-shrink:0;line-height:1;}
.fd-field-config-btn:hover{color:var(--accent);background:var(--surface-2);}
.fd-field-config-panel{padding:6px 8px;margin-top:4px;background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-sm);display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.fd-field-config-panel label{font-size:11px;color:var(--text-muted);white-space:nowrap;}
.fd-field-config-panel input{width:60px;padding:2px 4px;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:11px;outline:none;}
.fd-field-config-panel input:focus{border-color:var(--accent);}
.fd-add-field-btn{padding:6px 12px;border:1px dashed var(--border);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-sans);transition:all 0.15s;width:100%;margin-top:4px;}
.fd-add-field-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light);}
.fd-templates-row{display:flex;gap:4px;flex-wrap:wrap;padding:0 0 6px 0;}
.fd-template-btn{padding:3px 8px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:10px;cursor:pointer;border-radius:10px;font-family:var(--font-sans);transition:all 0.15s;white-space:nowrap;}
.fd-template-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light);}
.fd-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;}
.fd-output-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);gap:8px;flex-wrap:wrap;}
.fd-format-tabs{display:flex;gap:2px;background:var(--surface-3);padding:2px;border-radius:6px;}
.fd-format-tab{padding:4px 10px;border:none;background:transparent;color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;border-radius:4px;transition:all 0.15s;font-family:var(--font-sans);}
.fd-format-tab:hover{color:var(--text);}
.fd-format-tab.active{background:var(--accent);color:#080b14;font-weight:600;}
.fd-output-actions{display:flex;gap:6px;}
.fd-output-body{flex:1;overflow:auto;padding:0;position:relative;}
.fd-output-pre{margin:0;padding:14px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--text);white-space:pre;overflow:auto;height:100%;background:var(--bg);tab-size:2;}
.fd-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:12px;padding:40px;text-align:center;}
.fd-empty-state-icon{font-size:48px;opacity:0.3;}
.fd-empty-state-text{font-size:14px;}
.fd-empty-state-hint{font-size:12px;color:var(--text-muted);opacity:0.7;}
.fd-status-bar{padding:6px 16px;border-top:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-muted);}
.fd-status-left{display:flex;align-items:center;gap:12px;}
.fd-status-right{display:flex;align-items:center;gap:8px;}
.fd-btn{padding:4px 10px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:11px;cursor:pointer;border-radius:var(--radius-sm);font-family:var(--font-sans);transition:all 0.15s;white-space:nowrap;}
.fd-btn:hover{border-color:var(--accent);color:var(--accent);}
.fd-btn-sm{padding:3px 8px;font-size:10px;}
.fd-btn-primary{background:var(--accent);color:#080b14;border-color:var(--accent);font-weight:600;}
.fd-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#080b14;}
.fd-field-item-wrap{display:flex;flex-direction:column;gap:0;}
.fd-drag-over{border-color:var(--accent);background:var(--accent-light);}
@media(max-width:768px){
.fd-body{flex-direction:column;}
.fd-sidebar{width:100%;min-width:0;border-right:none;border-bottom:1px solid var(--border);max-height:45vh;}
.fd-header{padding:10px 14px;}
.fd-sidebar-body{padding:8px;}
.fd-field-item{padding:6px 8px;}
.fd-output-header{padding:6px 10px;}
.fd-format-tabs{flex-wrap:wrap;}
.fd-output-pre{padding:10px;font-size:11px;}
.fd-status-bar{padding:4px 10px;font-size:11px;}
}
