.xh-wrap{background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:12px;overflow:hidden;margin-bottom:2rem;box-shadow:0 1px 3px rgba(0,0,0,0.06);}
.xh-bar{display:flex;flex-direction:column;gap:0.75rem;padding:0.75rem 1rem;background:var(--surface-muted,#f8fafc);border-bottom:1px solid var(--border,#e2e8f0);}
.xh-bar-row{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 1rem;}
.xh-bar-row:first-child{flex:1;}
.xh-label{font-size:0.8125rem;font-weight:600;color:var(--text-muted,#64748b);}
.xh-select{padding:0.4rem 0.6rem;font-size:0.875rem;border:1px solid var(--border,#e2e8f0);border-radius:8px;background:var(--surface,#fff);color:var(--text-main,#334155);min-width:8rem;}
.xh-switch{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.8125rem;font-weight:500;color:var(--text-main,#334155);cursor:pointer;-webkit-tap-highlight-color:transparent;}
.xh-switch input{width:1rem;height:1rem;accent-color:var(--primary,#2563eb);}
.xh-panels{display:flex;flex-direction:column;min-height:240px;}
.xh-panel{display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--border,#e2e8f0);}
.xh-panel:last-child{border-bottom:none;}
.xh-panel-head{display:flex;align-items:center;padding:0.5rem 1rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--text-muted,#64748b);background:var(--surface-muted,#f8fafc);border-bottom:1px solid var(--border,#e2e8f0);}
.xh-editor{min-height:320px;width:100%;padding:0.75rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.5;resize:vertical;border:none;background:var(--surface,#fff);color:var(--text-main,#334155);-webkit-tap-highlight-color:transparent;}
.xh-editor::placeholder{color:var(--text-muted,#94a3b8);}
.xh-editor:focus{outline:none;box-shadow:inset 0 0 0 2px var(--primary,#2563eb);}
.xh-editor.xh-error{background:#fef2f2;box-shadow:inset 0 0 0 2px #dc2626;}
.xh-editor[readonly]{cursor:default;}
.xh-btn{padding:0.5rem 1.25rem;font-size:0.875rem;font-weight:600;border-radius:8px;cursor:pointer;transition:background 0.2s,border-color 0.2s,color 0.2s;-webkit-tap-highlight-color:transparent;border:1px solid transparent;display:inline-flex;align-items:center;gap:0.4rem;}
.xh-btn-main{color:#fff;background:var(--primary,#2563eb);border-color:var(--primary,#2563eb);}
.xh-btn-main:hover:not(:disabled){background:var(--primary-dark,#1d4ed8);border-color:var(--primary-dark,#1d4ed8);}
.xh-btn-main:disabled{opacity:0.7;cursor:not-allowed;}
.xh-btn-alt{color:var(--text-main,#334155);background:var(--surface,#fff);border-color:var(--border,#e2e8f0);}
.xh-btn-alt:hover:not(:disabled){background:var(--surface-muted,#f1f5f9);border-color:var(--text-muted,#cbd5e1);}
.xh-btn.xh-done{background:var(--primary,#2563eb);color:#fff;border-color:var(--primary,#2563eb);}
.xh-link{font-size:0.875rem;font-weight:500;color:var(--primary,#2563eb);text-decoration:none;-webkit-tap-highlight-color:transparent;}
.xh-link:hover{text-decoration:underline;}
.xh-err{font-size:0.8125rem;color:#dc2626;padding:0.4rem 1rem;background:#fef2f2;border-radius:6px;margin-top:0.25rem;display:none;}
.xh-err.xh-show{display:block;}
.xh-preview-wrap{border-top:1px solid var(--border,#e2e8f0);display:none;}
.xh-preview-wrap.xh-open{display:block;}
.xh-preview-head{padding:0.5rem 1rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:var(--text-muted,#64748b);background:var(--surface-muted,#f8fafc);border-bottom:1px solid var(--border,#e2e8f0);}
.xh-preview-body{padding:1rem;max-height:320px;overflow-y:auto;background:var(--surface,#fff);}
.xh-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.75rem;padding:0.75rem 1rem;background:var(--surface-muted,#f8fafc);border-top:1px solid var(--border,#e2e8f0);}
.xh-toolbar-left{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;}
.xh-toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;}
@media (min-width:768px){.xh-bar{flex-direction:row;align-items:center;justify-content:space-between;padding:0.875rem 1.25rem;}
.xh-panels{display:grid;grid-template-columns:1fr 1fr;min-height:320px;}
.xh-panel{border-bottom:none;border-right:1px solid var(--border,#e2e8f0);}
.xh-panel:last-child{border-right:none;}
.xh-editor{min-height:400px;}
.xh-toolbar{padding:0.875rem 1.25rem;}
}
@media (min-width:992px){.xh-editor{min-height:480px;}
.xh-preview-body{max-height:400px;}
}
