#people-directory{max-width:1200px;margin:auto;padding:24px;color:#243f30;font-family:system-ui,sans-serif}#people-directory>nav{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:32px}#people-directory a{color:inherit}#people-directory label{display:grid;gap:8px}#people-directory input,#people-directory select,#people-directory button{font:inherit;padding:10px;border:1px solid #8c9d86;border-radius:8px;background:white;color:inherit;max-width:100%;box-sizing:border-box}#people-directory input{min-width:0}#people-directory button{cursor:pointer}#people-directory section{margin-top:32px}.person-directory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;margin-top:24px}.person-directory-card{padding:20px;border:1px solid #d2dbc9;border-radius:16px;text-decoration:none;background:#f5f7f0;overflow-wrap:anywhere}.person-directory-card img,.person-placeholder{width:76px;height:76px;border-radius:50%;object-fit:cover}.person-placeholder{display:grid;place-items:center;background:#dce6d3;font-size:30px}.person-directory-card h2{font-size:19px;margin-bottom:6px}.person-directory-card p{font-size:14px;line-height:1.5}.person-directory-card small{display:block;margin-top:12px}.person-profile{display:flex;align-items:center;gap:24px;margin-top:24px;overflow-wrap:anywhere}.person-profile img{width:120px;height:120px;object-fit:cover;border-radius:50%}.person-profile h1{margin-bottom:8px}.person-relatives{display:flex;flex-wrap:wrap;gap:12px}.person-relatives a{display:grid;padding:12px 18px;background:#edf2e6;border-radius:10px;gap:4px;text-decoration:none}.person-relatives small{font-size:12px}.person-manage{margin-top:30px;border:1px solid #d2dbc9;padding:16px;border-radius:12px}.person-manage form{display:grid;gap:12px;max-width:650px;margin:22px 0}.person-photos{display:grid;align-items:start;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.person-photos article{position:relative;border:1px solid #d2dbc9;border-radius:12px;overflow:hidden;background:#f5f7f0}.person-photos article>div{display:flex;flex-wrap:wrap;gap:8px;padding:12px}.person-photos article span{width:100%;font-size:14px}.person-open-photo{display:block;width:100%;padding:0!important;border:0!important}.person-open-photo img{width:100%;height:auto;display:block;background:#e5e8de}@media(max-width:550px){.person-profile{align-items:flex-start;gap:14px}.person-profile img{width:80px;height:80px}.person-profile h1{font-size:25px}.person-photos{grid-template-columns:1fr}}
.directory-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-top:24px}.directory-controls .directory-show-all{grid-column:1 / -1}.directory-show-all{display:flex!important;flex-direction:row;align-items:center;gap:10px!important}.directory-show-all input{width:20px;height:20px;flex-shrink:0}.person-tree-status{display:inline-block;background:#e6eedc;border-radius:6px;padding:5px 8px;font-size:14px}.person-missing{color:#715229;font-size:13px!important}.tree-link-option{background:#eef3e7;padding:18px;border-radius:10px;margin:24px 0}#people-directory [data-people-status]:not(:empty){position:sticky;top:8px;z-index:5;background:#e6eedc;border:1px solid #9baa91;border-radius:8px;padding:12px}#people-directory .person-manage [data-merge]{border-top:1px solid #cdd8c2;padding-top:20px}@media(max-width:700px){.directory-controls{grid-template-columns:1fr}.directory-controls .directory-show-all{grid-column:auto}}
.person-portrait-control{flex:0 0 auto;display:grid;justify-items:center;gap:8px;width:144px;text-align:center;font-size:13px!important}.person-portrait-control .person-placeholder{width:120px;height:120px}.person-portrait-dialog{width:min(720px,calc(100vw - 40px));max-height:85vh;overflow:auto;box-sizing:border-box;padding:24px;border:1px solid #8c9d86;border-radius:16px;color:#243f30;font-family:system-ui,sans-serif}.person-portrait-dialog::backdrop{background:#10231999}.person-portrait-dialog button{font:inherit;cursor:pointer;color:inherit;border:1px solid #8c9d86;background:white;border-radius:10px;padding:10px}.person-portrait-dialog [data-close]{float:right}.portrait-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.portrait-choices button{display:grid;gap:10px;text-align:center}.portrait-preview{display:grid;place-items:center;aspect-ratio:1;overflow:hidden;border-radius:50%;background:#edf2e6}.portrait-preview canvas{display:block;width:100%;height:auto}.person-portrait-dialog button:focus-visible,.person-portrait-control:focus-visible{outline:3px solid #526d3c;outline-offset:3px}@media(max-width:550px){.person-portrait-control{width:102px}.person-portrait-control .person-placeholder{width:80px;height:80px}.person-portrait-dialog{padding:16px}.portrait-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
#people-directory .merge-result{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #d2dbc9;border-radius:10px;margin-bottom:8px;cursor:pointer}.merge-result input{flex:0 0 20px;width:20px;height:20px}.merge-result img{width:48px;height:48px;border-radius:50%;object-fit:cover}.merge-result span,.merge-selected-person span{min-width:0;overflow-wrap:anywhere}.merge-result small,.merge-selected-person small{display:block;margin-top:5px;font-size:12px}.merge-selected-person{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#edf2e6;border-radius:10px;margin-bottom:8px}
.portrait-choices button[aria-pressed=true]{position:relative;border-color:#315f42;background:#edf3e7}.portrait-choices button[aria-pressed=true]::after{content:'✓';position:absolute;right:6px;top:6px;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;background:#315f42;color:white}
#people-directory [hidden]{display:none}
.person-edge-case{margin:20px 0;border-top:1px solid #d2dbc9;padding-top:16px}.person-edge-case>summary{cursor:pointer}
[data-suggested-crop]{display:block;width:120px;height:120px;border-radius:8px;margin:8px 0}

.person-photos article>.current-portrait-badge{position:absolute;top:8px;left:8px;z-index:1;margin:0;pointer-events:none;background:#e3efdaed;border-radius:5px;padding:4px 7px;font-size:12px}
