/* Shared operating-interface spacing. Loaded after module styles. */
:root{--app-space-1:4px;--app-space-2:8px;--app-space-3:12px;--app-space-4:16px;--app-space-6:24px;--app-space-8:32px;--app-space-12:48px}
:is(.content,dialog) :where(h1,h2,h3,h4){line-height:1.25;text-wrap:pretty}
:is(.content,dialog) :where(p){line-height:1.65}
:is(.content,dialog) :is(.panel-body,.workflow-page,.record-editor-page)>:first-child{margin-block-start:0}
:is(.content,dialog) :is(.panel-body,.workflow-page,.record-editor-page)>:last-child{margin-block-end:0}
:is(.content,dialog) :is(.panel-body,.workflow-page,.record-editor-page)>:is(.btn,button,.actions,.form-actions)+:is(h1,h2,h3,header,form,fieldset,.form-grid){margin-block-start:var(--app-space-6)}
:is(.content,dialog)>:is(.actions,.btn,button)+:is(.panel,.page-head,section,form){margin-block-start:var(--app-space-6)}
:is(.content,dialog) :is(.panel-body,.workflow-page,.record-editor-page)>:is(h1,h2,h3){margin-block-end:var(--app-space-3)}
:is(.content,dialog) :is(.panel-body,.workflow-page,.record-editor-page)>p+:is(form,fieldset,.form-grid,.actions,.table-wrap,details){margin-block-start:var(--app-space-6)}
:is(.content,dialog) :is(.panel-body,.workflow-page,.record-editor-page)>:is(form,fieldset,.table-wrap,details)+:is(h2,h3,form,fieldset,.actions){margin-block-start:var(--app-space-8)}
:is(.content,dialog) :is(.actions,.form-actions,.panel-head,.collection-toolbar){gap:var(--app-space-3) var(--app-space-4)}
:is(.content,dialog) .form-grid{row-gap:var(--app-space-6);column-gap:var(--app-space-6)}
:is(.content,dialog) :is(.form-grid,.form-stack)>label{display:flex;flex-direction:column;gap:var(--app-space-2);margin-block:0;min-width:0}
:is(.content,dialog) :is(.form-grid,.form-stack)>label:has(>input[type=checkbox]),:is(.content,dialog) :is(.form-grid,.form-stack)>label:has(>input[type=radio]){flex-direction:row;align-items:center;gap:var(--app-space-3)}
:is(.content,dialog) .form-actions{margin-block-start:var(--app-space-4);padding-block-start:var(--app-space-4)}
:is(.content,dialog) :is(.district-office-editor,.billing-period-editor,.record-editor-page)>.btn:first-child{margin-block-end:var(--app-space-6)}
:is(.content,dialog) :is(.district-office-editor,.billing-period-editor,.record-editor-page)>.btn:first-child+:is(h1,h2,h3){margin-block-start:0}
:is(.content,dialog) fieldset{min-width:0}
:is(.content,dialog) fieldset>legend{padding-inline:var(--app-space-2);margin-block-end:var(--app-space-2);line-height:1.4}
:is(.content,dialog) :is(.honor-fields,.membership-flags-options){display:grid;gap:var(--app-space-4)}
:is(.content,dialog) .honor-fields{padding:var(--app-space-6)}
:is(.content,dialog) .honor-fields label{margin:0;line-height:1.5}
:is(.content,dialog) .honor-fields label:has(textarea){display:grid;gap:var(--app-space-2);margin-block-start:var(--app-space-2)}
:is(.content,dialog) .honor-fields input[type=checkbox]{min-height:20px;width:20px;height:20px;flex:0 0 20px;margin:0}
:is(.content,dialog) .district-office-options{gap:var(--app-space-3);padding:var(--app-space-1)}
:is(.content,dialog) .district-reassignment{margin-block-start:var(--app-space-6);padding-block-start:var(--app-space-4);border-top:1px solid var(--line)}
:is(.content,dialog) .district-reassignment summary{cursor:pointer;font-weight:600;padding-block:var(--app-space-2)}
:is(.content,dialog) .district-reassignment[open]>label{display:grid;gap:var(--app-space-2);margin-block:var(--app-space-4)}
:is(.content,dialog) :is(.panel,.profile-sheet)+:is(.panel,.profile-sheet){margin-block-start:var(--app-space-6)}
@media(max-width:720px){:is(.content,dialog) .form-grid{gap:20px 16px}:is(.content,dialog) .honor-fields{padding:20px 16px}:is(.content,dialog) :is(.district-office-editor,.billing-period-editor,.record-editor-page)>.btn:first-child{margin-block-end:20px}}
@media print{:root{--app-space-6:16px;--app-space-8:24px}.district-reassignment{display:none}}

/* Keep unpaid-tax notices distinct when their navigation row is selected. */
.nav-item.active .ph-tax-orb{background:#10284f}

/* Separate assessment editing, optional penalties and save feedback. */
:is(.content,dialog) .billing-period-editor>#billing-add-item{margin-block-start:16px}
:is(.content,dialog) .billing-period-editor>details{margin-block:24px}
:is(.content,dialog) .billing-period-editor>details>summary{padding-block:8px;line-height:1.5;cursor:pointer}
:is(.content,dialog) .billing-period-editor>.form-status{margin-block:24px 0}
:is(.content,dialog) .billing-period-editor>:is(.form-status,.form-error):empty{display:none}
:is(.content,dialog) .billing-period-editor>.form-actions{margin-block-start:24px;padding-block-start:0}

/* Fee removal is an action, visually distinct from adjacent fields. */
:is(.content,dialog) .billing-fee-row [data-billing-remove]{width:auto;min-width:96px;min-height:44px;justify-self:start;align-self:end;padding:10px 16px;background:#b42332;color:#fff;border-color:#b42332;font-weight:600;cursor:pointer}
:is(.content,dialog) .billing-fee-row [data-billing-remove]:hover{background:#8f1c28;border-color:#8f1c28;color:#fff}
:is(.content,dialog) .billing-fee-row [data-billing-remove]:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

.assessment-line-items{margin-block:32px}.assessment-line-item{margin-block:20px;padding:20px;border:1px solid var(--line);border-radius:5px}.assessment-line-item>.actions{margin-top:16px}.assessment-line-items>#assessment-add{margin-top:16px}.assessment-line-item [data-assessment-remove]{background:#b42332;color:#fff;border-color:#b42332;width:auto;min-height:44px}.assessment-line-item [data-assessment-remove]:hover{background:#8f1c28}.assessment-line-item [data-action=annual-issue-assessment]:disabled{opacity:.5;cursor:not-allowed}

.account-status{display:inline-flex;align-items:center;padding:5px 10px;border-radius:5px;font-size:.875em;font-weight:600;line-height:1.4;white-space:nowrap}
.account-status--approved{background:#e8f5ec;color:#21633b}
.account-status--pending{background:#fff1df;color:#91510e}
.account-status--denied{background:#fdebec;color:#a12836}
.account-status--neutral{background:#edf0f5;color:#43516a}
