/* DEV04. Shared site tokens: controls 8, fields 16, groups 24, sections 32. */
.member-directory{min-width:0;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.member-wrap .member-directory .directory-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin:24px 0;align-items:end}
.member-directory .directory-controls>*,.member-directory .geography-filters>*{min-width:0}
.member-directory .directory-search{display:grid;gap:8px;font-size:14px}
.member-wrap .member-directory .geography-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.member-directory .taxonomy-field{border:0;padding:0;margin:0;min-width:0}
.member-directory .taxonomy-field legend{font-size:14px;margin-bottom:8px}
.member-directory .taxonomy-tags:empty,.member-directory .taxonomy-field>.tiny{display:none}
.member-directory .taxonomy-tags button{font-size:12px;line-height:1.4;padding:8px 12px;min-height:36px}
.member-directory .taxonomy-picker>summary,.member-directory .directory-extra>summary{display:flex;align-items:center;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fffdf7;cursor:pointer;font-size:14px;list-style:none}
.member-directory .taxonomy-picker>summary::after,.member-directory .directory-extra>summary::after{content:'⌄';margin-left:auto;padding-left:8px}
.member-directory .taxonomy-picker>summary::-webkit-details-marker,.member-directory .directory-extra>summary::-webkit-details-marker{display:none}
.member-directory .directory-extra{align-self:end}
.member-directory .directory-extra[open]{grid-column:1/-1}
.member-directory #directory-taxonomy{display:grid;gap:16px;padding-top:16px}
.member-directory .taxonomy-options{max-height:min(240px,40dvh);overflow:auto;overscroll-behavior:contain}
.member-directory .people-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:24px}
.member-directory .compact-person{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--radius-card);background:#fffdf7;overflow:hidden}
.compact-person .person-content{padding:20px 20px 16px;min-width:0}
.compact-person .person-content h3{font-size:21px;line-height:1.3;letter-spacing:-.025em;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.compact-person .person-location{font-size:13px;color:#56684e;margin:0 0 12px}
.compact-person .person-occupation{font-size:15px;font-weight:700;line-height:1.5;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.compact-person .person-role{font-size:12px;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.person-interests{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.person-interests>span{font-size:12px;line-height:1.5;border-radius:var(--radius-control);background:#edf1e4;padding:4px 8px;max-width:100%;overflow-wrap:anywhere}
.compact-person .person-task{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.compact-person .person-task>span{font-size:11px;color:#56684e}
.compact-person .person-task p{font-size:14px;line-height:1.5;font-weight:700;margin:4px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.compact-person .person-photo{height:132px;aspect-ratio:auto;margin:0 20px;border-radius:var(--radius-control);overflow:hidden;background:#e9eedb}
.compact-person .person-photo .avatar{width:100%;height:100%;object-fit:cover;object-position:center 35%;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:44px;color:#5f7651;background:#e9eedb}
.compact-person .person-metrics{padding:12px 20px 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.compact-person .person-badges{display:contents}
.compact-person .person-badges>span{padding:0;border:0;background:none;font-size:11px;line-height:1.5}
.compact-person .leaf-count{margin:0;font-size:11px;min-height:36px;padding:6px 10px}
.compact-person .person-actions{display:grid;gap:8px;padding:16px 20px 20px}
.compact-person .person-actions>:is(button,a){display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0;padding:11px 12px;font-size:13px;text-align:center;white-space:normal}
.compact-person .person-safety{margin:4px 0 0;font-size:12px}
.compact-person .person-safety summary{min-height:36px;cursor:pointer;display:flex;align-items:center}
.compact-person .person-safety .row-actions{margin-top:8px}
.directory-empty{grid-column:1/-1;margin:0;padding:24px;border-radius:var(--radius-card);background:#edf1e4}
html:has(dialog.member-preview[open]){overflow:hidden;scrollbar-gutter:stable}
dialog.member-preview{box-sizing:border-box;width:min(920px,calc(100vw - 48px));max-width:920px;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:var(--radius-dialog);background:#fffdf7;color:var(--green);overflow:auto;overscroll-behavior:contain;margin:auto}
.member-preview::backdrop{background:#1c352e66}
.member-preview .preview-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:#fffdf7;border-bottom:1px solid var(--line);font-size:13px}
.member-preview .preview-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;font-size:26px;line-height:1;padding:0;border-radius:var(--radius-pill)}
.member-preview .preview-body{display:grid;gap:24px;padding:20px 20px calc(24px + env(safe-area-inset-bottom));overflow-wrap:anywhere;min-width:0}
.member-preview .preview-body>:is(p,section,div){margin:0}
.member-preview .preview-body :is(h2,h3,h4){letter-spacing:-.025em;line-height:1.3;margin:0 0 12px}
.member-preview .preview-body h2{font-size:26px}
.member-preview .preview-body h3{font-size:20px}
.member-preview .preview-body h4{font-size:17px}
.preview-person-heading{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:start}
.preview-person-heading>.avatar{display:flex;align-items:center;justify-content:center;width:72px;height:88px;border-radius:var(--radius-control);object-fit:cover;background:#e9eedb;font-size:32px}
.preview-person-heading p{font-size:14px;margin:0 0 8px}
.member-preview .preview-body .profile-summary{font-size:15px;line-height:1.75;margin:0}
.member-preview .preview-body .person-interests{gap:8px}
.member-preview .preview-body .person-badges{margin:0}
.preview-request+.preview-request{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.preview-request button{margin-top:16px;min-height:44px}
.preview-actions{display:flex;flex-wrap:wrap;gap:12px;padding-top:20px;border-top:1px solid var(--line)}
.preview-actions>:is(button,a){min-height:48px;display:flex;align-items:center;justify-content:center;text-align:center}
.profile-landing.public-profile{max-width:1040px}
.profile-landing.public-profile .profile-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding:24px;border:1px solid var(--line);border-radius:var(--radius-card);background:#fffdf7;margin-bottom:32px}
.profile-landing .profile-info .eyebrow{font-size:11px;margin:0 0 16px}
.profile-landing.public-profile .profile-info h1{font-size:clamp(30px,5vw,46px);line-height:1.15;margin:0 0 12px;letter-spacing:-.035em}
.profile-landing .profile-location{font-size:14px;color:#56684e;margin:0 0 16px}
.profile-landing .profile-occupation{font-size:18px;font-weight:700;margin:0 0 8px}
.profile-landing .profile-roles{font-size:14px;margin:0}
.profile-landing .profile-website{margin:20px 0 0;font-size:14px}
.profile-landing .profile-intro-action{margin:24px 0 0}
.profile-landing .profile-intro-action .button{gap:8px;justify-content:center;text-align:center;white-space:normal}
.profile-landing .profile-portrait{position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:4/3;background:#e9eedb;max-width:320px;width:100%}
.profile-landing .profile-portrait>.portrait-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:64px;color:#5f7651}
.profile-landing.public-profile .community-portrait{position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;border-radius:0;object-fit:cover;object-position:center 35%}
.profile-landing .profile-copy-grid{display:grid;gap:24px;margin-bottom:32px}
.profile-landing .profile-copy{padding:24px;border:1px solid var(--line);border-radius:var(--radius-card);background:#fffdf7;min-width:0}
.profile-landing :is(.profile-copy,.profile-publications,.profile-contacts,[data-member-reputation]) h2{font-size:24px;line-height:1.3;letter-spacing:-.025em;margin:0 0 16px}
.profile-landing .profile-copy p{font-size:16px;line-height:1.8;margin:0}
.profile-landing :is(.profile-publications,.profile-contacts,[data-member-reputation]){margin-block:32px}
.profile-landing .profile-publications .content-grid{gap:16px;margin-block:0}
.profile-landing .profile-publications .content-card h2{font-size:20px}
.profile-landing .profile-publications .content-card p{font-size:14px}
.profile-landing [data-member-stats]{display:flex;gap:16px;flex-wrap:wrap}
.profile-landing [data-profile-owner]{margin:0 0 24px}
@media(min-width:640px){.member-directory .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-preview .preview-body{padding:28px}.profile-landing.public-profile .profile-intro{grid-template-columns:minmax(0,1fr) 240px;padding:32px;align-items:start}.profile-landing .profile-copy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-landing .profile-copy:first-child{grid-column:1/-1}.member-directory #directory-taxonomy{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.member-wrap .member-directory .directory-controls{grid-template-columns:minmax(0,1.6fr) minmax(0,2fr) minmax(0,1fr) auto auto;gap:12px}.member-directory .taxonomy-tags:not(:empty){margin-top:8px}.member-directory .directory-search{align-self:start}.member-directory .directory-extra>summary{margin-top:29px}.member-directory .directory-extra[open]{grid-column:4;grid-row:1}.member-directory .directory-extra[open]>div{grid-template-columns:minmax(0,1fr)}.member-directory .people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

@media(max-width:639px){.member-preview .preview-actions>:is(button,a){width:100%}.member-preview .preview-person-heading{grid-template-columns:56px minmax(0,1fr)}.preview-person-heading>.avatar{width:56px;height:72px}.profile-landing .profile-intro-action .button{width:100%}.member-directory .directory-extra{grid-column:1/-1}.member-wrap .member-directory .directory-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.member-directory :is(.directory-search,.geography-filters,#directory-sector){grid-column:1/-1}.member-directory [data-reset]{justify-self:start}.member-directory .directory-extra>summary{min-height:44px}}

.member-directory .taxonomy-picker{border:0;padding:0;background:transparent}
.member-directory .taxonomy-picker>summary{display:block;position:relative;height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:28px}
.member-directory .taxonomy-picker>summary::after{position:absolute;right:12px;top:10px;padding:0}
.member-directory .directory-search{align-self:end}
.compact-person .person-content{padding:16px 16px 12px}
.compact-person .person-photo{height:96px;margin-inline:16px}
.compact-person .person-interests>span{font-size:11px;padding:3px 6px;line-height:1.5;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-person .person-metrics{padding-inline:16px}
.compact-person .person-actions{grid-template-columns:minmax(0,1fr) 44px;padding:12px 16px 16px;align-items:start}
.compact-person .person-actions>.person-hello{grid-column:1/-1}
.compact-person .person-actions>.person-safety{margin:0;position:relative}
.compact-person .person-actions>.person-safety summary{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--radius-pill);font-size:22px;list-style:none}
.compact-person .person-actions>.person-safety summary::-webkit-details-marker{display:none}
.compact-person .person-safety .row-actions{position:absolute;z-index:2;right:0;bottom:52px;width:190px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fffdf7;box-shadow:0 6px 18px #243e351a}
.member-directory .taxonomy-field+.taxonomy-field{margin-top:0}
.member-directory .directory-extra>.geography-filters,.member-directory .directory-extra>#directory-sector{margin-top:16px}
@media(max-width:639px){.member-directory .directory-extra{grid-column:1}.member-directory [data-reset]{grid-column:2;justify-self:stretch}.member-directory .directory-extra[open]{grid-column:1/-1}.member-wrap .member-directory .directory-extra>.geography-filters{grid-template-columns:minmax(0,1fr)}.member-directory [data-reset]{min-height:44px}}

/* Compact natural-height cards: no empty reservations for absent data. */
.compact-person .person-photo{height:auto;aspect-ratio:1;margin-inline:16px;position:relative;flex:none}
.compact-person .person-photo>.avatar{position:absolute;inset:0}
.compact-person .photo-badges{position:absolute;inset:auto 8px 8px;display:flex;align-items:end;justify-content:space-between;gap:8px;pointer-events:none}
.compact-person .photo-badges .person-badges{display:block;min-width:0}
.compact-person .photo-badges .person-badges>span{display:block;background:#fffdf7ed;border:1px solid var(--line);border-radius:var(--radius-pill);padding:5px 8px;font-size:11px;line-height:1.5}
.compact-person .photo-badges .leaf-count{pointer-events:auto;flex:none;min-height:44px;background:#fffdf7ed;border:1px solid var(--line);padding:8px 10px}
.compact-person .person-metrics:empty,.compact-person .person-metrics:has(.person-badges:empty){display:none}
.compact-person .person-task{margin:16px 16px 0;padding-top:12px}
@media(max-width:639px){dialog.member-preview{width:calc(100vw - 24px)}}


.member-preview .preview-close{width:auto;flex:0 0 auto;min-width:104px;font-size:14px;padding:10px 14px;gap:8px}
dialog.member-intro{width:min(760px,calc(100vw - 48px));max-width:760px}
.member-intro form{padding:28px}
.member-intro form h2{font-size:28px;line-height:1.3;letter-spacing:-.025em;margin:0 0 16px;overflow-wrap:anywhere}
.member-intro form>p{margin-bottom:20px}
@media(max-width:639px){dialog.member-intro{width:calc(100vw - 24px)}.member-intro form{padding:20px}.member-intro form h2{font-size:24px}}

/* Pinterest-like placement is limited to the member directory. */
@media(min-width:640px){.member-directory .people-grid[data-masonry]{grid-auto-rows:1px;row-gap:0}}

/* Shared portrait badge shape; only reviews are interactive. */
.compact-person .photo-badges{align-items:center}
.compact-person .photo-badges :is(.person-badges>span,.leaf-count){display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;margin:0;border:1px solid var(--line);border-radius:var(--radius-pill);background:#fffdf7ed;color:var(--green);font-size:11px;font-weight:400;line-height:1.5;box-sizing:border-box;white-space:nowrap}

/* Reset inherited badge margins so both pills share the same baseline. */
.compact-person .photo-badges .person-badges{display:flex;align-items:center;margin:0;padding:0}
.member-preview:not(.member-intro){background:var(--cream)}
.member-preview .preview-body{gap:16px}
.member-preview .preview-block{min-width:0;padding:20px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fffdf7}
.member-preview .preview-identity{display:grid;gap:16px;background:#edf1e4}
.member-preview .preview-identity :is(.person-interests,.person-badges,.preview-website){margin:0}
.member-preview .preview-identity .person-badges{display:flex;flex-wrap:wrap;gap:8px}
.member-preview .preview-copy-grid{display:grid;gap:16px}
.member-preview .preview-block>:last-child{margin-bottom:0}
.member-preview .preview-copy-grid>.preview-block{margin:0}
.member-preview .preview-actions{padding-top:16px;align-items:center}
.member-preview .preview-actions>.tiny{margin:0}
@media(min-width:640px){.member-preview .preview-copy-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.member-preview .preview-copy-grid>:only-child{grid-column:1/-1}}
@media(max-width:639px){.member-preview .preview-block{padding:16px}}

/* Directory dropdowns overlay results, never expand the filter row. */
.member-wrap .member-directory .directory-controls{position:relative;align-items:end}
.member-directory #directory-sector{position:relative}
.member-directory .directory-extra{position:static}
.member-directory .directory-extra[open]{grid-column:auto;grid-row:auto}
.member-directory .directory-filter-menu,.member-directory #directory-sector .directory-options{position:absolute;top:calc(100% + 8px);z-index:6;padding:16px;border:1px solid var(--line);border-radius:var(--radius-control);background:#fffdf7;box-shadow:0 12px 28px #243e351a;max-height:min(60dvh,480px);overflow:auto;overscroll-behavior:contain}
.member-directory .directory-filter-menu{right:0;width:min(420px,100%)}
.member-directory #directory-sector .directory-options{left:0;width:min(360px,calc(100vw - 48px))}
.member-directory .directory-filter-menu #directory-sector{position:static}
.member-directory .directory-filter-menu #directory-sector .directory-options{position:static;width:100%;box-shadow:none;border:0;padding:0;margin-top:12px;overflow:visible;max-height:none}
.member-directory .directory-filter-menu .directory-options{margin-top:12px}
.member-directory .directory-options input[type=search]{margin:0 0 12px;width:100%;min-height:44px;font-size:16px}
.member-directory .directory-options .taxonomy-tags{margin:0 0 12px}
.member-directory .directory-options .taxonomy-options{max-height:240px}
.member-directory .taxonomy-option{display:flex;align-items:center;gap:10px;padding:10px 4px;min-height:44px;line-height:1.5;font-size:14px}
.member-directory .taxonomy-option input{margin:0;flex:none;width:20px;height:20px}
.member-directory .taxonomy-option span{min-width:0;overflow-wrap:normal}
.member-directory #directory-taxonomy{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-top:0}
.member-directory .directory-filter-menu>.geography-filters,.member-directory .directory-filter-menu>#directory-sector{margin-bottom:20px}
@media(max-width:639px){.member-directory .directory-extra[open]{grid-column:1}.member-wrap .member-directory .directory-filter-menu>.geography-filters{grid-template-columns:minmax(0,1fr)}.member-directory .directory-filter-menu{width:100%}}

.member-directory .taxonomy-picker,.member-directory .taxonomy-picker[open]{display:block;gap:0}
/* Tablet filters use the available width instead of five mobile-sized rows. */
@media(min-width:640px) and (max-width:999px){
 .member-wrap .member-directory .directory-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .member-directory .directory-search,.member-directory .directory-controls>.geography-filters,.member-directory .directory-controls>#directory-sector{grid-column:span 2}
 .member-directory .directory-extra,.member-directory .directory-extra[open],.member-directory [data-reset]{grid-column:span 1}
 .member-directory [data-reset]{width:100%;min-height:48px}
}
