.contact-editor-open { overflow: hidden; }
.contact-dialog { width: min(720px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; margin: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); color: var(--ink); }
.contact-dialog[open] { display: flex; flex-direction: column; }
.contact-dialog::backdrop { background: var(--overlay-backdrop); }
.contact-editor-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 24px 20px 20px 28px; flex-shrink: 0; }
.contact-editor-heading h2 { margin: 2px 0 10px; font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
.contact-editor-heading p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
#contact-editor-form { display: flex; flex-direction: column; min-height: 0; }
.contact-editor-body { overflow-y: auto; min-height: 0; padding: 0 28px 24px; overscroll-behavior: contain; }
.contact-corporate { display: grid; gap: 6px; padding: 16px 18px; margin-bottom: 20px; border-radius: 8px; background: var(--brand-neutral-100); overflow-wrap: anywhere; }
.contact-corporate span { font-size: 12px; color: var(--muted); }
.contact-corporate strong { font-size: 14px; font-weight: 600; }
.contact-corporate small { color: var(--muted); font-size: 12px; line-height: 1.6; }
.contact-editor-row { min-width: 0; margin: 0 0 18px; padding: 0 0 18px; border: 0; border-bottom: 1px solid var(--line); }
.contact-row-main { display: grid; grid-template-columns: 176px minmax(0,1fr) 44px; align-items: end; gap: 12px; }
.contact-editor-row label { display: grid; gap: 8px; min-width: 0; font-size: 12px; color: var(--muted); }
.contact-editor-row input, .contact-editor-row .select-menu-trigger { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--brand-neutral-600); border-radius: 6px; color: var(--ink); background: var(--brand-neutral-0); font: inherit; font-size: 14px; }
.contact-editor-row input[aria-invalid=true] { border-color: var(--ui-error); }
.contact-remove { width: 44px; height: 44px; color: var(--muted); }
.contact-remove svg { width: 18px; height: 18px; }
.contact-custom-label { margin-top: 12px; }
.contact-add { min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: var(--brand-blue-700); font-size: 14px; font-weight: 600; text-align: left; }
.contact-add:disabled { color: var(--muted); cursor: default; }
.contact-privacy-note, .contact-demo { margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.contact-error { margin: 12px 0 0; color: var(--ui-error); font-size: 13px; line-height: 1.6; }
.contact-error:empty { display: none; }
.contact-editor-footer { display: flex; flex-shrink: 0; justify-content: flex-end; gap: 12px; padding: 16px 28px; border-top: 1px solid var(--line); }
.contact-editor-footer button { min-height: 44px; padding: 10px 20px; border: 1px solid var(--brand-neutral-600); border-radius: 8px; color: var(--ink); background: var(--brand-neutral-0); font-size: 14px; font-weight: 600; }
.contact-editor-footer .contact-save { color: var(--brand-neutral-0); background: var(--ink); border-color: var(--ink); }
@media (max-width: 600px) {
  .contact-editor-heading { padding: 20px 12px 18px 20px; gap: 8px; }
  .contact-editor-heading h2 { font-size: 21px; }
  .contact-editor-body { padding: 0 20px 20px; }
  .contact-row-main { grid-template-columns: minmax(0,1fr) 44px; gap: 12px 8px; }
  .contact-row-main > label:first-child { grid-row: 1; grid-column: 1; }
  .contact-value { grid-row: 2; grid-column: 1 / -1; }
  .contact-remove { grid-column: 2; grid-row: 1; }
  .contact-editor-footer { padding: 14px 20px; }
  .contact-editor-footer button { flex: 1; padding-inline: 12px; }
}

.select-menu-trigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; }
.select-menu-trigger svg { width: 16px; height: 16px; flex-shrink: 0; }
.select-menu-trigger[aria-expanded=true] { border-color: var(--brand-blue-500); }
.select-menu-options { position: fixed; z-index: 20; overflow-y: auto; padding: 4px; border: 1px solid var(--brand-neutral-600); border-radius: 8px; background: var(--brand-neutral-0); color: var(--ink); overscroll-behavior: contain; }
.select-menu-options[hidden] { display: none; }
.select-menu-options [role=option] { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 4px; font-size: 14px; cursor: pointer; }
.select-menu-options [role=option]:hover, .select-menu-options [role=option].is-active { background: var(--brand-blue-50); }
.select-menu-options [aria-selected=true] { font-weight: 600; }
.select-menu-check { display: inline-flex; width: 16px; flex-shrink: 0; color: var(--brand-blue-500); }
.select-menu-check svg { width: 16px; height: 16px; }

.select-menu-trigger span, .select-menu-options [role=option] span:first-child { white-space: nowrap; }

.contact-row-main.contact-row-single { grid-template-columns: minmax(0,1fr) 44px; }
.contact-row-single .contact-value { grid-column: 1; grid-row: 1; }
.contact-row-single .contact-remove { grid-column: 2; grid-row: 1; }
.contact-fixed-phones { display: grid; gap: 16px; margin: 0 0 6px; }
.contact-fixed-phones div { display: grid; gap: 6px; }
.contact-fixed-phones dt { font-size: 12px; color: var(--muted); }
.contact-fixed-phones dd { margin: 0; font-size: 14px; font-weight: 600; }
.contact-editor-row input:focus, .contact-editor-row .select-menu-trigger:focus-visible { outline: none; border-color: var(--brand-blue-500); border-width: 2px; padding: 9px 11px; }
.contact-editor-row input[aria-invalid=true]:focus { border-color: var(--ui-error); }
