.campaign-page { overflow-y: auto; }
.campaign-page > * { flex-shrink: 0; }
.campaign-page .checker-cards { align-items: flex-start; }
.campaign-page .checker-card { min-width: 0; width: 100%; container-type: inline-size; }
.campaign-page .campaign-editor { flex: 1.5; }
.campaign-form { border: 0; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.campaign-form:disabled .custom-select { pointer-events: none; opacity: 0.55; }
.campaign-toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.campaign-toolbar .modal-input { width: auto; flex: 1; min-width: 120px; }
.campaign-format-tools .btn-secondary { min-width: 38px; min-height: 38px; padding: 8px 11px; font-size: 13px; }
.campaign-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; align-items: stretch; }
.campaign-field { display: flex; flex-direction: column; gap: 9px; color: var(--text-secondary); font-size: 14px; line-height: 1.5; min-width: 0; }
.campaign-field .modal-input { width: 100%; margin-top: auto; }
.campaign-field > .custom-select { margin-top: auto; width: 100%; min-width: 0; }
.campaign-field .custom-select-trigger { width: 100%; min-width: 0; }
.module-field-wide { grid-column: 1 / -1; }
.registration-fields { margin-bottom: 18px; }
.registration-terms { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 300px; overflow-y: auto; margin: 12px 0; }
.campaign-check { display: flex; align-items: center; gap: 12px; font-size: 14px; line-height: 1.5; color: var(--text-secondary); cursor: pointer; }
.campaign-check .custom-checkbox { flex-shrink: 0; }
#premium-checkout:not([hidden]) { display: flex; flex-direction: column; gap: 12px; }
#premium-card-form { display: flex; flex-direction: column; gap: 20px; }
#premium-save { align-self: flex-start; }
.premium-terms { color: var(--text-secondary); font-size: 13px; text-underline-offset: 3px; }
.premium-terms:hover { color: var(--text-primary); }
.campaign-preview-box summary { cursor: pointer; color: var(--text-secondary); font-size: 14px; line-height: 1.5; }
.campaign-preview-box { border-top: 1px solid var(--border); padding-top: 12px; }
.campaign-message-preview { margin: 12px 0; padding: 14px; min-height: 64px; border: 1px solid var(--border-light); border-radius: var(--radius); background: var(--bg-hover); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.6; user-select: text; }
.campaign-message-preview a { color: var(--text-primary); text-decoration: underline; }
.campaign-message-preview blockquote { padding-left: 12px; border-left: 2px solid var(--text-muted); }
.campaign-message-preview pre, .campaign-message-preview code { white-space: pre-wrap; font-family: monospace; background: var(--bg-dark); }
.campaign-preview-image { display: block; max-width: 100%; max-height: 200px; margin-top: 12px; border-radius: var(--radius); object-fit: contain; }
.campaign-progress { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.campaign-progress progress { width: 160px; height: 5px; accent-color: var(--text-secondary); }
.campaign-account-stats { display: flex; flex-wrap: wrap; gap: 8px; }
.campaign-account-stats:empty { display: none; }
.campaign-account-stats span { border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-secondary); padding: 8px 12px; font-size: 13px; }
.campaign-page .campaign-log { min-height: 180px; flex: 0 0 220px; }
.campaign-export-path { overflow-wrap: anywhere; user-select: text; }
.campaign-results { flex: 0 0 auto; max-height: min(360px, 60vh); overflow: auto; scrollbar-gutter: stable; border: 1px solid var(--border); border-radius: var(--radius); }
.campaign-results::-webkit-scrollbar,
.campaign-account-list::-webkit-scrollbar { width: 4px; height: 4px; }
.campaign-results::-webkit-scrollbar-track, .campaign-results::-webkit-scrollbar-corner,
.campaign-account-list::-webkit-scrollbar-track, .campaign-account-list::-webkit-scrollbar-corner { background: transparent; }
.campaign-results::-webkit-scrollbar-thumb,
.campaign-account-list::-webkit-scrollbar-thumb { background: var(--border-light); border-radius: 3px; }
.campaign-results::-webkit-scrollbar-thumb:hover,
.campaign-account-list::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
.campaign-results table { width: 100%; border-collapse: collapse; font-size: 13px; }
.campaign-results td, .campaign-results th { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.campaign-results th { background: var(--bg-card); color: var(--text-muted); }
.campaign-results thead { position: sticky; top: 0; z-index: 1; }
.campaign-results a { color: var(--text-primary); text-decoration: none; }
.campaign-results a:hover { text-decoration: underline; }
.campaign-results td { overflow-wrap: anywhere; max-width: 450px; user-select: text; }
.campaign-account-modal {
    width: clamp(1040px, 76vw, 1920px);
    height: min(1000px, 78vh);
}
.campaign-account-modal > .modal-body { flex: 1; max-height: none; }
.campaign-account-modal > .modal-body > * { flex-shrink: 0; }
.campaign-account-list { max-height: min(520px, 65vh); overflow-y: auto; }
.campaign-page [hidden] { display: none !important; }
.campaign-page input[type="file"] { display: none; }
#spammer-reply-settings { display: flex; flex-direction: column; gap: 12px; }
@container (min-width: 1040px) {
    .campaign-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.module-page { scroll-padding-top: 84px; scroll-padding-bottom: 24px; }
.module-section { flex: none; gap: 18px; padding: 22px; }
.module-section-title { font-size: 16px; font-weight: 600; line-height: 1.5; color: var(--text-primary); }
details.module-section { display: block; }
details.module-section > summary { display: flex; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
details.module-section > summary::-webkit-details-marker { display: none; }
details.module-section[open] > summary { margin-bottom: 20px; }
.module-section-toggle { font-size: 22px; font-weight: 400; line-height: 1; }
details.module-section[open] .module-section-toggle { transform: rotate(45deg); }
.module-section .campaign-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.module-section input, .module-section textarea, .module-section select, .module-section button, .module-section summary { scroll-margin-top: 96px; scroll-margin-bottom: 20px; }
.module-section .campaign-field > label { font-weight: 500; }
.module-section .modal-textarea { min-height: 164px; line-height: 1.65; resize: vertical; }
#direct-messages-text { min-height: 220px; }
.module-section .module-option { grid-column: 1 / -1; padding: 10px 0; border-bottom: 1px solid var(--border); }
.module-section .module-option:last-child { border-bottom: 0; }
.module-section .module-option > span:last-child { flex: 1; }
.module-choices { gap: 10px 18px; }
.module-choices .campaign-check { min-height: 36px; }
.module-file-input { display: flex; flex-direction: column; gap: 10px; }
.module-file-input .campaign-toolbar { justify-content: flex-start; }
.module-actions { position: sticky; top: 0; z-index: 10; padding: 12px 0; background: var(--bg-dark); border-bottom: 1px solid var(--border-light); }
.module-actions .btn-primary { margin-left: auto; min-width: 160px; }
.module-actions .tool-btn-text { min-height: 42px; padding: 10px 16px; font-size: 14px; }
.module-actions .btn-primary, .module-actions .btn-secondary { min-height: 42px; font-size: 14px; display: inline-flex; justify-content: center; align-items: center; gap: 10px; }
.module-report-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 4px; }
.module-report-toolbar .campaign-progress { flex: 1; min-width: 200px; }
.module-report-toolbar .campaign-progress progress { width: 120px; height: 6px; }
.module-export { flex-wrap: nowrap; }
.module-export > .custom-select { width: 100px; min-width: 100px; }
.module-export .custom-select-trigger { min-width: 0; width: 100%; }
.module-export > .modal-input { min-width: 80px; max-width: 100px; }
.module-page .campaign-log { min-height: 180px; flex-basis: 200px; }
.module-page .campaign-results:not(:has(tbody tr)), .module-page .campaign-export-path:empty { display: none; }
.module-page .checker-card-desc:empty { display: none; }

@media (max-width: 760px) {
    .module-section { padding: 16px; }
    .module-section .campaign-grid { grid-template-columns: minmax(0, 1fr); }
    .module-actions .btn-primary { min-width: 120px; }
}
@container (max-width: 359px) {
    .campaign-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1100px) {
    .campaign-page .checker-cards { flex-direction: column; }
    .campaign-page .campaign-editor { flex: 1; }
}
