.directory-layout { display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(20rem, 1.5fr); gap: 1rem; align-items: start; }
.directory-layout > * { min-width: 0; }
.directory-results { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.directory-open { display: flex; flex-direction: column; align-items: flex-start; width: 100%; text-align: left; background: #fff; color: var(--ink); border-color: var(--line); }
.directory-open span { display: block; overflow-wrap: anywhere; }
.directory-open .directory-meta { font-size: .85rem; font-weight: 400; margin-top: .3rem; }
.directory-profile { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr); gap: .4rem .8rem; }
.directory-profile dt { font-weight: 600; }
.directory-profile dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.directory-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.directory-editor details { margin: 1rem 0; padding-top: .5rem; border-top: 1px solid var(--line); }
.directory-editor summary { cursor: pointer; min-height: 44px; font-weight: 600; }
.directory-editor fieldset { min-width: 0; border: 1px solid var(--line); border-radius: .4rem; margin: 1rem 0; }
.directory-editor input, .directory-editor textarea { max-width: 100%; }
.directory-duplicates { background: var(--warn-bg); border-color: var(--warn-line); }
.directory-duplicates li { margin: .5rem 0; overflow-wrap: anywhere; }
@media (max-width: 1100px) { .directory-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 500px) {
  .directory-fields { grid-template-columns: minmax(0, 1fr); }
  .directory-profile { grid-template-columns: minmax(0, 1fr); }
  .directory-profile dd { margin-bottom: .5rem; }
}
.phm-profile { margin-top: 1rem; padding: .75rem; border: 1px solid var(--line); border-radius: .5rem; }
.phm-profile [data-phm-controls] { display: grid; gap: .5rem; }
.phm-profile select { width: 100%; }
.phm-profile dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .4rem; }
.phm-profile dd { margin: 0; overflow-wrap: anywhere; }
.elajh-profile { margin-top: 1rem; padding: .75rem; border: 1px solid var(--line); border-radius: .5rem; }
.elajh-profile [data-elajh-controls] { display: grid; gap: .5rem; }
.elajh-profile select { width: 100%; }
.elajh-profile dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .4rem; }
.elajh-profile dd { margin: 0; overflow-wrap: anywhere; }

/* The directory keeps its own form and result layout; shared navigation remains
 * permission-filtered by the workspace shell. */
.directory-page { max-width: none; gap: .5rem; color: #071445; }
.directory-page > .view-header { align-items: center; margin: 0 1rem; padding: 0 .25rem; }
.directory-page > .directory-layout { margin: 0 1rem 1rem; }
.directory-page .view-header h1 { font: 700 2.25rem/1.12 "Times New Roman", serif; color: #0057b8; }
.directory-page .view-intro { margin-top: .35rem; color: #071445; font-size: 1.1rem; }
.directory-page .directory-add,
.directory-page .directory-form-actions > button:first-child { background: linear-gradient(#9c30d5, #7316ac); color: #fff; border: 1px solid #7e20b7; box-shadow: none; }
.directory-page .directory-add { display: inline-flex; gap: .6rem; align-items: center; justify-content: center; min-width: 11rem; border-radius: .8rem; }
.directory-add > span { font-size: 1.65rem; line-height: 1; font-weight: 400; }
.directory-layout { grid-template-columns: minmax(17rem, 21.5rem) minmax(0, 1fr); gap: .9rem; align-items: stretch; }
.directory-page .pane { background: #fffcf7; border: 1px solid #e4dfd7; border-radius: 1rem; box-shadow: 0 1px 2px #15284e12; }
.directory-finder { padding: 0; min-height: 46rem; }
.directory-search-form { padding: .8rem .85rem .7rem; border-bottom: 1px solid #e7e4df; }
.directory-page .field { margin: .25rem 0 .5rem; font-size: .875rem; }
.directory-page .field > label { display: block; margin: 0 0 .25rem; }
.directory-page .field input,
.directory-page .field select,
.directory-page .field textarea { width: 100%; min-height: 2rem; border: 1px solid #9caec6; border-radius: .45rem; padding: .3rem .65rem; background: #fffdfa; color: #071445; font: inherit; font-weight: 400; box-sizing: border-box; }
.directory-page .field textarea { min-height: 6rem; }
.directory-page .field-help { color: #526888; font-size: .76rem; line-height: 1.35; }
.directory-required-marker { color: #b42318; }
.directory-page .directory-required > label { display: inline-block; }
.directory-query { position: relative; }
.directory-query > .field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.directory-query > .field input { padding-left: 2.65rem; }
.directory-page .directory-search-submit { position: absolute; top: 0; left: 0; width: 2.5rem; min-height: 2rem; padding: .3rem .5rem; background: transparent; border: 0; color: #0056d9; }
.directory-advanced summary { display: flex; gap: .5rem; align-items: center; padding: .2rem 0; cursor: pointer; color: #0056d9; font-size: .95rem; min-height: 2rem; }
.directory-advanced summary::marker { content: ""; }
.directory-search-kinds { display: flex; flex-wrap: wrap; gap: .3rem; padding-top: .4rem; }
.directory-page .directory-search-kinds button { min-height: 2rem; padding: .25rem .45rem; font-size: .8rem; }
.directory-list-heading { display: flex; align-items: center; gap: .9rem; padding: .7rem .85rem; position: relative; }
.directory-page .directory-list-heading h2 { margin: 0; font: 700 1.35rem "Times New Roman", serif; color: #0057b8; }
.directory-result-count { font-size: .8rem; }
.directory-list-options { margin-left: auto; }
.directory-list-options > summary { list-style: none; cursor: pointer; display: flex; justify-content: center; align-items: center; min-height: 2rem; min-width: 2rem; }
.directory-list-options > summary::-webkit-details-marker { display: none; }
.directory-list-options > .field { position: absolute; right: .5rem; top: 2.5rem; z-index: 4; padding: .75rem; width: 14rem; background: #fffdf8; box-shadow: 0 4px 14px #10275b26; border: 1px solid #c9d1df; border-radius: .5rem; }
.directory-finder > .msg { margin: .75rem; }
.directory-finder .empty-state { margin: .5rem .85rem 1rem; font-size: .9rem; }
.directory-results { gap: 0; padding: 0 .45rem .5rem; }
.directory-results > li { border-bottom: 1px solid #e7e4df; }
.directory-page .directory-open { position: relative; flex-direction: row; gap: .65rem; align-items: center; border: 0; border-radius: .55rem; padding: .6rem .65rem; min-height: 4rem; background: transparent; color: #071445; font-weight: 400; }
.directory-page .directory-open:hover { background: #f0f6ff; }
.directory-page .directory-open[aria-current="true"] { background: #e2efff; box-shadow: inset 4px 0 #0067ff; }
.directory-avatar { flex: 0 0 2.65rem; width: 2.65rem; height: 2.65rem; border-radius: .65rem; display: inline-flex; align-items: center; justify-content: center; background: #ffecd5; color: #8b5000; font-weight: 700; font-size: 1.15rem; }
.directory-row-content { flex: 1; min-width: 0; }
.directory-open .directory-row-heading { display: flex; align-items: center; gap: .3rem; justify-content: space-between; }
.directory-row-heading strong { font-size: 1rem; }
.directory-open .directory-status { display: inline-flex; flex: 0 0 auto; border-radius: 1rem; padding: .15rem .6rem; font-size: .75rem; background: #e9edf3; color: #273d56; white-space: nowrap; }
.directory-open .directory-status-active { background: #dbf6d3; color: #245d19; }
.directory-open .directory-status-follow_up { background: #ebdcff; color: #3c176d; }
.directory-open .directory-status-unverified { background: #ffecd4; color: #794508; }
.directory-open .directory-status-duplicate { background: #ffe0e0; color: #862727; }
.directory-open .directory-meta { font-size: .77rem; margin-top: .2rem; color: #143c8b; line-height: 1.35; }
.directory-results + button { margin: .5rem .85rem 1rem; }
.directory-detail { padding: .8rem; container-type: inline-size; }
.directory-contact-header { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; padding: 0 0 .65rem; }
.directory-contact-title { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; flex: 1; min-width: 10rem; }
.directory-page .directory-contact-title h2 { font: 700 1.9rem/1.1 "Times New Roman", serif; margin: 0; overflow-wrap: anywhere; }
.directory-contact-kind { font-size: .8rem; font-weight: 700; background: #d9edff; color: #063876; padding: .2rem .65rem; border-radius: 1rem; white-space: nowrap; }
.directory-contact-actions { gap: .55rem; }
.directory-page .directory-contact-actions button { display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; min-height: 2.1rem; padding: .3rem .65rem; }
.directory-page .secondary { color: #0056d9; background: #fffdfa; border: 1px solid #0067ff; }
.directory-page .quiet { color: #0056d9; background: transparent; border: 1px solid transparent; box-shadow: none; }
.directory-page button:disabled { opacity: .55; cursor: not-allowed; }
.directory-editor-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; }
.directory-editor-column { min-width: 0; }
.directory-editor-column + .directory-editor-column { border-left: 1px solid #e7e4df; padding-left: 1.5rem; }
.directory-form-section { margin: 0; padding: .35rem .35rem .4rem; min-width: 0; }
.directory-form-section + .directory-form-section { border-top: 1px solid #dedbd5; padding-top: .6rem; }
.directory-page .directory-form-section h3 { margin: 0 0 .35rem; font: 700 1.35rem "Times New Roman", serif; color: #0057b8; }
.directory-fields { gap: 0 1rem; }
.directory-page .directory-preferences > .field:first-of-type { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); align-items: center; gap: .5rem; }
.directory-page .directory-preferences > .field:first-of-type > label { margin: 0; }
.directory-page .directory-preferred-channels { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; border: 0; padding: 0; margin: .35rem 0; }
.directory-preferred-channels legend { float: left; font-size: .875rem; font-weight: 600; margin: 0; padding: .4rem 0 0; width: 7.5rem; }
.directory-page .directory-preferred-channels .field { margin: 0; }
.directory-page .check-label { min-height: 2rem; margin: 0; font-size: .875rem; font-weight: 400; }
.directory-page .check-label input { width: 1.15rem; height: 1.15rem; min-height: 0; flex: 0 0 1.15rem; padding: 0; accent-color: #0067ff; }
.directory-field-heading { font-size: .875rem; font-weight: 600; }
.directory-contact-window { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); align-items: center; gap: .5rem; }
.directory-contact-window .directory-fields { gap: .6rem; }
.directory-contact-window .field > label { font-size: .75rem; }
.directory-page .directory-preferences > .field,
.directory-page .directory-contact-window .field { margin-top: .15rem; margin-bottom: .3rem; }
.directory-page .directory-tags { margin-top: 0; margin-bottom: .3rem; }
.directory-page .directory-add-line { padding: .2rem .25rem; min-height: 2rem; font-size: .9rem; }
.directory-tags > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.directory-tag-entry { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; border: 1px solid #9caec6; border-radius: .45rem; padding: .2rem .3rem; }
.directory-tag-chips { display: contents; }
.directory-page .directory-tag-entry > input { width: auto; flex: 1 1 9rem; min-width: 0; border: 0; background: transparent; padding: .1rem .25rem; }
.directory-tag { display: inline-flex; align-items: center; gap: .2rem; background: #d7eaff; color: #093375; padding: .15rem .25rem .15rem .65rem; border-radius: 1rem; max-width: 100%; overflow-wrap: anywhere; font-size: .8rem; }
.directory-tag:nth-child(even) { background: #e9d9ff; color: #39136b; }
.directory-page .directory-tag button { border: 0; box-shadow: none; background: transparent; color: inherit; min-height: 1.5rem; min-width: 1.5rem; padding: 0; line-height: 1; font-size: 1.15rem; }
.directory-editor .directory-more details { border: 1px solid #c9d1df; border-radius: .6rem; padding: 0; margin: .3rem 0; }
.directory-more summary { display: flex; align-items: center; gap: .75rem; box-sizing: border-box; min-height: 34px; padding: .25rem .65rem; font-size: .9rem; font-weight: 400; }
.directory-more summary::after { content: "⌄"; margin-left: auto; font-size: 1.1rem; }
.directory-more summary::-webkit-details-marker { display: none; }
.directory-more details[open] > summary::after { content: "⌃"; }
.directory-more details > .directory-fields,
.directory-more details > .field,
.directory-more details > p { margin: .5rem .65rem; }
.directory-page .directory-form-actions { padding-top: .6rem; border-top: 1px solid #dedbd5; margin: .5rem 0 0; }
.directory-form-actions button { min-height: 2.25rem; padding: .4rem 1rem; }
.directory-form-actions .quiet { margin-left: .5rem; }
.directory-page .phm-profile,
.directory-page .elajh-profile { font-size: .9rem; }
@container (max-width: 660px) {
  .directory-editor-columns { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .directory-editor-column + .directory-editor-column { border-left: 0; border-top: 1px solid #dedbd5; padding: .5rem 0 0; }
}
@media (max-width: 1100px) {
  .directory-layout { grid-template-columns: minmax(0, 1fr); }
  .directory-finder { min-height: 0; }
  .directory-results { max-height: 23rem; overflow-y: auto; }
}
@media (max-width: 600px) {
  .directory-page .view-header h1 { font-size: 1.85rem; }
  .directory-page > .view-header { gap: .75rem; }
  .directory-page .directory-add { min-width: 0; }
  .directory-contact-header { align-items: flex-start; }
  .directory-contact-actions { width: 100%; }
  .directory-contact-header > medimessage-info { margin-left: auto; }
  .directory-page .directory-contact-title h2 { font-size: 1.65rem; }
  .directory-preferences > .field:first-of-type,
  .directory-contact-window { grid-template-columns: minmax(0, 1fr); }
}
