.ex2xml-wrap{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;}
.ex2xml-input-panel,.ex2xml-output-panel{background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.06);}
.ex2xml-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.5rem 1rem;padding:0.75rem 1rem;border-bottom:1px solid var(--border,#e2e8f0);background:var(--surface-muted,#f8fafc);}
.ex2xml-label{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted,#64748b);}
.ex2xml-head-actions,.ex2xml-output-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;}
.ex2xml-upload-btn{display:inline-flex;align-items:center;gap:0.4rem;padding:0.4rem 0.75rem;font-size:0.8125rem;font-weight:500;color:var(--primary,#2563eb);background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:8px;cursor:pointer;transition:background 0.2s,border-color 0.2s;-webkit-tap-highlight-color:transparent;}
.ex2xml-upload-btn:hover{background:rgba(37,99,235,0.06);border-color:var(--primary,#2563eb);}
.ex2xml-upload-btn input[type="file"]{position:absolute;width:0;height:0;opacity:0;overflow:hidden;}
.ex2xml-link-btn{display:inline-flex;align-items:center;gap:0.4rem;padding:0.4rem 0.75rem;font-size:0.8125rem;font-weight:500;color:var(--text-muted,#64748b);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:color 0.2s,background 0.2s;-webkit-tap-highlight-color:transparent;}
.ex2xml-link-btn:hover{color:var(--primary,#2563eb);background:rgba(37,99,235,0.06);}
.ex2xml-editor{width:100%;min-height:220px;padding:0.75rem 1rem;font-family:ui-monospace,"SF Mono",Menlo,Monaco,Consolas,monospace;font-size:0.875rem;line-height:1.5;border:none;resize:vertical;background:var(--surface,#fff);color:var(--text-main,#334155);-webkit-appearance:none;appearance:none;}
.ex2xml-editor::placeholder{color:var(--text-muted,#94a3b8);}
.ex2xml-editor:focus{outline:none;}
.ex2xml-editor-out{resize:none;cursor:default;}
.ex2xml-editor.is-invalid{border-left:3px solid #dc2626;background:#fef2f2;}
@media (min-width:768px){.ex2xml-editor{min-height:280px;font-size:0.9375rem;}}
.ex2xml-error{font-size:0.8125rem;color:#dc2626;padding:0.5rem 1rem;background:#fef2f2;border-radius:8px;margin:0 1rem 0.75rem;}
.ex2xml-options-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0.75rem 1rem;padding:1rem;background:var(--surface-muted,#f8fafc);border:1px solid var(--border,#e2e8f0);border-radius:12px;}
.ex2xml-options-group{display:flex;flex-direction:column;gap:0.25rem;}
.ex2xml-opt-label{font-size:0.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted,#64748b);}
.ex2xml-select{padding:0.45rem 0.65rem;font-size:0.8125rem;font-weight:500;color:var(--text-main,#334155);background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:8px;-webkit-appearance:none;appearance:none;cursor:pointer;min-width:5rem;}
.ex2xml-select:focus{outline:none;border-color:var(--primary,#2563eb);}
.ex2xml-toggle{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.8125rem;font-weight:500;color:var(--text-main,#334155);cursor:pointer;-webkit-tap-highlight-color:transparent;}
.ex2xml-toggle input{width:1rem;height:1rem;accent-color:var(--primary,#2563eb);}
.ex2xml-convert-cell{flex:1;min-width:0;display:flex;justify-content:flex-end;}
@media (max-width:767px){.ex2xml-convert-cell{width:100%;justify-content:stretch;}}
.ex2xml-btn-primary{display:inline-flex;align-items:center;gap:0.5rem;padding:0.65rem 1.25rem;font-size:0.9375rem;font-weight:600;color:#fff;background:var(--primary,#2563eb);border:none;border-radius:10px;cursor:pointer;transition:background 0.2s,transform 0.15s;box-shadow:0 2px 8px rgba(37,99,235,0.25);-webkit-tap-highlight-color:transparent;}
.ex2xml-btn-primary:hover:not(:disabled){background:var(--primary-dark,#1d4ed8);transform:translateY(-1px);}
.ex2xml-btn-primary:active{transform:translateY(0);}
.ex2xml-btn-primary:disabled{opacity:0.65;cursor:not-allowed;transform:none;}
.ex2xml-btn-icon{display:inline-flex;align-items:center;gap:0.4rem;padding:0.45rem 0.75rem;font-size:0.8125rem;font-weight:500;color:var(--text-main,#334155);background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:8px;cursor:pointer;transition:background 0.2s,border-color 0.2s;-webkit-tap-highlight-color:transparent;}
.ex2xml-btn-icon:hover:not(:disabled){background:var(--surface-muted,#f1f5f9);border-color:var(--text-muted,#cbd5e1);}
.ex2xml-btn-icon:disabled{opacity:0.5;cursor:not-allowed;}
.ex2xml-btn-primary.ex2xml-done{background:#059669;}
.ex2xml-editor.ex2xml-drag-over{background:rgba(37,99,235,0.04);border:2px dashed var(--primary,#2563eb);}
