@layer module-structure {
.persistent-directory{min-width:0}.persistent-directory .page-heading{align-items:flex-end}.persistent-directory .page-heading h1{font-size:var(--text-page)}
.directory-summary{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-12);font-size:var(--text-meta);color:var(--muted);margin:calc(-1 * var(--space-8)) 0 var(--space-20)}.directory-summary>span{display:flex;align-items:center;gap:var(--space-8)}.directory-summary i{font-style:normal;margin:0 var(--space-4)}.saved-indicator{color:#278264}.saved-indicator svg{width:15px;height:15px}.pending-indicator{display:inline-flex;align-items:center;gap:var(--space-4);font-size:var(--text-meta);color:#94702c;background:#bc8e2210;border:1px solid #bc8e221b;padding:var(--space-4) var(--space-8);border-radius:var(--radius-control)}.pending-indicator svg{width:14px;height:14px}.directory-summary .pending-indicator{margin-left:auto}.directory-result-count{font-size:var(--text-meta);color:var(--muted);margin:var(--space-12) var(--space-4)}.persistent-toolbar .view-switch button{font-size:var(--text-meta)}.view-switch button>span{margin-left:var(--space-4);color:var(--muted);font-size:var(--text-meta)}.saved-card{min-height:112px;padding:var(--space-20)}.saved-card .directory-info{gap:var(--space-4)}.saved-card .directory-info strong{font-size:var(--text-body)}.saved-card .directory-info span{font-size:var(--text-meta)}.saved-card .directory-avatar{width:40px;height:40px;font-size:var(--text-meta);border-radius:var(--radius-card)}.directory-card-end{display:flex;align-items:center;gap:var(--space-12)}.directory-card-end>svg{width:16px}.directory-status{display:inline-flex;align-items:center;gap:var(--space-4);font-size:var(--text-meta);white-space:nowrap}.directory-status i{width:5px;height:5px;border-radius:50%;background:currentColor}.directory-status.is-active{color:#288867}.directory-status.is-inactive{color:var(--muted)}
.directory-loading{min-height:340px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-16);color:var(--muted);font-size:var(--text-body)}.loading-ring{width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:directory-spin 1s linear infinite}@keyframes directory-spin{to{transform:rotate(360deg)}}
.profile-breadcrumb{display:flex;align-items:center;gap:var(--space-12);font-size:var(--text-meta);color:var(--muted);margin-bottom:var(--space-20)}.profile-breadcrumb button{display:flex;align-items:center;gap:var(--space-4);padding:0;font-weight:600}.profile-breadcrumb button:hover{color:var(--accent)}.profile-breadcrumb svg{width:13px;height:13px}.profile-hero{display:flex;align-items:center;gap:var(--space-20);padding:var(--space-24)}.profile-avatar{display:flex;align-items:center;justify-content:center;width:72px;height:72px;background:var(--soft);border:1px solid var(--line);border-radius:var(--radius-dialog);color:var(--accent);font-size:var(--text-stat);font-weight:650;flex-shrink:0}.profile-heading{min-width:0;flex:1}.profile-heading h1{font-size:var(--text-page);letter-spacing:-.7px;line-height:1.25;overflow-wrap:anywhere;margin:var(--space-8) 0 var(--space-12)}.profile-heading .eyebrow{font-size:var(--text-meta);margin:0}.profile-subtitle{display:flex;align-items:center;gap:var(--space-16);font-size:var(--text-meta);color:var(--muted)}.profile-subtitle>.directory-status{font-size:var(--text-meta)}.profile-hero .heading-actions{margin-left:auto}.profile-hero .button,.profile-hero .primary{font-size:var(--text-meta);padding:var(--space-8) var(--space-12)}.profile-tabs{display:flex;align-items:center;gap:var(--space-24);border-bottom:1px solid var(--line);margin:var(--space-12) 0 var(--space-20);overflow-x:auto}.profile-tabs button{padding:var(--space-16) var(--space-4) var(--space-16);border-bottom:2px solid transparent;font-size:var(--text-body);font-weight:600;color:var(--muted);display:flex;align-items:center;gap:var(--space-8);white-space:nowrap}.profile-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.profile-tabs button:focus-visible{outline-offset:-3px}.pending-dot{width:5px;height:5px;background:#b9903e;border-radius:50%}.profile-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-20)}.profile-main,.profile-side{display:flex;flex-direction:column;gap:var(--space-20);min-width:0}.profile-panel>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-20) var(--space-24);border-bottom:1px solid var(--line)}.profile-panel>header h2{font-size:var(--text-card);font-weight:650;letter-spacing:-.1px}.profile-panel>header p{font-size:var(--text-meta);color:var(--muted);margin:var(--space-4) 0 0;line-height:1.7}.profile-panel>header svg{width:16px;color:var(--muted)}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-24) var(--space-20);margin:0;padding:var(--space-24) var(--space-24)}.profile-field{display:flex;align-items:flex-start;gap:var(--space-12);min-width:0}.profile-field>span{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-control);background:var(--soft);color:var(--muted);flex-shrink:0}.profile-field>span svg{width:15px;height:15px}.profile-field>div{min-width:0}.profile-field dt{color:var(--muted);font-size:var(--text-meta);font-weight:500;margin-bottom:var(--space-4)}.profile-field dd{font-size:var(--text-body);margin:0;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.profile-field dd a{color:var(--text);text-decoration-color:var(--line);text-underline-offset:4px}.profile-field dd a:hover{color:var(--accent)}.not-provided{color:var(--muted);font-size:var(--text-meta)}.identity-fields{margin:0;padding:var(--space-20) var(--space-24);display:flex;flex-direction:column;gap:var(--space-20)}.profile-notes{white-space:pre-wrap;overflow-wrap:anywhere;padding:var(--space-24);margin:0;font-size:var(--text-body);line-height:1.8;min-height:110px}.profile-notes.not-provided{font-size:var(--text-meta)}.related-contacts{padding:0 var(--space-20)}.related-contacts .directory-card{padding:var(--space-16) 0;min-height:95px;border:0;border-radius:0;border-bottom:1px solid var(--line);box-shadow:none}.related-contacts .directory-card:last-child{border-bottom:0}.related-contacts .directory-info strong{font-size:var(--text-body)}.related-contacts .directory-avatar{width:34px;height:34px;font-size:var(--text-meta)}.related-contacts .directory-card-end .directory-status{display:none}.company-relationship{padding:var(--space-24)}.company-relationship button{display:flex;align-items:center;gap:var(--space-12);width:100%;text-align:left}.company-relationship button>svg:first-child{color:var(--accent)}.company-relationship button>svg:last-child{margin-left:auto;width:14px}.company-relationship strong{font-size:var(--text-body);display:block}.company-relationship small{font-size:var(--text-meta);color:var(--muted);display:block;margin-top:var(--space-4)}.profile-empty{padding:var(--space-24) var(--space-24);font-size:var(--text-meta);line-height:1.8;color:var(--muted);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8)}.profile-empty strong{color:var(--text);font-size:var(--text-body)}.profile-empty p{margin:0}.profile-empty>svg{margin-bottom:var(--space-8);color:var(--muted)}.profile-pending-note{display:flex;align-items:flex-start;gap:var(--space-8);font-size:var(--text-meta);color:var(--muted);padding:0 var(--space-4);line-height:1.8}.profile-pending-note svg{width:16px;color:#a58644;margin-top:var(--space-4)}.profile-pending-note p{margin:0}.connections-grid{display:grid;gap:var(--space-20)}.connection-explainer{margin:var(--space-20) var(--space-24);padding:var(--space-12) var(--space-16);background:var(--soft);border:1px solid var(--line);border-radius:var(--radius-control);display:flex;gap:var(--space-12);align-items:flex-start;font-size:var(--text-meta);color:var(--muted);line-height:1.8}.connection-explainer svg{width:17px;color:#a58644;margin-top:var(--space-4)}.connection-explainer p{margin:0}.pending-links-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--text-meta);min-width:690px}.pending-links-table th{padding:var(--space-12) var(--space-24);font-size:var(--text-meta);letter-spacing:.2px;text-transform:uppercase;background:var(--soft);color:var(--muted);border-bottom:1px solid var(--line)}.pending-links-table td{padding:var(--space-12) var(--space-24);border-bottom:1px solid var(--line);vertical-align:top}.pending-links-table tr:last-child td{border-bottom:0}.pending-links-table code{font-size:var(--text-meta);white-space:nowrap;color:var(--muted)}.raw-fields{padding:0 var(--space-24);margin:0}.raw-fields>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--space-20);padding:var(--space-16) 0;border-bottom:1px solid var(--line);font-size:var(--text-meta)}.raw-fields>div:last-child{border-bottom:0}.raw-fields dt{color:var(--muted)}.raw-fields dd{white-space:pre-wrap;margin:0;overflow-wrap:anywhere;line-height:1.7}.raw-empty{color:var(--muted);font-style:italic}.profile-back{margin:0 var(--space-24) var(--space-24)}.saved-form-note{display:flex;gap:var(--space-8);align-items:flex-start;background:#23856508;border:1px solid #23856520;color:#39735f;border-radius:var(--radius-control);padding:var(--space-12) var(--space-12);font-size:var(--text-meta);line-height:1.7;margin-bottom:var(--space-20)}.saved-form-note svg{width:16px;margin-top:var(--space-4)}.saved-form-note p{margin:0}#directory-form .form-help{margin-bottom:var(--space-20)}.form-error{color:var(--accent);background:#cc35460b;padding:var(--space-12) var(--space-12);border-radius:var(--radius-control);line-height:1.8;font-size:var(--text-body);margin:var(--space-20) 0 0}html[data-theme=dark] .saved-form-note,html[data-theme=dark] .saved-indicator,html[data-theme=dark] .directory-status.is-active{color:#75c9ac}html[data-theme=dark] .pending-indicator{color:#d4b06e}
@media(max-width:1300px){.profile-hero{flex-wrap:wrap}.profile-hero .heading-actions{margin-left:92px}.profile-columns{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.profile-fields{grid-template-columns:1fr}.directory-summary .pending-indicator{margin-left:0}}
@media(max-width:1000px){.profile-columns{grid-template-columns:1fr}.profile-side{display:grid;grid-template-columns:1fr 1fr;align-items:start}.profile-pending-note{grid-column:1/-1}.profile-fields{grid-template-columns:1fr 1fr}.profile-heading h1{font-size:var(--text-stat)}.persistent-directory .page-heading{flex-wrap:wrap}.saved-card .directory-card-end .directory-status{display:none}}
@media(max-width:650px){.profile-hero{padding:var(--space-20);gap:var(--space-16)}.profile-avatar{width:53px;height:53px;border-radius:var(--radius-card);font-size:var(--text-section)}.profile-heading h1{font-size:var(--text-section)}.profile-hero .heading-actions{margin-left:0;width:100%}.profile-subtitle{gap:var(--space-8);font-size:var(--text-meta);flex-wrap:wrap}.profile-tabs{gap:var(--space-20);margin-bottom:var(--space-16)}.profile-tabs button{font-size:var(--text-meta)}.profile-columns{gap:var(--space-16)}.profile-main,.profile-side{gap:var(--space-16)}.profile-side{display:flex}.profile-fields{grid-template-columns:1fr;padding:var(--space-20) var(--space-20)}.profile-panel>header{padding:var(--space-16) var(--space-20)}.identity-fields{padding:var(--space-20) var(--space-20)}.raw-fields{padding:0 var(--space-20)}.raw-fields>div{grid-template-columns:100px minmax(0,1fr);gap:var(--space-12)}.profile-breadcrumb{font-size:var(--text-meta);gap:var(--space-8)}.persistent-directory .page-heading h1{font-size:var(--text-page)}.directory-summary{gap:var(--space-8);margin-top:0}.directory-summary>.pending-indicator{width:100%}.saved-card{padding:var(--space-16) var(--space-16)}.saved-card .directory-info strong{font-size:var(--text-body)}.persistent-toolbar .view-switch{width:100%}.persistent-toolbar .view-switch button{flex:1;justify-content:center}.persistent-toolbar .toolbar-end{width:100%}.profile-tabs{max-width:100%}.directory-result-count{margin:var(--space-12) var(--space-4)}.connection-explainer{margin:var(--space-16)}.profile-panel>header .pending-indicator{white-space:nowrap}.profile-panel>header h2{font-size:var(--text-body)}}
@media(prefers-reduced-motion:reduce){.loading-ring{animation:none}}

}
/* Client address book: deliberately scoped away from subcontractors and detail pages. */
.client-addressbook .address-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.client-addressbook .address-results-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 4px 12px;color:var(--muted);font-size:12px}.client-addressbook .directory-result-count{margin:0;font-size:12px}
.client-addressbook .address-alphabet{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:0 0 20px;padding:10px;border:1px solid var(--line);border-radius:18px;background:var(--glass-inset);box-shadow:var(--glass-highlight)}.client-addressbook .address-alphabet button{display:grid;place-items:center;min-width:32px;min-height:36px;padding:6px;border-radius:10px;font-size:11px;color:var(--muted);border:1px solid transparent;background:transparent}.client-addressbook .address-alphabet button:first-child{padding:6px 12px}.client-addressbook .address-alphabet button[aria-pressed=true]{color:var(--accent);border-color:var(--accent-line);background:var(--glass-control)}.client-addressbook .address-alphabet button:hover:not(:disabled){color:var(--accent);background:var(--soft)}.client-addressbook .address-alphabet button:disabled{opacity:.3;cursor:default}
.content .persistent-directory .address-card.directory-card{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;text-align:left;padding:22px;min-height:270px;border:1px solid var(--glass-edge,var(--line));border-radius:22px;background:var(--glass-panel);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:transform .2s,border-color .2s,box-shadow .2s}
.content .persistent-directory .address-card.directory-card:hover{transform:translateY(-3px);border-color:var(--accent-line);box-shadow:var(--shadow-hover)}.content .persistent-directory .address-card.directory-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.address-card .address-card-top{display:flex;align-items:center;gap:10px;margin-bottom:18px}.content .persistent-directory .address-card .directory-avatar{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:13px;background:rgba(201,41,62,.07);color:var(--accent)}.content .persistent-directory .address-card .directory-avatar svg{width:20px;height:20px}.content .persistent-directory .address-card.address-contact .directory-avatar{border-radius:50%;color:#527b92;background:rgba(91,133,155,.08)}.content .persistent-directory .address-card .address-type{font-size:10px;letter-spacing:.04em;color:var(--muted)}.content .persistent-directory .address-card .directory-status{margin-left:auto;font-size:10px;display:inline-flex}
.address-card .directory-info{display:flex;flex-direction:column;gap:6px;min-width:0;flex:none}.content .persistent-directory .address-card .directory-info strong{font-size:16px;line-height:1.4;font-weight:500;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;color:var(--text)}.content .persistent-directory .address-card .directory-info .address-relationship{font-size:12px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;color:var(--muted)}.content .persistent-directory .address-card .directory-info .address-role{font-size:11px;color:var(--muted)}
.address-card .address-card-details{display:flex;flex-direction:column;gap:10px;padding:17px 0 20px;flex:1;font-size:11px;color:var(--muted);min-width:0}.content .persistent-directory .address-card .address-card-details>span{display:flex;align-items:flex-start;gap:9px;line-height:1.6;min-width:0}.content .persistent-directory .address-card .address-card-details svg{width:14px;height:14px;flex-shrink:0;margin-top:2px}.content .persistent-directory .address-card .address-card-details>span>span{overflow-wrap:anywhere;min-width:0}.content .persistent-directory .address-card .address-no-details{font-style:normal;opacity:.8}.content .persistent-directory .address-card .address-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:13px;color:var(--muted);font-size:10px}.content .persistent-directory .address-card .address-card-footer svg{width:15px;height:15px}.content .persistent-directory .address-card:hover .address-card-footer{color:var(--accent)}
.content .persistent-directory .profile-main .related-contacts .address-card{border-radius:16px;border:1px solid var(--line);padding:18px;margin:16px 0;min-height:0}.content .persistent-directory .profile-main .related-contacts .address-card:hover{transform:none}.content .persistent-directory .profile-main .related-contacts .address-card-details{padding-bottom:14px}
html[data-theme=dark] .content .persistent-directory .address-card.address-contact .directory-avatar{color:#aac8db;background:rgba(91,133,155,.13)}
@media(max-width:1050px){.client-addressbook .address-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.client-addressbook .address-grid{grid-template-columns:1fr;gap:14px}.content .persistent-directory .address-card.directory-card{padding:20px;min-height:240px}.client-addressbook .address-results-heading{align-items:flex-start;flex-direction:column;gap:5px}.client-addressbook .address-alphabet{gap:4px;padding:8px;border-radius:16px}.client-addressbook .address-alphabet button{min-width:34px;min-height:44px}.client-addressbook .directory-toolbar .view-switch button{white-space:normal}.content .persistent-directory .address-card .directory-status{display:inline-flex}}
@media(prefers-reduced-motion:reduce){.content .persistent-directory .address-card.directory-card{transition:none}.content .persistent-directory .address-card.directory-card:hover{transform:none}}

.content .persistent-directory .address-card.directory-card{min-height:190px}
.content .persistent-directory .address-card .address-card-details{flex:none;padding:16px 0 0}
.content .persistent-directory .profile-main .related-contacts .address-card{min-height:0}
@media(max-width:650px){.content .persistent-directory .address-card.directory-card{min-height:180px}}

.directory-contact-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.directory-contact-form .form-field{min-width:0}.directory-contact-form input[readonly]{color:var(--muted);background:var(--soft)}.directory-contact-form textarea[name=notes]{min-height:78px}.directory-contact-form .form-help{margin:12px 0}.directory-contact-form .saved-form-note{padding:12px 14px}@media(max-width:650px){.directory-contact-form .form-grid{grid-template-columns:1fr}.directory-contact-form .span-2{grid-column:auto}}

/* Directory records use the same sectioned workspace as project editing. */
.directory-record-modal .directory-form-context{margin:0 0 14px;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.directory-record-modal .directory-contact-form .form-grid{display:flex;flex-direction:column;gap:14px}
.directory-record-modal .project-create-fields{align-content:start}
.directory-record-modal .directory-notes-section .form-field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.directory-record-modal .directory-contact-form textarea[name=notes]{width:100%;height:100px;min-height:100px;resize:vertical}
.directory-record-modal .directory-contact-form input[readonly]{background:var(--soft);color:var(--muted)}
@media(max-width:650px){.directory-record-modal .project-create-fields{grid-template-columns:1fr}.directory-record-modal .project-create-fields .span-2{grid-column:1/-1}}
