chore: sync GovOPlaN module split state

This commit is contained in:
2026-07-10 12:51:18 +02:00
parent 57f6066bf7
commit 52e6ed49c5
66 changed files with 8868 additions and 4072 deletions

View File

@@ -1,16 +1,4 @@
/* Campaign workspace data interfaces. Kept separate from layout.css so local sticky/table tweaks stay untouched. */
.workspace-data-page .card { margin-bottom: 18px; }
.workspace-data-page > .workspace-heading {
position: sticky;
top: 0;
z-index: 75;
background: var(--bg, #f8f7f4);
border-bottom: 1px solid var(--line);
box-shadow: 0 8px 18px rgba(65, 60, 52, .08);
margin: -28px -34px 22px;
padding: 18px 34px 16px;
}
.workspace-heading .mono-small { margin-top: 8px; }
.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; }
@@ -177,16 +165,6 @@
grid-template-columns: repeat(2, minmax(180px, 1fr));
gap: 8px 16px;
}
.mail-server-settings-grid {
display: grid;
grid-template-columns: repeat(2, minmax(280px, 1fr));
gap: 22px;
}
.mail-server-subsection {
border-top: 0;
padding-top: 0;
align-content: start;
}
.form-span-full {
grid-column: 1 / -1;
}
@@ -238,7 +216,6 @@
.additional-global-values-table td:nth-child(1) { width: 260px; }
@media (max-width: 1100px) {
.mail-server-settings-grid { grid-template-columns: 1fr; }
.toggle-grid { grid-template-columns: 1fr; }
}
@@ -328,19 +305,9 @@
margin-top: 12px;
}
.campaigns-page {
padding: 28px 34px;
}
.campaigns-page > .alert {
margin: 0 0 18px;
}
.campaigns-page .card {
border: 1px solid var(--line);
border-radius: var(--radius);
box-shadow: var(--shadow);
background: var(--panel);
overflow: hidden;
}
.campaigns-page .card-header {
position: sticky;
top: 0;
@@ -352,10 +319,6 @@
border-radius: var(--radius) var(--radius) 0 0;
box-shadow: 0 14px 18px -22px rgba(45, 43, 40, .75);
}
.campaigns-page .card-header::after {
left: 12px;
right: 12px;
}
.campaigns-page .card-body {
padding: 0;
}
@@ -426,17 +389,7 @@
justify-content: center;
}
@media (max-width: 900px) {
.campaigns-page {
padding: 18px;
}
}
/* Module entry/detail pages (Templates, Files). */
.module-entry-page {
max-width: none;
}
/* Module entry/detail pages. */
.module-card-heading {
display: flex;
align-items: baseline;
@@ -609,33 +562,7 @@
/* Template editor refinements. */
.template-body-mode {
display: inline-flex;
gap: 4px;
width: fit-content;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--panel-soft);
padding: 4px;
}
.template-body-mode button {
border: 0;
border-radius: 999px;
background: transparent;
color: var(--muted);
cursor: pointer;
font: inherit;
font-size: 13px;
font-weight: 700;
padding: 7px 12px;
}
.template-body-mode button.active {
background: #fff;
color: var(--text-strong);
box-shadow: 0 1px 3px rgba(0,0,0,.12);
}
.template-body-mode button:disabled {
cursor: not-allowed;
opacity: .58;
}
.template-editor-mode {
margin-top: -2px;
@@ -785,12 +712,6 @@
.recipient-add-row .email-address-input {
max-width: 720px;
}
.unsaved-changes-dialog {
max-width: 520px;
}
.unsaved-changes-actions {
justify-content: flex-end;
}
@media (max-width: 1100px) {
.campaign-header-grid,
@@ -1052,37 +973,6 @@
.recipient-data-table td:nth-child(3) { min-width: 192px; }
.recipient-index-cell { white-space: nowrap; }
/* Admin overview and address book mock module. */
.admin-overview-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 12px;
}
.admin-overview-link {
border: 1px solid var(--line);
border-radius: 6px;
background: var(--panel-soft);
padding: 14px;
text-align: left;
cursor: pointer;
color: var(--text);
}
.admin-overview-link:hover {
background: #fff;
border-color: var(--line-dark);
}
.admin-overview-link strong {
display: block;
color: var(--text-strong);
margin-bottom: 5px;
}
.admin-overview-link span {
display: block;
color: var(--muted);
font-size: 13px;
line-height: 1.35;
}
.address-book-scope-list {
display: grid;
gap: 10px;
@@ -1674,6 +1564,77 @@
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;
}
@@ -1739,6 +1700,15 @@
.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. */
@@ -1980,122 +1950,71 @@
word-break: break-word;
}
/* Administration foundation ------------------------------------------------ */
.admin-dialog {
width: min(680px, calc(100vw - 40px));
}
.admin-dialog-wide {
width: min(1040px, calc(100vw - 40px));
}
.admin-dialog > .dialog-header {
padding: 16px 18px;
border-bottom: 1px solid var(--line);
background: var(--panel);
}
.admin-dialog > .dialog-footer {
flex: 0 0 auto;
padding: 12px 18px;
border-top: 1px solid var(--line);
background: var(--panel);
box-shadow: 0 -8px 24px rgba(15, 23, 42, .06);
}
.admin-form-grid {
display: grid;
gap: 14px;
}
.admin-form-grid.two-columns {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.admin-assignment-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
margin-top: 18px;
}
.admin-selection-list {
display: grid;
gap: 6px;
max-height: 300px;
overflow: auto;
padding: 8px;
border: 1px solid var(--line);
border-radius: var(--radius-sm);
background: var(--surface-muted, #f6f7f9);
}
.admin-selection-item {
display: grid;
grid-template-columns: 20px minmax(0, 1fr);
align-items: start;
gap: 9px;
padding: 8px 9px;
border-radius: 7px;
cursor: pointer;
}
.admin-selection-item:hover {
background: var(--surface, #fff);
}
.admin-selection-item.disabled {
opacity: .52;
cursor: not-allowed;
}
.admin-selection-item input {
margin-top: 3px;
}
.admin-selection-item span {
.recipient-outcome-cell {
display: grid;
gap: 3px;
}
.admin-selection-item small {
color: var(--muted);
line-height: 1.35;
}
.admin-selection-item small code {
display: inline-block;
margin-left: 6px;
font-size: 11px;
}
.admin-inline-check {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 13px;
color: var(--muted);
}
.admin-permission-groups {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
margin-top: 18px;
}
.admin-permission-group {
display: grid;
align-content: start;
gap: 4px;
min-width: 0;
padding: 10px;
border: 1px solid var(--line);
border-radius: var(--radius-sm);
}
.admin-permission-group legend {
padding: 0 6px;
font-weight: 700;
.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 {
@@ -2127,45 +2046,6 @@
font-size: 12px;
}
@media (max-width: 850px) {
.admin-form-grid.two-columns,
.admin-assignment-grid,
.admin-permission-groups {
grid-template-columns: 1fr;
}
}
/* Administration visual alignment ---------------------------------------- */
.admin-section-page {
display: grid;
gap: 16px;
width: 100%;
max-width: 100%;
min-width: 0;
}
.admin-section-page > .loading-frame {
width: 100%;
max-width: 100%;
min-width: 0;
}
.admin-page-heading {
margin-bottom: 0;
}
.admin-page-actions {
align-self: start;
}
.admin-table-surface {
width: 100%;
max-width: 100%;
min-width: 0;
overflow: hidden;
}
.admin-table-surface > .data-grid-shell {
width: 100%;
max-width: 100%;
min-width: 0;
box-shadow: var(--shadow-card, 0 2px 10px rgba(0,0,0,.06));
}
.recipient-import-modal {
width: min(1100px, calc(100vw - 32px));
}
@@ -2394,40 +2274,10 @@
min-height: 300px;
}
}
.card-body > .admin-table-surface:only-child {
margin: -22px -24px;
width: calc(100% + 48px);
max-width: inherit;
}
.card-body > .admin-table-surface:only-child > .data-grid-shell {
border: 0;
border-radius: 0;
box-shadow: none;
}
.campaigns-page .card-body > .admin-table-surface:only-child {
margin: 0;
width: 100%;
}
.admin-icon-actions {
display: grid;
grid-auto-flow: column;
grid-auto-columns: 36px;
justify-content: end;
gap: 5px;
width: 100%;
}
.admin-icon-button.btn {
display: inline-grid;
place-items: center;
width: 36px;
height: 36px;
min-width: 36px;
padding: 0;
}
.admin-icon-button.btn svg {
width: 17px;
height: 17px;
}
.admin-audit-grid .data-grid-scroll-region {
max-height: min(68vh, 720px);
}
@@ -2499,21 +2349,6 @@
line-height: 1.45;
}
.admin-scope-list {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.admin-scope-list code {
padding: 5px 8px;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--surface-muted, #f6f7f9);
font-size: 12px;
}
.campaign-access-dialog > .dialog-header,
.campaign-access-dialog > .dialog-footer {
background: var(--surface);
@@ -2523,27 +2358,6 @@
gap: 12px;
}
/* Administration scope separation and ownership safeguards ---------------- */
.admin-overview-section-label {
margin: 2px 0 14px;
color: var(--muted);
font-size: 12px;
font-weight: 800;
letter-spacing: .05em;
text-transform: uppercase;
}
.admin-protection-note {
margin: 4px 0 0;
padding: 10px 12px;
border: 1px solid #d8bd78;
border-radius: var(--radius-sm);
background: #fff8e6;
color: #6f5719;
font-size: 13px;
line-height: 1.45;
}
/* Campaign policy tables. */
.campaign-policy-row {
grid-template-columns: minmax(190px, .9fr) minmax(180px, .7fr) minmax(220px, 1fr);