.dns-wrap .dns-panel,.dns-public .dns-panel{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:18px;margin:16px 0}.dns-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.dns-card{background:#fff;border:1px solid #dcdcde;border-radius:14px;padding:18px}.dns-card strong{font-size:30px;display:block}.dns-card span{color:#646970}.dns-wrap label,.dns-public label{display:block;font-weight:600;margin:12px 0}.dns-wrap input,.dns-wrap select,.dns-wrap textarea,.dns-public input,.dns-public select,.dns-public textarea{max-width:100%;padding:8px;border:1px solid #c3c4c7;border-radius:8px}.dns-campaign-form input[type=text],.dns-campaign-form input[type=datetime-local],.dns-campaign-form input[type=email]{width:100%;max-width:720px}.dns-template-gallery{background:#f6f7f7;border:1px solid #dcdcde;border-radius:14px;padding:14px;margin:14px 0}.dns-template-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.dns-style-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}.dns-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;max-height:360px;overflow:auto;padding:4px}.dns-template-card{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:12px;text-align:left;cursor:pointer}.dns-template-card small{display:block;color:#646970}.dns-template-card strong{display:block;margin:6px 0}.dns-template-card span{font-size:12px;color:#646970}.dns-template-card.is-selected{outline:3px solid #2271b1}.dns-builder-wrap{display:grid;grid-template-columns:190px minmax(300px,1fr) minmax(280px,420px);gap:16px;margin-top:18px}.dns-builder-tools,.dns-preview,.dns-builder-main{background:#f6f7f7;border:1px solid #dcdcde;border-radius:14px;padding:12px}.dns-builder-tools button{width:100%;margin:4px 0;padding:9px;border:1px solid #c3c4c7;background:#fff;border-radius:8px;cursor:pointer}.dns-builder-canvas{min-height:120px}.dns-block{background:#fff;border:1px solid #dcdcde;border-radius:12px;margin-bottom:10px;overflow:hidden}.dns-block-head{display:flex;justify-content:space-between;align-items:center;background:#f0f0f1;padding:8px 10px;cursor:move}.dns-remove-block{border:0;background:#b32d2e;color:#fff;border-radius:7px;padding:5px 8px}.dns-block textarea{width:100%;min-height:120px;border:0;border-top:1px solid #dcdcde;border-radius:0;font-family:monospace}#dns_campaign_content{display:block;width:100%;min-height:440px;font-family:monospace}.dns-preview iframe,#dns-preview-frame{width:100%;height:520px;background:#fff;border:1px solid #dcdcde;border-radius:12px}.dns-progress{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;max-width:220px}.dns-progress span{display:block;height:100%;background:#2271b1}.dns-actions,.dns-action-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.dns-actions form,.dns-action-row form{display:inline-block;margin:0}.dns-campaign-item{background:#fff;border:1px solid #dcdcde;border-radius:12px;padding:12px;margin:10px 0}.dns-success{background:#edfaef;border-left:4px solid #00a32a;padding:10px;margin:8px 0}.dns-error{background:#fcf0f1;border-left:4px solid #d63638;padding:10px;margin:8px 0}.dns-signup{display:flex;flex-wrap:wrap;gap:8px}.dns-signup button,.dns-public button{padding:9px 14px;border-radius:8px;border:0;background:#2271b1;color:#fff}.dns-archive-item{border:1px solid #dcdcde;border-radius:14px;padding:18px;margin:18px 0;background:#fff}@media(max-width:1000px){.dns-builder-wrap{grid-template-columns:1fr}.dns-template-top{display:block}}

.dns-editor-tabs{display:flex;gap:8px;margin:16px 0 0;flex-wrap:wrap}.dns-editor-tab{border:1px solid #c3c4c7;background:#fff;border-radius:8px;padding:9px 12px;cursor:pointer}.dns-editor-tab.is-active{background:#2271b1;color:#fff;border-color:#2271b1}.dns-tab-visual{display:block}.dns-visual-toolbar{display:flex;gap:6px;flex-wrap:wrap;background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:8px;margin-bottom:10px}.dns-visual-toolbar button{border:1px solid #c3c4c7;background:#fff;border-radius:7px;padding:7px 10px;cursor:pointer}.dns-visual-editor{background:#fff;border:1px solid #dcdcde;border-radius:12px;min-height:440px;padding:18px;overflow:auto}.dns-visual-editor:focus{outline:2px solid #2271b1}.dns-tab-html textarea{box-sizing:border-box}

/* v2.1.3 editor tab layout fix */
.dns-builder-wrap.dns-mode-visual,.dns-builder-wrap.dns-mode-html{grid-template-columns:minmax(320px,1fr) minmax(280px,460px);}
.dns-builder-wrap.dns-mode-blocks{grid-template-columns:190px minmax(320px,1fr) minmax(280px,460px);}
.dns-builder-wrap.dns-mode-visual .dns-builder-main,.dns-builder-wrap.dns-mode-html .dns-builder-main{grid-column:1;}
.dns-builder-wrap.dns-mode-visual .dns-preview,.dns-builder-wrap.dns-mode-html .dns-preview{grid-column:2;}
.dns-builder-wrap.dns-mode-blocks .dns-builder-tools{grid-column:1;}
.dns-builder-wrap.dns-mode-blocks .dns-builder-main{grid-column:2;}
.dns-builder-wrap.dns-mode-blocks .dns-preview{grid-column:3;}
.dns-builder-main{min-width:0;}
.dns-visual-editor{box-sizing:border-box;width:100%;max-width:none;word-break:normal;overflow-wrap:normal;}
.dns-visual-editor *{max-width:100%;}
.dns-visual-editor table{width:100% !important;}
.dns-preview{min-width:0;}
@media(max-width:1000px){.dns-builder-wrap.dns-mode-visual,.dns-builder-wrap.dns-mode-html,.dns-builder-wrap.dns-mode-blocks{grid-template-columns:1fr}.dns-builder-wrap.dns-mode-visual .dns-builder-main,.dns-builder-wrap.dns-mode-html .dns-builder-main,.dns-builder-wrap.dns-mode-blocks .dns-builder-main,.dns-builder-wrap.dns-mode-visual .dns-preview,.dns-builder-wrap.dns-mode-html .dns-preview,.dns-builder-wrap.dns-mode-blocks .dns-preview,.dns-builder-wrap.dns-mode-blocks .dns-builder-tools{grid-column:auto}}
.dns-visual-toolbar .dns-insert-image{background:#2563eb;color:#fff;border-color:#2563eb}
.dns-block-head span{display:flex;gap:6px;align-items:center}
.dns-block-replace-image{font-size:12px;padding:4px 8px;border:1px solid #cbd5e1;background:#fff;border-radius:6px;cursor:pointer}

/* v2.1.6 save/schedule/send controls */
.dns-save-buttons{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}
.dns-save-buttons .dns-send-now{background:#16a34a;border-color:#16a34a;color:#fff}

.dns-recipient-box{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:16px;margin:14px 0}.dns-recipient-box h3{margin-top:0}.dns-radio{display:inline-flex;align-items:center;gap:6px;margin-right:18px;margin-bottom:10px}.dns-target-value{max-width:360px;margin-top:6px}.dns-recipient-count{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;margin:12px 0 6px}
