/* The dialog owns its scroll area; title, tabs and actions remain reachable. */
.rz-dialog.rz-open:has(.customer-upsert-dialog) { width: min(940px, calc(100vw - 2rem)) !important; display: flex; flex-direction: column; }
.rz-dialog:has(.customer-upsert-dialog) > .rz-dialog-content { display: flex; flex-direction: column; min-height: 0; overflow: hidden; padding: 0; }
.rz-dialog .rz-dialog-content > .customer-upsert-dialog { width: 100%; margin: 0; display: flex; flex-direction: column; min-height: 0; max-height: calc(100dvh - 7rem); color: var(--ui-text, #0f172a); background: var(--ui-muted-surface, #f7f8fc); }
.rz-dialog .customer-upsert-dialog .dialog-header { margin: 0; padding: 1.1rem 1.4rem .6rem; }
.customer-editor-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.customer-upsert-dialog .eyebrow { color: var(--ui-muted, #475569); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.customer-upsert-dialog .dialog-title { margin: .25rem 0; font-size: 1.25rem; overflow-wrap: anywhere; }
.customer-upsert-dialog .dialog-copy { margin: .35rem 0 0; font-size: .86rem; }
.customer-editor-symbol { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; color: #1d4ed8; background: #eaf0ff; border-radius: 14px; }
.customer-upsert-dialog .customer-editor-tabs { flex-shrink: 0; margin: 0; padding: .7rem 1.4rem 1rem; border-bottom: 1px solid var(--ui-border, #e2e8f0); }
.customer-upsert-dialog .customer-editor-tabs .weather-tab-button { min-height: 44px; padding: .5rem .9rem; border-radius: 10px; border: 1px solid var(--ui-border, #e2e8f0); background: var(--ui-surface, #fff); color: var(--ui-text, #0f172a); font-weight: 600; }
.customer-upsert-dialog .customer-editor-tabs .weather-tab-button.active { background: #15233b; border-color: #15233b; color: white; }
.customer-upsert-dialog .customer-editor-body { padding: 1.2rem 1.4rem; overflow: auto; overscroll-behavior: contain; min-height: 0; flex: 1 1 auto; }
.customer-editor-panel { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.customer-editor-panel[hidden] { display: none; }
.customer-upsert-dialog .dialog-card { margin: 0; padding: 1rem; display: flex; flex-direction: column; gap: 1rem; border-radius: 14px !important; border-color: var(--ui-border, #e2e8f0); box-shadow: none; }
.customer-editor-section-heading, .customer-contact-heading { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; }
.customer-editor-section-heading h3, .customer-upsert-dialog .dialog-card h3 { font-size: .95rem; margin: 0; font-weight: 700; }
.customer-editor-section-heading p { font-size: .82rem; color: var(--ui-muted, #475569); margin: .3rem 0 0; line-height: 1.5; }
.customer-editor-count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.45rem; min-height: 1.45rem; padding: 0 .35rem; margin-left: .25rem; font-size: .72rem; border-radius: 7px; background: var(--ui-muted-surface, #f1f5f9); color: var(--ui-muted, #475569); font-weight: 600; }
.customer-contact-identity, .customer-access-person { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.customer-contact-avatar { display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: 12px; background: #eef2ff; color: #3730a3; font-size: .8rem; font-weight: 700; }
.customer-contact-heading h4, .customer-access-row h4 { font-size: .9rem; font-weight: 650; margin: 0; overflow-wrap: anywhere; }
.customer-editor-badge { font-size: .7rem; color: var(--ui-muted, #475569); }
.customer-upsert-dialog .customer-editor-field { padding: .6rem .75rem; border: 1px solid var(--ui-border, #94a3b8); border-radius: 0; background: var(--ui-surface, #fff); display: flex; flex-direction: column; gap: .3rem; min-width: 0; flex: 1 1 0; }
.customer-upsert-dialog .customer-editor-field .rz-label { font-size: .76rem; color: var(--ui-muted, #475569); font-weight: 600; }
.customer-upsert-dialog .customer-editor-field .dialog-input { border: 0; border-radius: 0; box-shadow: none; min-height: 44px; background: transparent; padding: .25rem 0; font-size: .9rem; }
.customer-upsert-dialog .customer-editor-field .dialog-textarea { min-height: 90px; }
.customer-upsert-dialog .customer-editor-field .rz-calendar { width: 100%; }
.customer-upsert-dialog .connected-row { display: flex; }
.customer-contact-default { display: flex; align-items: center; gap: .6rem; font-size: .8rem; }
.customer-contact-default .rz-label { margin: 0; }
.customer-editor-details { border-top: 1px solid var(--ui-border, #e2e8f0); padding-top: .25rem; }
.customer-editor-details > summary { min-height: 44px; display: flex; align-items: center; gap: .5rem; cursor: pointer; font-size: .82rem; font-weight: 600; list-style: none; color: var(--ui-muted, #475569); }
.customer-editor-details > summary::before { content: '›'; display: inline-block; font-size: 1.3rem; transition: transform .15s; }
.customer-editor-details[open] > summary::before { transform: rotate(90deg); }
.customer-editor-empty { padding: 1.1rem; border: 1px dashed var(--ui-border, #cbd5e1); border-radius: 12px; color: var(--ui-muted, #475569); background: var(--ui-surface, #fff); line-height: 1.5; font-size: .85rem; }
.customer-editor-empty p { margin: .35rem 0 0; }
.rz-dialog .customer-upsert-dialog > .dialog-footer { flex-shrink: 0; margin: 0; padding: .85rem 1.4rem; border-top: 1px solid var(--ui-border, #e2e8f0); background: var(--ui-surface, #fff); }
.customer-upsert-dialog .customer-delete-button { margin-right: auto; }
.customer-access-panel { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.customer-access-notice { display: flex; align-items: flex-start; gap: .6rem; padding: .75rem .9rem; margin: 0; border: 1px solid #cbdcf8; border-radius: 10px; background: #eff6ff; color: #1e3a8a; font-size: .8rem; line-height: 1.5; }
.customer-access-notice .rzi { font-size: 18px; flex-shrink: 0; margin-top: 2px; }
.customer-access-list, .customer-access-invitations { display: flex; flex-direction: column; gap: .7rem; }
.customer-access-row { display: flex; align-items: center; justify-content: space-between; gap: .85rem; padding: 1rem; border: 1px solid var(--ui-border, #e2e8f0); border-radius: 12px; background: var(--ui-surface, #fff); min-width: 0; flex-wrap: wrap; }
.customer-access-person > div, .customer-invitation-copy { min-width: 0; }
.customer-access-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .45rem; }
.customer-access-status { display: inline-flex; padding: .2rem .5rem; border-radius: 6px; font-size: .7rem; line-height: 1.5; font-weight: 600; }
.customer-access-status.is-active { color: #166534; background: #dcfce7; }
.customer-access-status.is-blocked { color: #9f1239; background: #ffe4e6; }
.customer-access-status.is-allowed { color: #1e40af; background: #dbeafe; }
.customer-access-status.is-neutral { color: #475569; background: #f1f5f9; }
.customer-access-actions { display: flex; gap: .4rem; flex-wrap: wrap; }
.customer-access-actions .rz-button, .customer-access-row > .rz-button { min-height: 44px; font-size: .76rem; }
.customer-access-invitations { margin-top: .3rem; padding-top: 1rem; border-top: 1px solid var(--ui-border, #e2e8f0); }
.customer-invitation-copy p { margin: .45rem 0 0; color: var(--ui-muted, #475569); font-size: .76rem; display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.customer-invitation-archive { margin-top: .4rem; }
.customer-invitation-archive .jans-table { font-size: .76rem; }
@media (max-width: 600px) {
    .rz-dialog .customer-upsert-dialog .dialog-header { padding: .9rem .85rem .5rem; }
    .customer-upsert-dialog .dialog-copy { font-size: .78rem; }
    .customer-upsert-dialog .customer-editor-tabs { padding: .6rem .85rem; gap: .3rem; }
    .customer-upsert-dialog .customer-editor-tabs .weather-tab-button { padding: .45rem .6rem; font-size: .77rem; }
    .customer-upsert-dialog .customer-editor-body { padding: .85rem; }
    .customer-upsert-dialog .connected-row { flex-direction: column; }
    .customer-upsert-dialog .customer-editor-field { width: 100%; flex-basis: auto; }
    .rz-dialog .customer-upsert-dialog > .dialog-footer { padding: .7rem .85rem; gap: .4rem; }
    .customer-upsert-dialog > .dialog-footer .rz-button { padding-left: .6rem; padding-right: .6rem; font-size: .75rem; }
    .customer-upsert-dialog .customer-delete-button .rz-button-text { display: none; }
    .customer-access-actions { width: 100%; }
    .customer-access-actions .rz-button { flex: 1 1 auto; }
    .customer-contact-heading > .rz-button { font-size: .75rem; min-height: 44px; }
    .customer-access-row { padding: .8rem; }
}

.customer-upsert-dialog .connected-row:first-child .customer-editor-field:first-child { border-top-left-radius: 10px; }
.customer-upsert-dialog .connected-row:first-child .customer-editor-field:last-child { border-top-right-radius: 10px; }
.customer-upsert-dialog .connected-row:last-child .customer-editor-field:first-child { border-bottom-left-radius: 10px; }
.customer-upsert-dialog .connected-row:last-child .customer-editor-field:last-child { border-bottom-right-radius: 10px; }
.customer-upsert-dialog .customer-delete-button.rz-button.rz-danger:not(.rz-state-disabled) { background: transparent; border-color: transparent; color: #b91c1c; }
.customer-upsert-dialog .customer-delete-button.rz-button.rz-danger:not(.rz-state-disabled):hover { background: #fff1f2; color: #991b1b; }
@media (max-width: 600px) {
    .customer-upsert-dialog .connected-form .customer-editor-field + .customer-editor-field { margin-left: 0; margin-top: -1px; }
}
