/* Contact editor — sectioned amendment layout */
.contact-editor { max-width: 1180px; width: 100%; }

.cf-section {
    background: var(--surface-white);
    border: 1px solid var(--border);
    border-radius: 14px;
    margin-bottom: 20px;
    overflow: visible;
}
.cf-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 28px;
    background: linear-gradient(
        135deg,
        color-mix(in srgb, var(--electric) 8%, var(--surface-white)),
        color-mix(in srgb, var(--purple, var(--electric)) 5%, var(--surface-white))
    );
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    user-select: none;
}
.cf-section-header h2 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.cf-section-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy-700);
}
.cf-section-icon .r-icon { font-size: 1.125rem; }
.cf-section-toggle .r-icon {
    font-size: 1.125rem;
    color: var(--gray-400);
    transition: transform 0.2s ease;
}
.cf-section.is-collapsed .cf-section-toggle .r-icon {
    transform: rotate(-90deg);
}
.cf-section-icon.identity { background: rgba(40,184,248,0.15); }
.cf-section-icon.methods { background: rgba(57,120,255,0.15); }
.cf-section-icon.addresses { background: rgba(89,213,255,0.15); }
.cf-section-icon.employment { background: rgba(124,92,255,0.15); }
.cf-section-icon.emergency { background: rgba(239,68,68,0.12); }
.cf-section-icon.relationships { background: rgba(212,92,255,0.12); }
.cf-section-icon.dates { background: rgba(16,185,129,0.12); }

.cf-section-count {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--gray-400);
    background: var(--surface);
    padding: 3px 10px;
    border-radius: 20px;
}
.cf-section-toggle {
    color: var(--gray-400);
    font-size: 0.875rem;
    transition: transform 0.2s;
}
.cf-section.is-collapsed .cf-section-toggle { transform: rotate(-90deg); }
.cf-section.is-collapsed .cf-section-body { display: none; }

.cf-section-body { padding: 28px; overflow: visible; }

.cf-entry {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 12px;
    position: relative;
}
.cf-entry:last-child { margin-bottom: 0; }
.cf-entry-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.cf-entry-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--gray-500);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.cf-entry-remove {
    background: none;
    border: none;
    color: var(--gray-400);
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 6px;
    transition: all 0.15s;
}
.cf-entry-remove:hover { background: rgba(239,68,68,0.1); color: #EF4444; }

.cf-add-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px;
    border: 1.5px dashed var(--border);
    border-radius: 10px;
    background: transparent;
    color: var(--electric);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    margin-top: 12px;
    font-family: var(--font);
}
.cf-add-btn:hover {
    border-color: var(--electric);
    background: rgba(40,184,248,0.04);
}

.cf-empty {
    text-align: center;
    padding: 24px;
    color: var(--gray-400);
    font-size: 0.875rem;
}

.cf-form-actions {
    display: flex;
    gap: 12px;
    padding: 24px 0;
    position: sticky;
    bottom: 0;
    background: linear-gradient(to top, var(--surface) 70%, transparent);
    color: var(--navy-900);
}

.cf-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cf-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.cf-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cf-entity-toggle {
    padding-bottom: 4px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--border);
}
.cf-grid-methods {
    display: grid;
    grid-template-columns: 1fr 1fr 1.5fr;
    gap: 16px;
    align-items: start;
}
.cf-method-ext { display: none; }
.cf-entry.is-phone-type .cf-grid-methods {
    grid-template-columns: 1fr 1fr 1.4fr 0.7fr;
}
.cf-entry.is-phone-type .cf-method-ext { display: block; }
.cf-method-error {
    margin-top: 8px;
    font-size: 0.8125rem;
    color: #EF4444;
    font-weight: 500;
}
.cf-entry.has-method-error .cf-method-value .r-control,
.cf-entry.has-method-error [data-method-value] {
    border-color: #EF4444;
}
.r-field.has-error .r-control,
.cf-entry.has-method-error .r-field.cf-method-value .r-control {
    border-color: #EF4444 !important;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
}
@media (max-width: 900px) {
    .cf-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .cf-grid-2, .cf-grid-3, .cf-grid-4, .cf-grid-methods { grid-template-columns: 1fr; }
    .cf-entry.is-phone-type .cf-grid-methods { grid-template-columns: 1fr; }
    .cf-section-header { padding: 15px 16px; }
    .cf-section-body { padding: 16px; }
    .cf-entry { padding: 15px; }
    .cf-form-actions {
        z-index: 12;
        flex-wrap: wrap;
        padding-bottom: max(16px, env(safe-area-inset-bottom));
    }
    .cf-form-actions .r-btn { flex: 1 1 auto; justify-content: center; }
}

/* Address autocomplete */
.cf-address-field,
.r-field.cf-address-field { position: relative; }
.cf-address-dropdown {
    position: fixed;
    background: var(--surface-white);
    border: 1.5px solid var(--electric);
    border-radius: 10px;
    box-shadow: var(--shadow-lg);
    z-index: 10001;
    max-height: 260px;
    overflow-y: auto;
    display: none;
}
.cf-address-dropdown.is-open { display: block; }
.cf-address-option {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    border-bottom: 1px solid var(--border);
    padding: 10px 14px;
    cursor: pointer;
    font-family: var(--font);
}
.cf-address-option:last-child { border-bottom: none; }
.cf-address-option:hover { background: rgba(40, 184, 248, 0.06); }
.cf-address-option-main {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--navy-900);
}
.cf-address-option-sub {
    display: block;
    font-size: 0.75rem;
    color: var(--gray-500);
    margin-top: 2px;
}
.cf-address-loading,
.cf-address-empty {
    padding: 12px 14px;
    font-size: 0.8125rem;
    color: var(--gray-500);
}
.cf-group-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.cf-group-options .r-check {
    min-width: 0;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.cf-group-options .r-check:hover { border-color: rgba(40,184,248,.45); }
.cf-group-options .r-check.is-checked,
.cf-group-options .r-check:has(input:checked) {
    border-color: rgba(40,184,248,.55);
    background: rgba(40,184,248,.065);
    box-shadow: inset 3px 0 0 var(--electric);
}
.cf-group-options .r-check-label {
    min-width: 0;
    color: var(--navy-900);
    font-size: .8rem;
    font-weight: 650;
    overflow-wrap: anywhere;
}
.cf-group-intro { margin: 0 0 16px; }
@media (max-width: 760px) {
    .cf-group-options { grid-template-columns: 1fr; }
}
.contact-profile-list { display:grid; gap:9px; margin:14px 0; }
.contact-profile-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:14px; border:1px solid var(--border); border-radius:11px; background:color-mix(in srgb,var(--electric) 5%,var(--surface-white)); }.contact-profile-intro strong,.contact-profile-intro span{display:block}.contact-profile-intro strong{color:var(--navy-900);font-size:.75rem}.contact-profile-intro span{max-width:620px;margin-top:4px;color:var(--gray-500);font-size:.66rem;line-height:1.5}.contact-profile-presets{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.contact-profile-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.contact-profile-row > .r-icon { color:var(--electric); }
.contact-profile-row input { width:100%; padding:9px 10px; border:1px solid var(--border); border-radius:8px; background:var(--surface-white); color:var(--navy-900); font:inherit; }
.method-profile-assignment { margin-top:12px; padding:11px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.method-profile-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.method-profile-heading small { color:var(--electric); font-size:.6rem; font-weight:750; }
.method-profile-assignment > p { margin:4px 0 0; color:var(--gray-500); font-size:.62rem; line-height:1.45; }
.method-profile-options { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
.method-profile-option { padding:6px 9px; border:1px solid var(--border); border-radius:999px; background:var(--surface-white); color:var(--gray-600); font:inherit; font-size:.64rem; font-weight:700; cursor:pointer; }
.method-profile-option:hover,.method-profile-option.is-selected { border-color:color-mix(in srgb,var(--electric) 55%,var(--border)); background:color-mix(in srgb,var(--electric) 10%,var(--surface-white)); color:var(--electric); }
.contact-profile-badge { display:inline-flex; padding:5px 8px; border-radius:999px; background:color-mix(in srgb,var(--electric) 10%,var(--surface-white)); color:var(--electric); font-size:.63rem; font-weight:750; }
@media(max-width:700px){.contact-profile-intro{flex-direction:column}.contact-profile-presets{justify-content:flex-start}}@media(max-width:600px){.contact-profile-row{grid-template-columns:auto 1fr}.contact-profile-row .r-btn{grid-column:2;width:100%;justify-content:center}}
