/* Campaign workspace data interfaces. Kept separate from layout.css so local sticky/table tweaks stay untouched. */ .alert.success { background: var(--success-bg); color: var(--success-text); margin-bottom: 12px; } .alert.info { background: var(--info-bg); color: var(--info-text); margin-bottom: 12px; } .small-note { font-size: 12px; } .wizard-action-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 14px; } .wizard-action-card { min-height: 176px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-soft); padding: 16px; display: flex; flex-direction: column; align-items: flex-start; } .wizard-action-card h3 { margin: 0; color: var(--text-strong); font-size: 16px; } .wizard-action-card p { margin: 8px 0 18px; color: var(--muted); line-height: 1.45; } .wizard-action-card a { margin-top: auto; text-decoration: none; } .data-table-wrap { margin: 0; overflow-x: auto; } .data-table th:nth-child(1), .data-table td:nth-child(1) { width: 76px; } .data-table th:nth-child(2), .data-table td:nth-child(2) { min-width: 220px; } .data-table th:nth-child(3), .data-table td:nth-child(3) { width: 120px; } .data-table code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; color: #5d5a55; white-space: pre-wrap; } .template-preview { min-height: 260px; max-height: 520px; overflow: auto; margin: 0; white-space: pre-wrap; color: var(--text); background: var(--panel-soft); border: 1px solid var(--line); border-radius: 6px; padding: 14px; font: inherit; line-height: 1.5; } .field-chip-list { display: flex; flex-wrap: wrap; gap: 8px; } .field-chip { display: inline-flex; align-items: center; min-height: 28px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel-soft); padding: 4px 10px; color: var(--text-strong); font-size: 13px; font-weight: 700; } @media (max-width: 1000px) { .wizard-action-grid { grid-template-columns: 1fr; } } .locked-wizard-card { grid-template-columns: 1fr; } .standalone-wizard-body { min-height: auto; } /* Editable campaign data surfaces. */ .responsive-form-grid { align-items: start; } .json-edit-block { display: grid; gap: 8px; margin-top: 16px; } .json-edit-block textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; line-height: 1.45; color: #4d4944; } .danger-text { color: var(--danger-text); } .section-mini-heading { margin: 18px 0 8px; font-size: 12px; color: #6b6863; letter-spacing: .04em; text-transform: uppercase; } .template-editor-grid { grid-template-columns: minmax(420px, 1.4fr) minmax(320px, .8fr); } .recipient-table-wrap, .files-table .app-table-wrap { overflow-x: auto; } .recipient-table th, .recipient-table td, .files-table th, .files-table td { white-space: nowrap; } .recipient-table code, .files-table code { white-space: pre-wrap; font-size: 12px; } .placeholder-stack { display: grid; gap: 8px; margin-top: 12px; } .placeholder-stack span { display: block; border: 1px dashed var(--line-dark); border-radius: 6px; background: var(--panel-soft); padding: 10px 12px; color: var(--muted); font-weight: 700; } @media (max-width: 1100px) { .template-editor-grid { grid-template-columns: 1fr; } .form-grid.compact.responsive-form-grid { grid-template-columns: 1fr; } } /* Campaign data layout refinement. */ .campaign-data-stack { display: grid; gap: 18px; } .form-subsection { display: grid; gap: 12px; border-top: 1px solid var(--line); padding-top: 14px; } .form-subsection:first-child { border-top: 0; padding-top: 0; } .form-subsection h3, .subsection-heading h3 { margin: 0; color: var(--text-strong); font-size: 14px; letter-spacing: .01em; } .subsection-heading.split { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .toggle-grid { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 8px 16px; } .form-span-full { grid-column: 1 / -1; } .toggle-span-full { border: 1px solid var(--line); border-radius: 8px; background: var(--panel-soft); padding: 10px 12px; } .compact-table-wrap { margin-top: 8px; } .direct-attachment-table th:nth-child(1), .direct-attachment-table td:nth-child(1) { width: 220px; } .direct-attachment-table th:nth-child(3), .direct-attachment-table td:nth-child(3) { width: 180px; } .direct-attachment-table th:last-child, .direct-attachment-table td:last-child { width: 96px; } .table-action-cell { text-align: right; white-space: nowrap; } .empty-table-cell { color: var(--muted); font-size: 13px; padding: 18px 14px !important; text-align: center; } .field-editor-table th:nth-child(1), .field-editor-table td:nth-child(1) { min-width: 80px; } .field-editor-table th:nth-child(2), .field-editor-table td:nth-child(2) { min-width: 80px; } .field-editor-table th:nth-child(3), .field-editor-table td:nth-child(3) { width: 140px; } .field-editor-table th:nth-child(4), .field-editor-table td:nth-child(4) { width: 175px; } .field-editor-table th:nth-child(5), .field-editor-table td:nth-child(5) { min-width: 80px; } .field-editor-table th:nth-child(6), .field-editor-table td:nth-child(6) { width: 205px; } .field-editor-table th:last-child, .field-editor-table td:last-child { width: 96px; } .additional-global-values-table th:last-child, .additional-global-values-table td:last-child { width: 96px; } .schema-note { margin-top: 12px; } .additional-global-values-table th:nth-child(1), .additional-global-values-table td:nth-child(1) { width: 260px; } @media (max-width: 1100px) { .toggle-grid { grid-template-columns: 1fr; } } /* Campaign workspace navigation and cross-section references. */ .section-link-primary { margin-top: 2px; font-weight: 700; } .campaign-settings-grid { align-items: start; } .override-toggle-grid { grid-template-columns: repeat(3, minmax(180px, 1fr)); } .related-link-grid { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 12px; } .related-link-card { display: grid; gap: 6px; min-height: 88px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-soft); color: inherit; text-decoration: none; transition: border-color .16s ease, transform .16s ease, background .16s ease; } .related-link-card:hover { border-color: var(--accent-soft); background: var(--panel); transform: translateY(-1px); } .related-link-card span { color: var(--muted); font-size: 12px; line-height: 1.45; } .compact-detail-list { gap: 8px; } .global-values-preview { margin-top: 14px; } .template-side-stack { display: grid; gap: 18px; align-content: start; } .template-preview-box { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-soft); } .template-preview-box h3 { margin: 0; color: var(--text-strong); font-size: 15px; } .template-preview-box pre { margin: 0; white-space: pre-wrap; color: var(--text); font-family: inherit; font-size: 13px; line-height: 1.55; } @media (max-width: 1280px) { .related-link-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); } .override-toggle-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); } } @media (max-width: 780px) { .related-link-grid, .override-toggle-grid { grid-template-columns: 1fr; } } /* Campaign list and module shell refinements. */ .subsection-bottom-actions { justify-content: flex-end; margin-top: 12px; } .campaigns-page > .alert { margin: 0 0 18px; } .campaigns-page .card-header { position: sticky; top: 0; z-index: 30; min-height: 64px; padding: 0 24px; background: #fff; border-bottom: 1px solid var(--line); border-radius: var(--radius) var(--radius) 0 0; box-shadow: 0 14px 18px -22px rgba(45, 43, 40, .75); } .campaigns-page .card-body { padding: 0; } .campaign-table-wrap { margin: 0; } .campaign-table thead, .campaign-table thead th { top: 64px; } .campaign-table th:first-child, .campaign-table td:first-child { padding-left: 24px; } .campaign-table th:last-child, .campaign-table td:last-child { padding-right: 24px; } .module-workspace .section-sidebar { padding-top: 18px; } .settings-dashboard-grid { align-items: start; } .queue-pressure-section { margin-bottom: 18px; } .queue-pressure-heading { margin: 0 0 12px; color: var(--text-strong); font-size: 16px; } .queue-pressure-grid { grid-template-columns: repeat(5, minmax(112px, 1fr)); margin: 0; } .queue-pressure-grid .metric-card { min-width: 0; } .queue-pressure-grid .metric-label { min-height: 2.4em; } @media (max-width: 1150px) { .queue-pressure-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } } .module-table th, .module-table td { white-space: nowrap; } .module-table td:first-child { font-weight: 700; color: var(--text-strong); } .module-big-number { display: block; color: var(--text-strong); font-size: 24px; line-height: 1.2; margin-bottom: 8px; } .stacked-actions { align-items: stretch; flex-direction: column; } .stacked-actions .btn { justify-content: center; } /* Module entry/detail pages. */ .module-card-heading { display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; } .module-card-heading h2 { margin: 0; font-size: 1.06rem; } .module-card-heading span { color: var(--muted-text); font-size: 0.78rem; font-weight: 500; } .module-table-wrap { width: 100%; } .module-entry-table th:last-child { width: 1%; } .module-entry-table td { vertical-align: middle; } .module-title-cell { display: flex; flex-direction: column; gap: 0.18rem; min-width: 15rem; } .module-title-cell strong { color: var(--text); font-size: 0.94rem; font-weight: 700; } .module-title-cell span { color: var(--muted-text); font-size: 0.78rem; line-height: 1.35; } .small-text { font-size: 0.78rem; } .compact-chip-row { gap: 0.28rem; flex-wrap: nowrap; } .message-preview { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface-subtle); padding: 1rem; } .message-preview strong { display: block; margin-bottom: 0.85rem; } .message-preview pre { margin: 0; white-space: pre-wrap; font-family: inherit; color: var(--text); line-height: 1.55; } @media (max-width: 980px) { .module-entry-table { min-width: 880px; } } /* Campaign overview configuration shortcuts. */ .overview-config-grid { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 14px; margin-bottom: 18px; align-items: stretch; } .overview-config-card { min-height: 218px; border: 1px solid var(--line); border-radius: 6px; background: linear-gradient(#ffffff, var(--panel-soft)); box-shadow: 0 1px 2px rgba(38, 35, 30, .04); padding: 16px; display: grid; grid-template-rows: 22px 44px 1fr 35px; gap: 8px; align-items: start; height: 100%; } .overview-config-card h3 { margin: 0; color: var(--text-strong); font-size: 16px; line-height: 22px; } .overview-config-card p { margin: 0; color: var(--muted); line-height: 1.45; } .overview-config-facts { display: grid; grid-template-rows: repeat(3, minmax(31px, auto)); gap: 0; width: 100%; margin: 0; align-self: stretch; } .overview-config-facts div { display: grid; grid-template-columns: minmax(96px, .72fr) minmax(0, 1.28fr); gap: 10px; align-items: baseline; min-height: 31px; border-top: 1px solid var(--line); padding-top: 8px; } .overview-config-facts dt { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; } .overview-config-facts dd { margin: 0; min-width: 0; overflow: hidden; color: var(--text-strong); font-size: 13px; font-weight: 700; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; } .overview-config-actions { display: flex; flex-wrap: wrap; justify-content: right; align-self: end; gap: 8px; width: 100%; } .overview-config-actions a { text-decoration: none; } .overview-summary-grid { grid-template-columns: repeat(4, minmax(120px, 1fr)); } @media (max-width: 1100px) { .overview-config-grid, .overview-summary-grid { grid-template-columns: 1fr; } .overview-config-card { grid-template-rows: auto auto auto auto; } } /* Template editor refinements. */ .template-body-mode { width: fit-content; } .template-editor-mode { margin-top: -2px; } .template-editor-actions { justify-content: flex-end; } .field-chip-button { cursor: pointer; border-color: var(--line-dark); } .field-chip-button:hover, .field-chip-button:focus-visible { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.09); } .field-chip-button.used { background: var(--green-soft); border-color: #78b7a9; color: #2d685d; } .field-chip-button.undefined { background: #fff1d0; border-color: #d5a64a; color: #7c5412; } .field-chip-namespace { border-right: 1px solid rgba(0,0,0,.18); color: var(--muted); margin-right: 2px; padding-right: 6px; text-transform: uppercase; font-size: 10px; letter-spacing: .05em; } .template-preview-modal { width: min(920px, 100%); } .template-preview-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; } .template-preview-toolbar p { margin: 4px 0 0; } .template-preview-frame { width: 100%; min-height: 360px; border: 1px solid var(--line); border-radius: 8px; background: #fff; } .template-action-dialog { width: min(620px, 100%); } .template-preview-nav { align-items: center; gap: 0.25rem; } .template-preview-count { color: var(--muted); margin: 0 0.4rem; white-space: nowrap; } .template-preview-attachments { margin-top: 16px; } .template-preview-attachments h3 { margin: 0 0 8px; } .template-preview-attachments .app-table-wrap { max-height: 220px; overflow: scroll; margin-top: 10px; } .template-preview-attachments code { white-space: nowrap; } @media (max-width: 720px) { .template-preview-toolbar { display: grid; } } /* Restored workspace layout rules removed by the template editor patch. */ .attachment-base-stack { display: grid; gap: 16px; margin-bottom: 16px; } .attachment-base-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .36fr); gap: 18px; align-items: end; margin-bottom: 16px; } .attachment-base-toggle { display: flex; min-height: 44px; align-items: center; padding-bottom: 2px; } .campaign-settings-stack { display: grid; gap: 18px; } .campaign-identity-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); } .campaign-identity-grid .form-field:nth-child(3), .campaign-identity-grid .form-field:nth-child(4) { grid-column: 1 / -1; } .campaign-header-stack { display: grid; gap: 18px; } .campaign-header-grid, .campaign-sender-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .36fr); gap: 18px; align-items: end; } .campaign-header-toggle, .campaign-sender-toggle { display: flex; min-height: 44px; align-items: center; padding-bottom: 2px; } .recipient-add-row td { background: var(--panel-soft); } .recipient-add-row .email-address-input { max-width: 720px; } @media (max-width: 1100px) { .campaign-header-grid, .campaign-sender-grid, .attachment-base-grid { grid-template-columns: 1fr; } } @media (max-width: 860px) { .campaign-identity-grid { grid-template-columns: 1fr; } } /* Recipient editor compaction and reusable attachment rule overlay. */ .recipient-editor-table th:nth-child(1), .recipient-editor-table td:nth-child(1) { width: 42px; } .recipient-editor-table th:nth-child(2), .recipient-editor-table td:nth-child(2) { min-width: 500px; } .recipient-editor-table th:nth-child(3), .recipient-editor-table td:nth-child(3) { min-width: 192px; } .recipient-editor-table th:last-child, .recipient-editor-table td:last-child { width: 123px; } .recipient-editor-table td { vertical-align: top; } .recipient-cell { white-space: normal !important; } .recipient-address-stack { display: grid; gap: 8px; min-width: 320px; } .recipient-address-line { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; align-items: start; } .recipient-address-label { display: inline-flex; justify-content: center; min-height: 24px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel-soft); color: var(--muted); font-size: 11px; font-weight: 800; line-height: 22px; text-transform: uppercase; } .recipient-field-input { min-width: 140px; } .attachment-summary-button { white-space: nowrap; } .attachment-summary-note { margin-top: 12px; } .attachment-rules-modal { width: min(1500px, 100%); } .attachment-rules-body { min-height: 0; overflow: auto; padding: 0; } .attachment-rules-body .attachment-rules-editor, .attachment-rules-body .attachment-rules-main { width: 100%; min-width: 0; } .attachment-rules-body > .data-grid-shell:only-child, .attachment-rules-body .attachment-rules-main > .data-grid-shell:only-child { margin: 0; width: 100%; border: 0; border-radius: 0; } .attachment-rules-body > .data-grid-shell:only-child .data-grid-container, .attachment-rules-body .attachment-rules-main > .data-grid-shell:only-child .data-grid-container { height: auto; min-height: 0; } .attachment-rules-body > .data-grid-shell:only-child .data-grid-container .data-grid, .attachment-rules-body .attachment-rules-main > .data-grid-shell:only-child .data-grid-container .data-grid { min-height: 0; } .attachment-rules-empty { border: 1px dashed var(--line-dark); border-radius: 8px; background: var(--panel-soft); padding: 14px; } .attachment-sources-table th:nth-child(1), .attachment-sources-table td:nth-child(1) { min-width: 280px; } .attachment-sources-table th:nth-child(2), .attachment-sources-table td:nth-child(2) { min-width: 200px; } .attachment-sources-table th:nth-child(3), .attachment-sources-table td:nth-child(3), .attachment-sources-table th:nth-child(4), .attachment-sources-table td:nth-child(4) { width: 170px; } .attachment-sources-table th:last-child, .attachment-sources-table td:last-child { width: 123px; } @media (max-width: 900px) { .recipient-editor-table th:nth-child(2), .recipient-editor-table td:nth-child(2) { min-width: 300px; } .recipient-address-stack { min-width: 260px; } } .attachment-rules-table th:nth-child(1), .attachment-rules-table td:nth-child(1) { min-width: 180px; } .attachment-rules-table th:nth-child(2), .attachment-rules-table td:nth-child(2) { width: 240px; } .attachment-rules-table th:nth-child(3), .attachment-rules-table td:nth-child(3) { min-width: 300px; } .attachment-rules-table th:nth-child(4), .attachment-rules-table td:nth-child(4) { width: 220px; } .attachment-rules-table th:nth-child(5), .attachment-rules-table td:nth-child(5) { width: 160px; } .attachment-rules-table th:last-child, .attachment-rules-table td:last-child { width: 150px; } .attachment-rules-table .data-grid-body-cell:last-child .btn { width: 100%; } /* Attachment file chooser panel embedded in the shared rules editor. */ .attachment-rules-editor { display: grid; gap: 12px; min-width: 0; } .attachment-rules-editor.has-file-browser { grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); align-items: start; } .attachment-rules-main { min-width: 0; } .attachment-rules-table tr.is-choosing-file td { background: var(--panel-soft); } .attachment-file-browser-panel { display: grid; gap: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-soft); padding: 14px; min-width: 0; } .attachment-file-browser-header { display: flex; justify-content: space-between; gap: 12px; align-items: start; } .attachment-file-browser-header h3 { margin: 0 0 4px; font-size: 15px; } .attachment-file-browser-list { display: grid; gap: 8px; } .attachment-file-browser-list .btn { justify-content: flex-start; text-align: left; white-space: normal; } .attachment-file-browser-actions { justify-content: flex-end; } @media (max-width: 1100px) { .attachment-rules-editor.has-file-browser { grid-template-columns: 1fr; } } /* Chooser-backed readonly fields: legible, clickable display values without a text caret. */ .chooser-display-input, .field-with-action input.chooser-display-input { background: var(--panel-soft); border-color: var(--line-dark); color: var(--ink); cursor: pointer; caret-color: transparent; user-select: none; } .chooser-display-input:hover, .field-with-action input.chooser-display-input:hover { background: var(--panel); border-color: var(--accent); } .chooser-display-input:focus, .field-with-action input.chooser-display-input:focus { outline: none; box-shadow: 0 0 0 2px rgba(239, 107, 58, .16); } .chooser-display-input:disabled, .field-with-action input.chooser-display-input:disabled { background: var(--panel-soft); border-color: var(--line); color: var(--muted); cursor: not-allowed; opacity: 1; } /* Recipient/profile split pages. */ .recipient-address-table th:nth-child(1), .recipient-address-table td:nth-child(1) { width: 42px; } .recipient-address-table th:last-child, .recipient-address-table td:last-child { width: 123px; } .recipient-address-table td { vertical-align: top; } .recipient-address-table .email-address-input { min-width: 220px; } .recipient-address-table .toggle-switch { white-space: nowrap; } .recipient-data-table td { vertical-align: top; } .recipient-data-identity-cell { white-space: normal !important; } .recipient-data-identity { display: inline-flex; align-items: center; gap: 8px; max-width: 260px; color: var(--ink); text-decoration: none; } .recipient-data-identity:hover .recipient-data-address { text-decoration: underline; } .recipient-data-number, .recipient-extra-bubble { display: inline-flex; align-items: center; justify-content: center; min-height: 24px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel-soft); color: var(--muted); font-size: 11px; font-weight: 800; padding: 0 8px; white-space: nowrap; } .recipient-data-address { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Recipient data split: align the identifier column with the recipient profile table. */ .recipient-data-table th:nth-child(1), .recipient-data-table td:nth-child(1) { min-width: 72px; width: 72px; } .recipient-data-table th:nth-child(2), .recipient-data-table td:nth-child(2) { min-width: 240px; } .recipient-data-table th:nth-child(3), .recipient-data-table td:nth-child(3) { min-width: 192px; } .recipient-index-cell { white-space: nowrap; } .address-book-scope-list { display: grid; gap: 10px; } .address-book-scope-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-soft); padding: 14px; } .address-book-scope-card strong { display: block; color: var(--text-strong); } .address-book-scope-card p { margin: 5px 0 0; color: var(--muted); } .locked-version-notice .alert-message { display: flex; align-items: center; justify-content: space-between; gap: 1rem; } .locked-version-copy { flex: 1 1 auto; min-width: 0; } .locked-version-reason { white-space: nowrap; } .locked-version-feedback { color: var(--success, #157347); font-weight: 600; } .locked-version-error { color: var(--danger, #b42318); font-weight: 600; } @media (max-width: 760px) { .locked-version-notice .alert-message { align-items: stretch; flex-direction: column; } } /* Version navigation ---------------------------------------------------- */ .version-line { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; margin: 6px 0 0; color: var(--muted); } .version-arrow { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; border-radius: 999px; color: var(--text, #243247); text-decoration: none; line-height: 1; font-size: 0.72rem; } .version-arrow svg { width: 1rem; height: 1rem; stroke-width: 1.8; } .version-arrow:hover { background: var(--surface-subtle, rgba(15, 23, 42, 0.08)); color: var(--text, #111827); } .version-arrow.disabled { opacity: 0.24; pointer-events: none; } .version-line-separator { opacity: 0.55; margin-inline: 0.1rem; } .locked-version-actions { flex: 0 0 auto; flex-wrap: nowrap; justify-content: flex-end; } .version-arrow:is(button) { border: 0; background: transparent; padding: 0; cursor: pointer; font: inherit; } .version-arrow:is(button):disabled { opacity: 0.24; pointer-events: none; cursor: default; } /* Overview version history refinements. */ .version-history-table .current-version-row td { font-weight: 700; } .mock-message-detail { margin-top: 16px; border-top: 1px solid var(--line-subtle); padding-top: 16px; } .mock-message-preview, .mock-message-raw { width: 100%; max-height: 260px; overflow: auto; border: 1px solid var(--line-subtle); border-radius: 12px; background: rgba(255, 255, 255, 0.62); color: var(--text-primary); padding: 12px; white-space: pre-wrap; } .mock-message-raw { max-height: 420px; font-size: 0.82rem; } /* Shared message preview overlay --------------------------------------- */ .message-preview-modal .modal-body { display: grid; gap: 1rem; } .message-preview-modal .message-display-body, .message-preview-modal .message-display-html-frame { height: clamp(280px, 45vh, 520px); max-height: clamp(280px, 45vh, 520px); } .message-preview-meta { margin: 0; } .message-preview-attachments h3, .message-preview-raw summary { margin: 0 0 0.5rem; } .attachment-chip-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; } .attachment-file-chip { display: inline-flex; flex-direction: column; gap: 0.18rem; min-width: min(220px, 100%); max-width: 100%; border: 1px solid var(--line-subtle); border-radius: 12px; background: rgba(255, 255, 255, 0.68); padding: 0.55rem 0.7rem; color: var(--text-primary); } .attachment-file-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .attachment-file-chip span { color: var(--muted); font-size: 0.82rem; } .message-preview-raw { border-top: 1px solid var(--line-subtle); padding-top: 0.75rem; } .message-preview-raw summary { cursor: pointer; font-weight: 700; color: var(--text-primary); } .attachment-source-path-cell { display: grid; gap: 5px; } .attachment-source-path-cell .small-note { margin: 0; } .warning-text { color: var(--warning, #8a5b00); } /* Managed attachment chooser refinements. */ .split-field-action { gap: 0; } .split-field-action > input, .split-field-action > select, .split-field-action > textarea { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } .split-field-action > button, .split-field-action > .button, .split-field-action > .btn { align-self: stretch; margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; box-shadow: none; } /* Review & Send workflow page. */ .review-send-page { --review-flow-purple: #9b86c7; } .review-flow-navigation { position: sticky; top: 85px; z-index: 35; margin: 0 0 24px; padding: 15px 10px 10px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(247, 246, 244, .96); box-shadow: 0 8px 24px rgba(48, 49, 53, .10); backdrop-filter: blur(12px); overflow-x: auto; } .review-flow-navigation-track { display: flex; align-items: flex-start; width: max-content; min-width: max-content; margin: 0 auto; } .review-flow-navigation-group { display: flex; align-items: flex-start; } .review-flow-navigation-item { display: grid; justify-items: center; gap: 6px; min-width: 96px; padding: 3px 5px; border: 0; background: transparent; color: var(--text); font: inherit; text-align: center; cursor: pointer; } .review-flow-navigation-item:hover .review-flow-navigation-icon, .review-flow-navigation-item:focus-visible .review-flow-navigation-icon { background: color-mix(in srgb, var(--review-nav-color) 15%, #fff); box-shadow: 0 0 0 3px color-mix(in srgb, var(--review-nav-color) 12%, transparent); } .review-flow-navigation-item:focus-visible { outline: none; } .review-flow-navigation-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--review-nav-color); border-radius: 50%; color: color-mix(in srgb, var(--review-nav-color) 82%, var(--text)); background: color-mix(in srgb, var(--review-nav-color) 8%, #fff); transition: background .16s ease, box-shadow .16s ease; } .review-flow-navigation-copy { display: grid; justify-items: center; min-width: 0; } .review-flow-navigation-copy strong { display: inline-flex; align-items: center; justify-content: center; gap: 5px; color: var(--text-strong); font-size: 12px; white-space: nowrap; } .review-flow-navigation-copy small { display: inline-flex; align-items: center; justify-content: center; min-height: 14px; color: var(--muted); font-size: 11px; white-space: nowrap; } .review-flow-navigation-line { width: 42px; height: 2px; margin: 21px 2px 0; flex: 0 0 auto; background: linear-gradient(to right, var(--review-nav-color), var(--review-nav-next-color)); opacity: .82; } .review-flow-timeline { width: 100%; max-width: none; margin: 0; } .review-flow-stage { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 22px; scroll-margin-top: 110px; } .review-flow-stage-marker { display: flex; flex-direction: column; align-items: center; min-height: 100%; padding-top: 17px; box-sizing: border-box; } .review-flow-stage-node { position: relative; z-index: 2; width: 40px; height: 40px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--review-stage-color); border-radius: 50%; color: color-mix(in srgb, var(--review-stage-color) 82%, var(--text)); background: color-mix(in srgb, var(--review-stage-color) 9%, #fff); box-shadow: 0 0 0 4px var(--bg), 0 4px 12px rgba(48, 49, 53, .10); } .review-flow-stage[data-state="running"] .review-flow-stage-node { animation: review-flow-pulse 1.5s ease-in-out infinite; } .review-flow-stage-line { width: 2px; flex: 1 1 auto; min-height: 54px; margin: 4px 0 -14px; border-radius: 999px; background: linear-gradient(to bottom, var(--review-stage-color), var(--review-next-stage-color)); opacity: .82; } .review-flow-stage-card { position: relative; min-width: 0; margin: 0 0 22px; overflow: hidden; border-color: color-mix(in srgb, var(--review-stage-color) 42%, var(--line)); } .review-flow-stage-header { min-height: 74px; gap: 18px; border-left: 2px solid var(--review-stage-color); } .review-flow-stage-header h2 { display: inline-flex; align-items: center; gap: 7px; min-width: 0; margin: 0; } .review-flow-title-lock { flex: 0 0 auto; color: var(--muted); } .review-flow-state-badge { --review-badge-color: var(--line-dark); display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 28px; margin-left: 2px; padding: 4px 9px; border: 1px solid color-mix(in srgb, var(--review-badge-color) 70%, var(--line)); border-radius: var(--radius-pill); color: color-mix(in srgb, var(--review-badge-color) 70%, #242424); background: color-mix(in srgb, var(--review-badge-color) 18%, #fff); font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; } .review-flow-state-badge[data-state="complete"] { --review-badge-color: var(--green); } .review-flow-state-badge[data-state="warning"] { --review-badge-color: var(--amber); } .review-flow-state-badge[data-state="danger"] { --review-badge-color: var(--red); } .review-flow-state-badge[data-state="active"], .review-flow-state-badge[data-state="running"] { --review-badge-color: var(--blue); } .review-flow-state-badge[data-state="partial"], .review-flow-state-badge[data-state="stale"] { --review-badge-color: var(--review-flow-purple); } .review-flow-stage-content { min-height: 150px; } .review-flow-stage-card.is-locked .review-flow-stage-header { opacity: .58; filter: grayscale(.25); } .review-flow-stage-card.is-locked .review-flow-stage-content { opacity: .38; filter: grayscale(.35); pointer-events: none; user-select: none; } .review-flow-lock-message { position: absolute; inset: 74px 0 0; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 28px; color: var(--text); text-align: center; background: rgba(247, 246, 244, .46); } .review-flow-lock-message::before { position: absolute; inset: 50% auto auto 50%; width: min(430px, calc(100% - 44px)); height: 110px; border: 1px solid rgba(189, 184, 176, .8); border-radius: 10px; content: ""; transform: translate(-50%, -50%); background: rgba(255, 255, 255, .91); box-shadow: 0 12px 32px rgba(48, 49, 53, .14); } .review-flow-lock-message > * { position: relative; z-index: 1; } .review-flow-lock-message strong { color: var(--text-strong); } .review-flow-lock-message > span:last-child { max-width: 390px; color: var(--muted); font-size: 13px; line-height: 1.45; } .review-flow-lock-icon { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line-dark); border-radius: 50%; color: var(--muted); background: #fff; } .review-flow-fact-grid, .review-flow-execution-summary { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; margin-bottom: 16px; } .review-flow-fact, .review-flow-execution-summary > div { display: grid; gap: 5px; min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-soft); } .review-flow-fact span, .review-flow-execution-summary span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; } .review-flow-fact strong, .review-flow-execution-summary strong { min-width: 0; overflow: hidden; color: var(--text-strong); font-size: 16px; text-overflow: ellipsis; } .review-flow-inline-note { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 12px; border-left: 3px solid var(--blue); background: color-mix(in srgb, var(--blue) 10%, #fff); color: var(--text); font-size: 13px; } .review-flow-inline-note.is-complete { border-left-color: var(--green); background: color-mix(in srgb, var(--green) 12%, #fff); } .review-flow-inline-note.is-warning { border-left-color: var(--amber); background: color-mix(in srgb, var(--amber) 16%, #fff); } .review-flow-inline-note.is-danger { border-left-color: var(--red); background: color-mix(in srgb, var(--red) 10%, #fff); } .review-flow-inline-note.is-stale { border-left-color: var(--review-flow-purple); background: color-mix(in srgb, var(--review-flow-purple) 11%, #fff); } .review-flow-result-line { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: var(--muted); } .deliverability-preflight { display: grid; gap: 10px; margin: 0 0 16px; } .deliverability-preflight-header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; } .deliverability-preflight-header h3 { margin: 0; color: var(--text-strong); font-size: 14px; } .deliverability-preflight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; } .deliverability-preflight-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid var(--blue); border-radius: 6px; background: var(--panel-soft); } .deliverability-preflight-item[data-state="ready"] { border-left-color: var(--green); } .deliverability-preflight-item[data-state="warning"] { border-left-color: var(--amber); } .deliverability-preflight-item[data-state="blocked"] { border-left-color: var(--red); } .deliverability-preflight-item > div { display: grid; gap: 5px; min-width: 0; } .deliverability-preflight-item span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; } .deliverability-preflight-item strong { min-width: 0; color: var(--text-strong); font-size: 13px; line-height: 1.35; } .review-flow-stage-actions { margin-bottom: 16px; } .review-flow-data-stack { display: grid; gap: 22px; margin-bottom: 18px; } .review-flow-data-section { min-width: 0; margin-top: 18px; } .review-flow-data-section > h3 { margin: 0 0 10px; color: var(--text-strong); font-size: 14px; } .review-flow-data-section > .data-grid-shell { max-height: 420px; } .review-flow-data-section > .small-note { margin: 10px 0 0; } @keyframes review-flow-pulse { 0%, 100% { box-shadow: 0 0 0 4px var(--bg), 0 4px 12px rgba(48, 49, 53, .10); } 50% { box-shadow: 0 0 0 7px color-mix(in srgb, var(--review-stage-color) 18%, transparent), 0 4px 12px rgba(48, 49, 53, .10); } } @media (max-width: 980px) { .review-flow-fact-grid, .review-flow-execution-summary { grid-template-columns: repeat(2, minmax(130px, 1fr)); } } @media (max-width: 680px) { .review-flow-stage { grid-template-columns: 36px minmax(0, 1fr); gap: 14px; } .review-flow-stage-node { width: 34px; height: 34px; } .review-flow-stage-header { align-items: flex-start; flex-direction: column; padding: 14px 18px; } .review-flow-state-badge { margin-left: 0; } .review-flow-lock-message { inset: 100px 0 0; } .review-flow-fact-grid, .review-flow-execution-summary { grid-template-columns: 1fr; } .deliverability-preflight-header { align-items: flex-start; flex-direction: column; } .deliverability-preflight-grid { grid-template-columns: 1fr; } } /* Collapsible workflow stage headers keep status and disclosure controls grouped. */ .review-flow-stage-header-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; margin-left: auto; } .review-flow-stage-card.is-collapsed .review-flow-stage-header { min-height: 81px; padding-bottom: 7px; border-bottom: 0; border-radius: var(--radius) var(--radius) var(--radius) var(--radius); } .review-flow-stage-card.is-collapsed { background: var(--surface); } .attachment-zip-master-toggle { margin-bottom: 14px; } /* Keep the editable ZIP table aligned with the compact rows used elsewhere. */ .attachment-zip-table-wrap .data-grid-cell { padding-top: 8px; padding-bottom: 8px; } .attachment-zip-table-wrap .toggle-switch-row { min-height: 36px; gap: 8px; } .attachment-zip-table-wrap select { min-height: 36px; padding-top: 7px; padding-bottom: 7px; } .attachment-zip-name-button { width: 100%; min-height: 36px; display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid transparent; border-radius: 5px; background: transparent; padding: 6px 8px; color: var(--text); text-align: left; } .attachment-zip-name-button:not(:disabled):hover, .attachment-zip-name-button:not(:disabled):focus-visible { border-color: var(--line); background: var(--panel-soft); } .attachment-zip-name-button[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 2px rgba(224, 106, 95, 0.16); } .attachment-zip-name-button:disabled { cursor: default; opacity: .68; } .attachment-zip-name-value { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .template-expression-dialog { width: min(720px, calc(100vw - 32px)); overflow: hidden; } .template-expression-dialog-header { padding: 16px 18px; border-bottom: 1px solid var(--line); background: var(--panel); } .template-expression-dialog-body { display: grid; gap: 12px; padding: 18px; overflow: auto; } .template-expression-dialog-footer { padding: 12px 18px; border-top: 1px solid var(--line); background: var(--panel); } .template-replacement-field { display: grid; gap: 6px; margin-top: 12px; color: var(--text-strong); font-weight: 700; } .template-expression-description { margin-top: 0; } .template-expression-value-field { display: grid; gap: 7px; color: var(--text-strong); font-weight: 700; } .template-expression-value-field input[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 2px rgba(224, 106, 95, 0.16), inset 0 1px 2px rgba(0, 0, 0, .04); } .attachment-zip-name-error { margin: 12px 0 0; color: var(--danger-text); font-weight: 700; } .locked-version-context { color: var(--muted); } @media (max-width: 680px) { .review-flow-stage-header-actions { width: 100%; justify-content: space-between; margin-left: 0; } } /* Recipient-level ZIP attachment grouping ------------------------------ */ .attachment-zip-settings { align-items: end; } .message-preview-attachment-layout { display: grid; gap: 0.75rem; } .attachment-zip-group { display: grid; gap: 0.65rem; border: 2px solid var(--line-strong, var(--line-subtle)); border-radius: 14px; padding: 0.75rem; background: rgba(255, 255, 255, 0.4); } .attachment-zip-group > header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; } .attachment-zip-group > header span { color: var(--muted); font-size: 0.82rem; } .recipient-address-cell { display: grid; gap: 0.45rem; min-width: 0; } .recipient-address-merge { display: flex; align-items: center; gap: 0.5rem; min-height: 1.75rem; font-size: 0.78rem; } .recipient-address-merge .toggle-switch { flex: 0 0 auto; } .recipient-profiles-section { display: grid; gap: 12px; width: 100%; max-width: 100%; min-width: 0; } .recipient-profiles-table-surface, .recipient-profiles-table-surface > .data-grid-shell { width: 100%; max-width: 100%; min-width: 0; } .review-send-page .btn { text-decoration: none; } .review-send-controls { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 16px 0; } /* Delivery report additions ------------------------------------------------ */ .dialog-panel-wide { width: min(920px, calc(100vw - 48px)); } .field-stack { display: grid; gap: 6px; margin-bottom: 14px; } .stacked-sections { display: grid; gap: 14px; } .json-preview { max-height: 280px; overflow: auto; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-muted, #f6f7f9); white-space: pre-wrap; word-break: break-word; } .recipient-outcome-cell { display: grid; gap: 3px; min-width: 0; } .recipient-outcome-cell strong, .recipient-outcome-cell span { min-width: 0; overflow: hidden; text-overflow: ellipsis; } .recipient-outcome-cell span { color: var(--muted); font-size: 12px; } .recipient-outcome-error { color: var(--danger, #b91c1c); } .attempt-history-section { display: grid; gap: 8px; } .attempt-history-section h3 { margin: 0; } .attempt-history-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 8px; } .attempt-history-table { width: 100%; min-width: 760px; border-collapse: collapse; } .attempt-history-table th, .attempt-history-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; } .attempt-history-table th { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; } .attempt-history-table tr:last-child td { border-bottom: 0; } .attempt-history-table td:last-child { max-width: 420px; overflow-wrap: anywhere; } .admin-secret { display: block; padding: 14px; margin: 12px 0; overflow-wrap: anywhere; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted, #f6f7f9); font-size: 14px; user-select: all; } .admin-json-preview { max-height: 420px; overflow: auto; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted, #f6f7f9); white-space: pre-wrap; word-break: break-word; } .dropdown-error { max-width: 300px; margin: 6px 8px 8px; font-size: 12px; } .recipient-import-modal { width: min(1100px, calc(100vw - 32px)); } .recipient-import-body { display: grid; gap: 14px; } .recipient-import-steps { padding: 13px 10px 9px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(247, 246, 244, .96); box-shadow: 0 8px 24px rgba(48, 49, 53, .10); overflow-x: auto; } .recipient-import-step-track { display: flex; align-items: flex-start; width: max-content; min-width: max-content; margin: 0 auto; } .recipient-import-step-group { display: flex; align-items: flex-start; } .recipient-import-step-item { display: grid; justify-items: center; gap: 6px; min-width: 104px; padding: 3px 6px; border: 0; background: transparent; color: var(--text); font: inherit; text-align: center; cursor: pointer; } .recipient-import-step-item:disabled { cursor: default; opacity: .56; } .recipient-import-step-item:not(:disabled):hover .recipient-import-step-icon, .recipient-import-step-item:focus-visible .recipient-import-step-icon { background: color-mix(in srgb, var(--accent, #5d776c) 14%, #fff); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #5d776c) 12%, transparent); } .recipient-import-step-item:focus-visible { outline: none; } .recipient-import-step-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--accent, #5d776c) 70%, var(--line)); border-radius: 50%; color: color-mix(in srgb, var(--accent, #5d776c) 82%, var(--text)); background: color-mix(in srgb, var(--accent, #5d776c) 8%, #fff); font-weight: 700; transition: background .16s ease, box-shadow .16s ease, color .16s ease; } .recipient-import-step-item.is-current .recipient-import-step-icon, .recipient-import-step-item.is-complete .recipient-import-step-icon { color: #fff; background: color-mix(in srgb, var(--accent, #5d776c) 86%, #333); } .recipient-import-step-copy { display: grid; justify-items: center; min-width: 0; } .recipient-import-step-copy strong { display: inline-flex; align-items: center; justify-content: center; color: var(--text-strong); font-size: 12px; white-space: nowrap; } .recipient-import-step-copy small { display: inline-flex; align-items: center; justify-content: center; min-height: 14px; max-width: 120px; color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .recipient-import-step-line { width: 42px; height: 2px; margin: 21px 2px 0; flex: 0 0 auto; background: color-mix(in srgb, var(--accent, #5d776c) 55%, var(--line)); opacity: .82; } .recipient-import-step-panel { display: grid; gap: 14px; min-height: 360px; } .recipient-import-upload-grid, .recipient-import-map-controls { align-items: start; } .recipient-import-textarea { min-height: 190px; max-height: 300px; resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; line-height: 1.45; } .recipient-import-toggles { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; min-height: 38px; } .recipient-import-summary { grid-template-columns: repeat(4, minmax(120px, 1fr)); } .recipient-import-preview-surface { overflow: auto; } .recipient-import-preview-table { width: 100%; min-width: 760px; border-collapse: collapse; } .recipient-import-preview-table th, .recipient-import-preview-table td { border-bottom: 1px solid var(--line); padding: 9px 10px; text-align: left; vertical-align: top; } .recipient-import-preview-table th { color: var(--muted); font-size: 12px; font-weight: 700; } .recipient-import-preview-table td { color: var(--text); font-size: 13px; word-break: break-word; } .recipient-import-preview-table tr.is-invalid td { color: var(--danger-text); } .recipient-import-raw-table td { white-space: pre; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; } .recipient-import-raw-table tr.is-header-row td { background: color-mix(in srgb, var(--accent, #5d776c) 8%, transparent); font-weight: 700; } .recipient-import-mapping-table select, .recipient-import-mapping-table input { width: 100%; min-width: 160px; } .recipient-import-mapping-table td:nth-child(2) { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .recipient-import-file-step { display: grid; gap: 14px; } .recipient-import-file-actions { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-soft); } .recipient-import-file-actions > div:first-child { display: grid; gap: 4px; min-width: 0; } .recipient-import-unmatched-patterns { display: grid; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--warning-bg, #fff3cd) 62%, transparent); } .recipient-import-unmatched-patterns ul { display: grid; gap: 5px; margin: 0; padding-left: 18px; } .recipient-import-unmatched-patterns code { overflow-wrap: anywhere; } .recipient-import-file-link-table td:nth-child(2) { overflow-wrap: anywhere; } @media (max-width: 760px) { .recipient-import-file-actions { display: grid; } } @media (max-width: 760px) { .recipient-import-summary { grid-template-columns: repeat(2, minmax(120px, 1fr)); } .recipient-import-step-panel { min-height: 300px; } } .campaigns-page .card-body > .admin-table-surface:only-child { margin: 0; width: 100%; } .admin-audit-grid .data-grid-scroll-region { max-height: min(68vh, 720px); } .admin-audit-grid .data-grid-header-cell { top: 0; } .admin-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; } .admin-details-grid > div { min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--line); } .admin-details-grid dt { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; } .admin-details-grid dd { margin: 4px 0 0; overflow-wrap: anywhere; } .admin-managed-badge { display: inline-flex; align-items: center; gap: 5px; padding: 3px 7px; border-radius: 999px; background: #e8eef5; color: #36566f; font-size: 11px; font-weight: 800; } .admin-governance-mode { display: grid; gap: 8px; } .admin-tenant-assignment-row { display: grid; grid-template-columns: minmax(0, 1fr) 140px; align-items: center; gap: 10px; } .admin-settings-form { display: grid; gap: 18px; } .admin-settings-form .card { margin: 0; } @media (max-width: 850px) { .admin-details-grid, .admin-tenant-assignment-row { grid-template-columns: 1fr; } } .admin-managed-notice { margin: 0 0 16px; padding: 12px 14px; border: 1px solid #c8d6e3; border-radius: var(--radius-sm); background: #eef4f8; color: #294a61; line-height: 1.45; } .campaign-access-dialog > .dialog-header, .campaign-access-dialog > .dialog-footer { background: var(--surface); } .campaign-access-dialog > .dialog-body { display: grid; gap: 12px; } /* Campaign policy tables. */ .campaign-policy-row { grid-template-columns: minmax(190px, .9fr) minmax(180px, .7fr) minmax(220px, 1fr); } .campaign-policy-control .toggle-switch { min-height: 36px; } @media (max-width: 900px) { .campaign-policy-row { grid-template-columns: 1fr; align-items: start; } }