:root{--bg:#f7f8f5;--white:#fff;--forest:#284e40;--ink:#24352e;--muted:#737b73;--sage:#e6ede6;--line:#dde3db;--display:Georgia,'Times New Roman',serif;--body:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button{color:inherit}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #86a591;outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon{width:18px;height:18px;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.site-header{height:92px;display:flex;align-items:center;gap:48px;max-width:1440px;margin:auto;padding:0 64px;border-bottom:1px solid var(--line)}.brand{font-family:var(--display);font-size:31px;font-weight:bold;letter-spacing:-1.5px;text-decoration:none;display:flex;align-items:center;gap:6px}.brand-dot{font-family:var(--body);font-size:32px;font-weight:400;color:#597958;display:inline-block;line-height:1}.navigation{display:flex;align-items:center;gap:30px;flex:1;height:100%}.nav-button{background:none;border:0;height:100%;padding:0 2px;font-size:13px;position:relative;white-space:nowrap;color:var(--muted)}.nav-button.active{color:var(--forest);font-weight:600}.nav-button.active:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;border-radius:3px;background:var(--forest)}.count-badge{margin-left:5px;font-size:11px;background:var(--sage);color:var(--forest);padding:2px 6px;border-radius:5px}.header-actions{display:flex;align-items:center;gap:18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;border-radius:7px;border:1px solid var(--line);background:var(--white);font-weight:500;line-height:1.4;text-decoration:none;min-height:44px;transition:background .15s}.button:hover{background:#edf1eb}.button.primary{background:var(--forest);border-color:var(--forest);color:var(--white)}.button.primary:hover{background:#1b3d30}.button.small{font-size:12px;padding:10px 14px;min-height:40px}.button.text{background:none;border:0;padding:7px 0;min-height:32px;font-size:12px;color:var(--muted)}.button.selected{background:var(--sage);border-color:#c5d4c6;color:var(--forest)}.avatar{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;background:#dce6d9;color:#45633f;font-size:10px;font-weight:600;border:2px solid var(--bg);flex-shrink:0}.avatar.account{height:36px;width:36px;border:1px solid #ced7c9;font-size:12px;background:#e2e8da}.avatar.tone-1{background:#e9ddd4;color:#806149}.avatar.tone-2{background:#dce5e8;color:#4f727e}.avatar.tone-3{background:#e5dfee;color:#75608c}.avatars{display:flex;align-items:center;padding-left:0}.avatars .avatar+.avatar{margin-left:-7px}
main{max-width:1440px;margin:auto;padding:44px 64px 70px;min-height:calc(100vh - 190px)}.collection-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.collection-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;margin:0 0 10px}.collection-label .icon{width:14px;height:14px}h1,h2,h3,p{margin-top:0}h1{font-family:var(--display);font-size:48px;line-height:1.15;letter-spacing:-1.6px;font-weight:400;margin-bottom:13px}.intro{color:var(--muted);font-size:14px;line-height:1.75;margin-bottom:0;max-width:550px}.family-summary{display:flex;align-items:center;gap:10px;padding-bottom:7px;font-size:12px;color:var(--muted);white-space:nowrap}.family-summary .avatar{width:31px;height:31px}.family-summary strong{color:var(--ink);font-weight:500}.collection-note{padding:14px 17px;background:#edf1e9;border:1px solid #e1e8da;border-radius:7px;display:flex;gap:11px;align-items:center;font-size:12px;color:#5f715d;margin-bottom:30px}.collection-note .icon{width:17px;height:17px}.collection-note strong{font-weight:500;color:#425b3c}.sample-tag{margin-left:auto;font-size:11px;white-space:nowrap;opacity:.8}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.search-box{position:relative;width:280px;flex-shrink:0}.search-box .icon{position:absolute;left:13px;top:13px;color:#899085;width:16px;height:16px}.search-box input{width:100%;border:1px solid var(--line);border-radius:6px;min-height:42px;background:var(--white);padding:10px 14px 10px 39px;font-size:12px}.search-box input::placeholder{color:#92988e}.filter-bar{display:flex;gap:6px;align-items:center;flex:1;flex-wrap:wrap}.filter{border:1px solid transparent;background:none;padding:8px 13px;font-size:12px;min-height:38px;border-radius:6px;color:var(--muted);white-space:nowrap}.filter.active{background:var(--sage);color:var(--forest);border-color:#d7e1d3;font-weight:500}.filter:hover{background:#edf1e9}.view-switch{display:flex;border:1px solid var(--line);border-radius:6px;padding:3px;background:var(--white);gap:3px}.icon-button{background:transparent;border:0;display:inline-flex;justify-content:center;align-items:center;width:34px;height:34px;border-radius:4px}.icon-button.active{background:var(--sage);color:var(--forest)}.result-line{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:19px}.sort-select{border:none;background:transparent;color:var(--ink);font-size:11px;padding:7px 2px;max-width:180px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 25px}.item-card{min-width:0}.photo-wrap{position:relative;aspect-ratio:1.18;background:#e6e6df;border-radius:9px;overflow:hidden}.photo-button{width:100%;height:100%;padding:0;border:0;background:transparent;display:block}.photo-button img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}.photo-button:hover img{transform:scale(1.025)}.heart-button{position:absolute;right:13px;top:13px;width:36px;height:36px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.9);border-radius:50%;display:grid;place-items:center;color:#607063;box-shadow:0 2px 6px #00000008}.heart-button.selected{color:var(--forest);background:#f6fbf4}.heart-button.selected .icon{fill:var(--forest);stroke:var(--forest)}.photo-count{position:absolute;left:12px;bottom:12px;font-size:10px;padding:4px 7px;border-radius:4px;background:#ffffffed;display:flex;align-items:center;gap:5px;color:#4e594f;pointer-events:none}.photo-count .icon{width:13px;height:13px}.card-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:17px;margin-bottom:7px}.card-title{font-family:var(--display);font-size:23px;line-height:1.25;letter-spacing:-.45px;font-weight:400;margin:0 0 8px}.title-button{font:inherit;letter-spacing:inherit;background:none;border:0;padding:0;text-align:left}.title-button:hover{color:#55785b}.card-description{font-size:12px;line-height:1.65;color:var(--muted);margin:0 0 15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}.card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px;gap:8px}.interest-indicator{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}.interest-indicator .avatar{width:24px;height:24px;font-size:9px}.interest-action{display:flex;align-items:center;gap:5px;color:var(--forest);background:none;border:none;padding:5px 0 5px 5px;font-size:11px;font-weight:500;min-height:32px;white-space:nowrap}.interest-action .icon{width:14px;height:14px}.interest-action.selected .icon{fill:var(--forest)}.empty{padding:65px 20px;text-align:center;border:1px dashed #cad6c7;border-radius:8px}.empty .icon{width:35px;height:35px;margin-bottom:18px;color:#81937b}.empty h2{font-family:var(--display);font-size:29px;font-weight:400;margin-bottom:10px}.empty p{font-size:13px;color:var(--muted);margin-bottom:20px}.list-view{display:flex;flex-direction:column;gap:20px}.list-view .item-card{display:grid;grid-template-columns:180px 1fr;gap:25px;border-bottom:1px solid var(--line);padding-bottom:20px}.list-view .photo-wrap{aspect-ratio:1.2}.list-view .card-meta{margin-top:6px}.list-view .card-description{min-height:0;max-width:600px}.list-view .card-bottom{border:0;padding-top:0}.collection-context{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;margin-top:36px}.collection-context .icon{width:13px;height:13px}.footer{max-width:1312px;margin:0 auto;padding:25px 0 30px;border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;color:var(--muted);font-size:11px}.footer-brand{font-family:var(--display);font-size:20px;color:var(--ink)}.private-note{margin-left:auto}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{padding:21px 24px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat strong{display:block;font-size:32px;font-family:var(--display);font-weight:400;line-height:1.3}.stat span{font-size:12px;color:var(--muted)}.stats-controls{display:flex;gap:15px;align-items:center;justify-content:space-between;margin-bottom:22px}.stats-controls .search-box{width:280px;min-width:0;flex-shrink:1}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--white)}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}th{padding:14px 18px;background:#f0f3ee;font-weight:500;color:#6e796c;font-size:11px;border-bottom:1px solid var(--line)}td{padding:17px 18px;border-bottom:1px solid #e9eee5}tr:last-child td{border-bottom:0}.table-item{display:flex;align-items:center;gap:12px}.table-item img{width:48px;height:48px;object-fit:cover;border-radius:5px}.table-item button{background:none;border:0;padding:0;color:var(--ink);font-weight:500}.table-count{display:inline-flex;align-items:center;justify-content:center;background:var(--sage);color:var(--forest);border-radius:5px;min-width:27px;height:25px;font-size:11px}.table-people{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.status-pill{display:inline-block;padding:4px 8px;border-radius:5px;font-size:10px;background:#f1f3ed;color:#7b826e}.status-pill.shared{color:#8b6d33;background:#f6efdd}.status-pill.none{color:#898982;background:#f1f1ed}.table-sort{border:0;background:none;padding:0;font-size:inherit;font-weight:inherit;display:flex;align-items:center;gap:5px}.table-sort .icon{width:12px;height:12px}
dialog{border:0;border-radius:13px;background:var(--bg);color:var(--ink);padding:0;max-width:960px;width:calc(100% - 48px);max-height:calc(100dvh - 48px);box-shadow:0 20px 100px #17251b33}dialog::backdrop{background:#13251d70;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:14px;top:14px;border:1px solid var(--line);background:#ffffffed;border-radius:50%;z-index:2;width:36px;height:36px;display:grid;place-items:center}.detail-layout{display:grid;grid-template-columns:1fr 1fr}.detail-gallery{padding:25px;background:#e9ece4}.detail-main-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;display:block}.gallery-controls{display:flex;align-items:center;gap:10px;margin-top:15px}.thumb{padding:2px;background:none;border:2px solid transparent;border-radius:5px}.thumb.active{border-color:var(--forest)}.thumb img{display:block;width:58px;height:58px;object-fit:cover;border-radius:2px}.gallery-counter{margin-left:auto;font-size:11px;color:var(--muted)}.detail-copy{padding:45px 32px 30px;min-width:0}.detail-category{font-size:11px;color:var(--muted);margin-bottom:10px}.detail-copy h2{font-family:var(--display);font-size:34px;font-weight:400;letter-spacing:-.8px;line-height:1.15;margin-bottom:18px}.detail-description{font-size:13px;line-height:1.85;color:var(--muted);margin-bottom:22px}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:0 0 24px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-facts div{min-width:0}.detail-facts dt{font-size:10px;color:var(--muted);margin-bottom:4px}.detail-facts dd{font-size:12px;margin:0}.detail-interest h3{font-size:12px;font-weight:500;margin-bottom:12px}.person-line{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:12px}.person-line .sample-person{font-size:10px;color:var(--muted);margin-left:auto}.detail-interest{margin-bottom:22px}.detail-copy>.button{width:100%}.detail-note{font-size:10px;line-height:1.6;color:var(--muted);margin-top:12px;margin-bottom:0}.metadata-note{font-size:10px;color:var(--muted);display:flex;gap:6px;align-items:center;margin-bottom:8px}.metadata-note .icon{width:12px;height:12px}.edit-description{display:block;width:100%;min-height:135px;border:1px solid #b7c8b3;border-radius:5px;padding:10px;font-size:12px;resize:vertical;background:var(--white);color:var(--ink);margin-bottom:10px}.edit-actions{display:flex;gap:8px;margin-bottom:15px}
.simple-dialog{padding:34px;max-width:560px;margin:auto}.simple-dialog h2{font-family:var(--display);font-size:31px;font-weight:400;letter-spacing:-.7px;margin-bottom:10px}.simple-dialog>p{font-size:13px;color:var(--muted);line-height:1.75;max-width:440px}.simple-dialog label{display:block;font-size:12px;font-weight:500;margin:25px 0 8px}.simple-dialog input{width:100%;background:var(--white);border:1px solid var(--line);padding:12px;border-radius:6px;min-height:44px}.invite-form-row{display:flex;gap:8px}.invite-form-row input{flex:1;min-width:0}.invite-form-row .button{white-space:nowrap}.created-link{margin-top:22px;padding:16px;border-radius:7px;background:var(--sage)}.created-link p{font-size:12px;margin:0 0 10px}.created-link input{font-size:11px;min-width:0}.copy-row{display:flex;gap:8px}.invite-list{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.invite-list h3{font-size:12px;font-weight:500;margin-bottom:12px}.invite-row{display:flex;gap:10px;align-items:center;font-size:12px;padding:8px 0}.invite-row .invite-label{flex:1}.invite-row .invite-label small{display:block;font-size:10px;color:var(--muted)}.invite-row .button{font-size:11px;min-height:30px;padding:5px 8px;background:none}.invite-security-note{font-size:11px!important;margin-top:18px;line-height:1.6}.error{color:#a44636;font-size:12px;margin:12px 0 0}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:var(--forest);color:white;padding:12px 20px;font-size:12px;border-radius:7px;box-shadow:0 8px 30px #152b2426;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:10;max-width:calc(100% - 32px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.initial-loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.gate{min-height:100vh}.gate-logo{font:700 32px var(--display);letter-spacing:-1.5px;padding:30px 45px;display:flex;gap:7px;align-items:center}.gate-inner{max-width:440px;margin:65px auto 0;padding:20px}.gate-symbol{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:var(--sage);font-size:36px;color:var(--forest);margin-bottom:27px}.gate h1{font-size:44px}.gate p{color:var(--muted);font-size:13px;line-height:1.85}.gate label{display:block;font-size:12px;margin:30px 0 8px}.gate input{width:100%;border:1px solid var(--line);border-radius:6px;min-height:46px;padding:12px;background:var(--white);margin-bottom:12px}.gate .primary{width:100%}.gate-note{font-size:11px!important;margin-top:28px}.gate .error{color:#a44636}.account-details{padding:15px 0 25px;display:flex;gap:12px;align-items:center}.account-details .avatar{width:45px;height:45px;font-size:15px}.account-details strong{display:block;font-weight:500}.account-details span{font-size:12px;color:var(--muted)}
@media(min-width:1500px){.photo-wrap{aspect-ratio:1.22}}@media(max-width:1200px){.site-header{padding:0 36px;gap:30px}.navigation{gap:22px}main{padding:38px 36px 60px}.toolbar{flex-wrap:wrap}.search-box{width:230px}.filter{padding:8px 10px}.footer{margin:0 36px}.sample-tag{display:none}}@media(max-width:960px){.site-header{gap:20px}.brand{font-size:27px}.navigation{gap:15px}.header-actions{gap:10px}.button.small{padding:9px 11px}.header-actions .button .icon{display:none}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 23px}.collection-heading{align-items:flex-start}.family-summary{display:none}.toolbar{gap:13px}.search-box{width:calc(100% - 97px);order:0}.view-switch{margin-left:auto;order:1}.filter-bar{order:2;flex-basis:100%}.photo-wrap{aspect-ratio:1.15}.detail-copy{padding:48px 24px 25px}.detail-gallery{padding:20px}.detail-copy h2{font-size:29px}.stat{padding:20px 15px}}@media(max-width:700px){.site-header{height:auto;min-height:115px;padding:16px 22px 0;flex-wrap:wrap;column-gap:12px;row-gap:13px}.brand{font-size:29px}.header-actions{margin-left:auto}.navigation{order:3;flex-basis:100%;height:42px;gap:24px;overflow-x:auto;max-width:100%;scrollbar-width:none}.nav-button{font-size:12px}.header-actions .button{font-size:11px;min-height:35px;padding:8px 11px}.avatar.account{height:32px;width:32px;font-size:10px}.brand-dot{font-size:29px}main{padding:29px 22px 45px}h1{font-size:38px;letter-spacing:-1.2px}.collection-heading{margin-bottom:23px}.collection-label{font-size:10px}.intro{font-size:12px;line-height:1.75;max-width:390px}.collection-note{font-size:11px;padding:12px;gap:9px;margin-bottom:23px;align-items:flex-start}.collection-note .icon{margin-top:2px;flex-shrink:0}.filter-bar{gap:4px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.filter{font-size:11px;padding:7px 11px;min-height:36px}.toolbar{margin-bottom:14px}.result-line{margin-bottom:15px}.grid{gap:28px 16px}.card-title{font-size:21px}.card-meta{font-size:9px}.card-description{font-size:11px}.interest-indicator{font-size:9px}.interest-action{font-size:10px}.footer{margin:0 22px;gap:15px;flex-wrap:wrap;padding:21px 0}.private-note{display:none}.stat-strip{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(3){padding-left:0;border-top:1px solid var(--line)}.stat:nth-child(4){border-top:1px solid var(--line)}.stat strong{font-size:29px}.stat span{font-size:11px}.stats-controls{gap:10px;flex-wrap:wrap}.stats-controls .search-box{width:100%;flex:1 1 100%;min-width:0}.stats-controls>label{flex:1}.stats-controls>.button{flex-shrink:0}.stats-controls .button{font-size:11px;padding:10px}.detail-layout{grid-template-columns:1fr}.detail-gallery{padding:17px 17px 13px}.detail-main-image{aspect-ratio:1.2}.detail-copy{padding:24px}.detail-copy h2{font-size:32px}.detail-description{font-size:13px}.detail-facts{gap:18px}.simple-dialog{padding:30px 23px}dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.simple-dialog h2{font-size:29px;padding-right:22px}.list-view .item-card{grid-template-columns:125px 1fr;gap:16px}.list-view .photo-wrap{aspect-ratio:.8}.list-view .card-meta span:last-child{display:none}.list-view .card-title{font-size:21px}.list-view .card-description{font-size:11px}.list-view .card-bottom{align-items:flex-start;flex-direction:column;gap:5px}.list-view .card-meta{margin-top:0}.collection-context{font-size:10px;align-items:flex-start}.collection-context .icon{margin-top:1px;flex-shrink:0}.gate-logo{padding:25px}.gate-inner{margin-top:20px}.gate h1{font-size:38px}}@media(max-width:460px){.grid{grid-template-columns:1fr;gap:31px}.photo-wrap{aspect-ratio:1.16}.card-title{font-size:25px}.card-meta{font-size:10px}.card-description{font-size:12px;min-height:0}.interest-indicator{font-size:11px}.interest-action{font-size:12px;min-height:38px}.card-bottom{padding-top:9px}.photo-count{font-size:11px}.heart-button{width:38px;height:38px}.navigation{gap:18px}.nav-button{font-size:11px}.intro{max-width:325px}.invite-form-row{flex-wrap:wrap}.invite-form-row .button{width:100%}.copy-row{flex-wrap:wrap}.copy-row .button{width:100%}.sample-person{font-size:9px!important}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* Private uploads reuse the collection's quiet, photo-led layout. */
.navigation{min-width:0;overflow-x:auto;scrollbar-width:none}.header-actions{flex-shrink:0}
.upload-tabs{display:flex;gap:10px;margin-bottom:22px}
.upload-drop-zone{border:1px dashed #9eaf9a;border-radius:9px;background:#fff;padding:30px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:26px}
.upload-drop-zone.dragging{background:#e6ede6;border:2px solid #284e40;padding:29px 23px}
.upload-drop-zone>.icon{width:29px;height:29px;color:#64825f;margin-bottom:13px}
.upload-drop-zone h2{font-family:var(--display);font-size:27px;font-weight:400;letter-spacing:-.5px;margin:0 0 8px}
.upload-drop-zone p{color:var(--muted);font-size:12px;margin:0 0 18px}.upload-drop-zone small{font-size:10px;color:var(--muted);margin-top:14px}
.staged-section{margin:0 0 25px}.staged-heading,.saved-upload-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}
.staged-heading h2,.saved-upload-heading h2{font-family:var(--display);font-size:25px;font-weight:400;margin:0 0 6px;letter-spacing:-.4px}
.staged-heading p,.saved-upload-heading p{font-size:11px;color:var(--muted);margin:0}
.staged-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.staged-photo{display:flex;gap:11px;align-items:center;min-width:0;border:1px solid var(--line);border-radius:7px;padding:11px;background:var(--white)}
.staged-photo>img,.invalid-preview{width:54px;height:62px;border-radius:4px;object-fit:cover;flex-shrink:0}.invalid-preview{display:grid;place-items:center;background:var(--sage);color:var(--muted)}
.staged-photo-copy{flex:1;min-width:0}.staged-photo-copy strong{display:block;font-size:11px;font-weight:500;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.staged-photo-copy>span{font-size:10px;color:var(--muted)}
.stage-status{font-size:10px;margin:5px 0 0;color:var(--forest);line-height:1.5}.stage-status.error{color:#a44636}.staged-photo>.icon-button{width:24px;height:28px;flex-shrink:0}
.upload-progress-panel{border:1px solid var(--line);border-radius:7px;padding:14px 17px;margin:0 0 30px;background:#edf1e9}.upload-progress-label{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;margin-bottom:9px}
.upload-progress-panel progress{width:100%;height:6px;display:block;border:0;border-radius:8px;overflow:hidden;accent-color:var(--forest)}progress::-webkit-progress-bar{background:#d7e0d1}progress::-webkit-progress-value{background:var(--forest)}progress::-moz-progress-bar{background:var(--forest)}
.saved-upload-section{margin-top:32px}.upload-selection-actions{display:flex;align-items:center;gap:18px}.select-uploads{display:flex;gap:7px;align-items:center;font-size:11px;white-space:nowrap}
input[type=checkbox]{accent-color:var(--forest);width:16px;height:16px;cursor:pointer;margin:0}.upload-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.uploaded-photo{min-width:0}.uploaded-image{aspect-ratio:1.15;border-radius:8px;overflow:hidden;position:relative;background:#e6e6df}.uploaded-image img{width:100%;height:100%;object-fit:cover;display:block}.upload-checkbox{position:absolute;left:12px;top:12px;background:#fffffff5;border-radius:5px;padding:7px;display:flex;box-shadow:0 1px 5px #00000013;cursor:pointer}
.upload-state{position:absolute;left:10px;bottom:10px;padding:6px 8px;border-radius:5px;background:#fffffff2;display:flex;align-items:center;gap:5px;font-size:10px;color:var(--forest);max-width:calc(100% - 20px)}.upload-state .icon{width:13px;height:13px}
.uploaded-copy h3{font-size:13px;font-weight:500;margin:13px 0 5px;overflow-wrap:anywhere}.uploaded-copy>p{font-size:10px;color:var(--muted);margin:0 0 9px}.uploaded-copy .uploader-label{color:var(--forest)}
.upload-preview-dialog{padding:30px}.upload-preview-dialog h2{font-family:var(--display);font-size:26px;font-weight:400;letter-spacing:-.5px;margin:0 25px 20px 0;overflow-wrap:anywhere}.upload-preview-dialog>img{display:block;max-width:100%;max-height:60dvh;margin:0 auto;border-radius:5px}.upload-preview-dialog p{font-size:12px;color:var(--muted);margin:20px 0}
.remove-upload-list{padding-left:18px;font-size:12px;color:var(--muted);max-height:200px;overflow:auto;overflow-wrap:anywhere;margin:20px 0}.remove-upload-actions{display:flex;gap:10px;justify-content:flex-end}.button.danger{background:#954e3d;border-color:#954e3d;color:white}.button.danger:hover{background:#803f30}
@media(max-width:1100px){.site-header{height:auto;min-height:118px;flex-wrap:wrap;padding-top:18px;row-gap:10px}.header-actions{margin-left:auto}.navigation{order:3;flex-basis:100%;height:42px}.upload-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.staged-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.site-header{padding-top:16px}.upload-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 16px}.staged-grid{grid-template-columns:1fr}.staged-heading{align-items:flex-start;gap:12px}.staged-heading h2,.saved-upload-heading h2{font-size:24px}.staged-heading .button{font-size:11px;padding:10px 12px;white-space:nowrap}.saved-upload-heading{flex-wrap:wrap;gap:14px}.upload-selection-actions{width:100%;justify-content:space-between}.upload-progress-label{align-items:flex-start;flex-direction:column;gap:3px}.upload-progress-label .button{font-size:11px}.upload-drop-zone{padding:25px 18px}.upload-drop-zone.dragging{padding:24px 17px}.upload-drop-zone h2{font-size:25px}.upload-preview-dialog{padding:25px 18px}.upload-preview-dialog h2{font-size:23px}}
@media(max-width:460px){.upload-grid{grid-template-columns:1fr}.uploaded-image{aspect-ratio:1.3}.uploaded-copy h3{font-size:14px}.uploaded-copy>p{font-size:11px}.upload-tabs .filter{font-size:11px;padding:8px}.upload-drop-zone small{max-width:230px;line-height:1.7}.staged-heading{flex-wrap:wrap}.staged-heading>.button{width:100%}}
@media(max-width:700px){.navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;gap:0;overflow:visible}.nav-button{height:44px;text-align:left}.nav-button.active:after{right:16px;bottom:0}}

.upload-picker-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.upload-selection-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.saved-upload-heading{align-items:flex-start}.upload-selection-actions .button{font-size:11px}.upload-collection{min-height:150px;border-radius:8px}.upload-collection.dragging{outline:2px dashed var(--forest);outline-offset:10px;background:#e6ede655}
body.drag-upload:after{content:'Drop photos or a photo folder to select them for upload';position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:16px 22px;background:var(--forest);color:white;border-radius:8px;font-size:13px;z-index:12;pointer-events:none;max-width:calc(100% - 30px);text-align:center;box-shadow:0 8px 30px #152b2426}
@media(max-width:960px){.saved-upload-heading{flex-wrap:wrap}.upload-selection-actions{justify-content:flex-start;width:100%}}
@media(max-width:460px){.upload-selection-actions .select-uploads{flex-basis:100%;margin-bottom:3px}.upload-selection-actions .button{flex:1;font-size:10px;padding:9px;min-width:110px}.upload-picker-actions .button{font-size:12px;padding:10px 13px}}
.upload-drop-zone .picker-help {max-width: 520px; margin: 14px auto 0; font-size: 11px; line-height: 1.6;}
.staged-heading .selection-help {max-width: 420px; margin-top: 7px; font-size: 11px; color: var(--muted);}
.staged-actions {display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; flex-shrink: 0;}
@media(max-width:700px){.staged-actions {justify-content: flex-start; width: 100%;}}
.photo-upload-progress {display: block; width: 100%; height: 7px; margin: 8px 0 5px; accent-color: var(--forest);}
.photo-upload-progress::-webkit-progress-bar {background: var(--sage); border-radius: 5px;}
.photo-upload-progress::-webkit-progress-value {background: var(--forest); border-radius: 5px;}
.photo-upload-progress::-moz-progress-bar {background: var(--forest); border-radius: 5px;}

.uploaded-stack{min-width:0}.stacked-image{position:relative;isolation:isolate}.stacked-image:before,.stacked-image:after{content:'';position:absolute;inset:-6px 5px 6px;background:#e8eee5;border:1px solid #c7d2c3;border-radius:8px;z-index:-1;transform:rotate(-1.5deg)}.stacked-image:before{inset:-10px 10px 10px;background:#f5f7f2;transform:rotate(1.5deg)}.uploaded-stack.dragging{outline:2px dashed var(--forest);outline-offset:8px;border-radius:8px}
.upload-name-row{display:flex;align-items:center;gap:8px;height:36px;min-width:0}.upload-name-row h3{flex:1 1 0;min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-thumbnails{display:flex;align-items:center;gap:3px;flex:0 1 auto;max-width:55%;min-width:0;overflow-x:auto;scrollbar-width:none;padding:2px}.upload-thumbnails::-webkit-scrollbar{display:none}.upload-thumbnail{flex:0 1 28px;min-width:12px;width:28px;aspect-ratio:1;height:auto;padding:1px;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer}.upload-thumbnail img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;display:block}.upload-thumbnail[aria-pressed=true]{border-color:var(--forest);background:var(--sage)}.upload-thumbnail:focus-visible,.selection-thumbnail:focus-visible{outline:2px solid var(--forest);outline-offset:1px}

.upload-selection-tray{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:900px;background:#fff;border:1px solid #c7d2c3;border-radius:10px;box-shadow:0 6px 28px #24352e26;z-index:10;padding:12px 16px;display:flex;align-items:center;gap:16px}.selection-count{font-size:12px;color:var(--forest);white-space:nowrap}.selection-thumbnails{display:flex;gap:7px;overflow-x:auto;min-width:0;flex:1;padding:3px}.selection-thumbnail{position:relative;flex:0 0 50px;width:50px;height:50px;padding:0;border:1px solid var(--line);border-radius:5px;background:var(--sage);cursor:pointer}.selection-thumbnail img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block}.selection-thumbnail>span{position:absolute;right:-2px;top:-2px;width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:var(--forest);color:#fff;font-size:14px;line-height:1}.upload-selection-tray>.button{flex-shrink:0;font-size:12px}#main:has(.upload-selection-tray){padding-bottom:160px}
@media(max-width:700px){.upload-selection-tray{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:10px 12px;bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px)}.selection-thumbnails{grid-column:1 / -1;grid-row:2}.upload-selection-tray>.button{grid-column:2;grid-row:1;padding:9px 11px;font-size:11px}}

body:has(.upload-selection-tray) .toast{bottom:110px;z-index:11}
@media(max-width:700px){body:has(.upload-selection-tray) .toast{bottom:150px}}

.uploaded-image{--upload-control-size:30px}.upload-checkbox{width:var(--upload-control-size);height:var(--upload-control-size);align-items:center;justify-content:center}.upload-image-actions{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:1}.upload-image-actions .icon-button{width:var(--upload-control-size);height:var(--upload-control-size);padding:0;background:#fffffff5;border:1px solid #ffffffcc;border-radius:5px;box-shadow:0 1px 5px #00000013;color:var(--forest);text-decoration:none}.upload-image-actions .icon-button:hover{background:var(--sage)}.upload-image-actions .remove-photo{color:#954e3d}.upload-image-actions .icon{width:16px;height:16px}.upload-image-actions .icon-button:focus-visible{outline-offset:-3px}.upload-state{max-width:calc(100% - 56px);pointer-events:none}

.photo-editor-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.photo-editor-stage{display:flex;align-items:center;justify-content:center;min-height:180px;max-height:55dvh;background:#edf1e9;border-radius:6px;overflow:hidden}.photo-editor-stage canvas{display:block;max-width:100%;max-height:55dvh;width:auto;height:auto}.photo-editor-stage canvas.crop-active{cursor:crosshair;touch-action:none}.photo-editor-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:16px 0 10px}.photo-editor-actions [data-photo-reset]{margin-right:auto}.photo-editor-toolbar .button,.photo-editor-actions .button{font-size:12px}.photo-crop-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.photo-crop-fields label{font-size:11px;color:var(--muted)}.photo-crop-fields input{display:block;width:100%;min-height:38px;border:1px solid var(--line);border-radius:4px;padding:7px;background:#fff;color:var(--ink)}#photo-crop-controls p{font-size:12px;margin:12px 0 0;color:var(--muted)}.upload-preview-dialog .error{margin:10px 0;font-size:12px}.photo-editor-stage canvas[hidden]{display:none}
.classification-summary { margin-top:12px; border-top:1px solid var(--line, #e0e5df); padding-top:10px; }
.classification-summary summary { cursor:pointer; color:#284e40; font-size:13px; line-height:1.5; }
.catalogue-result-image { width:100%; max-height:65vh; object-fit:contain; background:#f7f8f5; margin:12px 0 6px; border-radius:8px; }
.classification-summary small,.classification-dialog small { display:block; color:#737b73; font-size:12px; }
.classification-summary p { white-space:normal; line-height:1.55; margin:10px 0; }
.classification-dialog { padding:24px; min-width:0; }
.classification-dialog h2 { margin:0; font-family:Georgia,serif; font-size:28px; }
.classification-dialog section { margin:24px 0; }
.classification-dialog h3 { font-size:15px; margin-bottom:10px; }
.classification-dialog li,.classification-dialog p { font-size:14px; line-height:1.7; }
.classification-dialog ul { padding-left:20px; }
.classification-fields { display:grid; grid-template-columns:110px 1fr; gap:8px; font-size:14px; }
.classification-fields dt { color:#737b73; }
.classification-fields dd { margin:0; }
.identification-table-wrap { max-width:100%; overflow-x:auto; }
.identification-table { min-width:750px; font-size:12px; border-collapse:collapse; }
.identification-table th,.identification-table td { padding:10px; border-bottom:1px solid #e0e5df; text-align:left; vertical-align:top; white-space:normal; }
.classification-downloads { display:flex; flex-wrap:wrap; gap:8px; }
.classification-downloads a { white-space:normal; text-align:left; }
.upload-tabs { flex-wrap:wrap; }
@media (max-width:500px) { .classification-dialog { padding:18px; } .classification-dialog h2 { font-size:23px; } }
.processed-image img { object-fit:contain; background:#f7f8f5; }
.processed-upload .upload-name-row { height:48px; }
.processed-upload .upload-name-row h3 { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.4; }
.uploaded-copy .upload-date-person { display:flex; gap:6px; align-items:center; white-space:nowrap; min-width:0; margin:0 0 9px; }
.upload-date-person .upload-person { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.upload-details { margin-top:10px; border-top:1px solid #e0e5df; padding-top:9px; }
.upload-details summary { cursor:pointer; color:#284e40; font-size:12px; }
.upload-details p { font-size:12px; line-height:1.6; white-space:normal; margin:10px 0; }
.original-file-list { font-size:12px; margin:12px 0; overflow-wrap:anywhere; }
.original-file-list>div { margin:8px 0; }
.original-file-list small { display:block; color:#737b73; font-size:11px; margin-top:3px; }
.value-indicator { display:inline-flex; border:1px solid transparent; padding:4px 7px; border-radius:4px; font-size:10px; line-height:1.4; }
.value-high { background:#fff0c7; border-color:#d9b553; color:#73500e; }
.value-moderate { background:#e6ede6; border-color:#bbcdbc; color:#284e40; }
.value-utility { background:#eceeeb; border-color:#d2d6cf; color:#535d52; }
.value-unassessed { background:#f5f5f1; border-color:#dcded7; color:#646c62; }
.processed-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:4px; }
.processed-actions .button { font-size:11px; padding:5px 8px; }
.upload-person-filter { display:flex; align-items:center; gap:10px; font-size:12px; color:#737b73; margin:12px 0 24px; }
.upload-person-filter select,.invite-row select,#invite-scope { border:1px solid #d8dfd5; background:white; border-radius:5px; padding:8px; color:#24352e; max-width:100%; }
.invite-row { flex-wrap:wrap; }
.invite-row select { font-size:12px; }
#profile-name { display:block; width:100%; margin:10px 0; padding:12px; border:1px solid #d8dfd5; border-radius:5px; }
.item-comments { padding:24px; border-top:1px solid #d8dfd5; }
.item-comments h3 { font-family:Georgia,serif; font-size:22px; }
.thread-comment { margin:16px 0 16px 0; padding-left:12px; border-left:2px solid #d8dfd5; font-size:13px; }
.thread-comment small { margin-left:10px; color:#737b73; }
.thread-comment p { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; margin:8px 0 0; }
#comment-form label { font-size:13px; display:block; margin:12px 0 8px; }
#comment-body { width:100%; display:block; border:1px solid #d8dfd5; border-radius:6px; padding:10px; resize:vertical; font:inherit; font-size:13px; margin-bottom:10px; }
#comment-reply-context { font-size:12px; color:#284e40; }

.thread-comment[data-reply-depth="1"] { margin-left:16px; }
.thread-comment[data-reply-depth="2"] { margin-left:32px; }
.thread-comment[data-reply-depth="3"] { margin-left:48px; }

.contained-photo .photo-button img,.detail-main-image.processed-detail { object-fit:contain; background:#f7f8f5; }
.collection-card-preview { padding:30px; max-width:470px; margin:auto; }
.collection-card-preview>h2 { font-family:var(--display); font-size:27px; font-weight:400; padding-right:15px; }
.preview-collection-card { margin:22px 0; }
.preview-collection-card button:disabled { opacity:1; cursor:default; }
@media(max-width:500px) { .collection-card-preview { padding:20px; } }

.grid .photo-wrap,.preview-collection-card .photo-wrap { aspect-ratio:1.18; }

.previous-identification { color:var(--forest); }


.follow-up-requests { padding:0 0 0 16px; margin:8px 0 12px; list-style:disc; }
.follow-up-request { position:relative; padding:3px 34px 3px 0; margin:4px 0; min-height:28px; font-size:12px; line-height:1.5; color:var(--muted); }
.follow-up-copy { display:block; overflow-wrap:anywhere; }
.follow-up-request small { display:block; color:var(--forest); font-size:10px; }
.follow-up-request .photo-request-upload { position:absolute; top:0; right:0; width:28px; height:28px; min-height:28px; padding:5px; border:1px solid var(--line); background:var(--white); color:var(--forest); }
.photo-request-upload .icon { width:15px; height:15px; }
.classification-dialog .follow-up-requests,.detail-copy .follow-up-requests { margin:12px 0 18px; }
.classification-dialog .follow-up-request { font-size:12px; line-height:1.5; }
.processed-actions { justify-content:flex-end; }
.upload-details .value-indicator { margin-top:10px; }

/* Consistent collapsed cards; explicit details can grow independently. */
.upload-grid { align-items:start; }
.upload-grid .uploaded-image { aspect-ratio:1.18; }
.uploaded-copy { display:grid; grid-template-rows:48px 36px minmax(28px,auto); padding-top:8px; }
.uploaded-copy .upload-name-row { height:48px; }
.uploaded-copy .upload-name-row h3 { margin:0; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.4; }
.upload-meta-row { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.upload-meta-row .upload-date-person { flex:1; min-width:0; gap:5px; font-size:10px; color:var(--muted); margin:0; }
.upload-date-person time { flex-shrink:0; }
.photo-request-count { display:inline-flex; align-items:center; justify-content:center; gap:3px; flex-shrink:0; min-height:28px; padding:2px 4px; border:0; border-radius:4px; background:var(--sage); color:var(--forest); font:inherit; cursor:pointer; }
.photo-request-count .icon { width:13px; height:13px; }
.photo-request-count:focus-visible { outline:2px solid var(--forest); outline-offset:2px; }
.collection-toggle { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; border:0; background:transparent; color:var(--forest); cursor:pointer; font:inherit; font-size:10px; min-height:32px; padding:2px 0; white-space:nowrap; }
.collection-toggle:focus-visible { outline:2px solid var(--forest); outline-offset:3px; border-radius:3px; }
.collection-toggle:disabled { opacity:.6; cursor:wait; }
.toggle-track { width:27px; height:16px; border:1px solid #a5b4a4; border-radius:9px; background:#e8ece5; padding:2px; display:flex; align-items:center; }
.toggle-track>span { display:block; width:10px; height:10px; border-radius:50%; background:#7c8b7e; transition:transform .15s; }
.is-visible .toggle-track { background:var(--forest); border-color:var(--forest); }
.is-visible .toggle-track>span { background:white; transform:translateX(10px); }
.uploaded-copy .upload-details { margin:0; padding-top:4px; min-width:0; }
.upload-details summary { display:flex; align-items:center; justify-content:space-between; gap:6px; min-height:24px; list-style:none; }
.upload-details summary::-webkit-details-marker { display:none; }
.upload-details summary>.icon { width:16px; height:16px; flex-shrink:0; transition:transform .15s; }
.upload-details[open]>summary>.icon { transform:rotate(180deg); }
.upload-stage { margin:0 0 38px; }
.upload-stage-heading { display:flex; align-items:baseline; gap:12px; padding:0 0 12px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.upload-stage-heading h3 { margin:0; font-family:var(--display); font-size:23px; font-weight:400; color:var(--forest); }
.upload-stage-heading>span { font-size:11px; color:var(--muted); }
.classification-turnaround { margin:-4px 0 18px; max-width:66ch; font-size:12px; line-height:1.6; color:var(--muted); }
.classification-dialog>.collection-toggle { font-size:13px; padding:8px 0; }
@media(max-width:460px) {
  .upload-stage-heading h3 { font-size:21px; }
  .upload-meta-row .upload-date-person { font-size:11px; }
  .collection-toggle { font-size:11px; }
}
.classification-guidance { display:grid; gap:8px; margin-top:16px; padding-top:12px; border-top:1px solid #e0e5df; min-width:0; }
.classification-guidance label { font-weight:600; font-size:13px; }
.classification-guidance textarea { width:100%; min-width:0; resize:vertical; padding:9px; border:1px solid #bdcbc0; border-radius:8px; background:#fff; }
.classification-guidance p { margin:0; }
.classification-guidance .button { justify-self:start; }

.collection-heading { margin-bottom:22px; }
.collection-heading h1 { font-size:36px; letter-spacing:-.8px; margin-bottom:8px; }
.collection-heading .collection-label { margin-bottom:5px; }
.collection-heading .intro { font-size:12px; line-height:1.5; }

.collection-identification { padding:24px; border-top:1px solid var(--line); min-width:0; }
.collection-identification>h3 { font-size:18px; margin-bottom:16px; }
.collection-identification section { margin:20px 0; }
.collection-identification h3 { font-size:15px; }
.collection-identification li,.collection-identification p { font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.collection-identification small { display:block; color:var(--muted); }
/* Item record: the photograph leads; evidence and discussion follow. */
dialog:has(.detail-layout) { max-width:1040px; background:#fff; border-radius:10px; }
.detail-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; }
.detail-gallery { padding:24px; background:#f0f3ef; min-width:0; }
.detail-main-image { object-fit:contain; aspect-ratio:1.18; background:#f7f8f5; border-radius:4px; }
.detail-copy { padding:30px 32px 24px; }
.detail-copy h2 { font-size:30px; line-height:1.2; letter-spacing:-.4px; padding-right:24px; margin-bottom:14px; }
.detail-copy .detail-category { font-size:12px; margin-bottom:9px; }
.detail-copy .metadata-note { display:inline-flex; padding:0; background:none; font-size:11px; margin-bottom:12px; color:var(--muted); }
.detail-description { font-size:14px; line-height:1.65; margin-bottom:14px; }
.detail-interest { margin:20px 0 14px; padding-top:16px; border-top:1px solid var(--line); }
.detail-interest h3 { font-family:var(--body); font-size:13px; font-weight:600; margin-bottom:10px; }
.detail-copy>.button[data-interest] { width:100%; min-height:40px; }
.detail-copy>.detail-note { margin:8px 0 0; font-size:11px; }
.detail-facts { font-size:12px; gap:12px; margin:16px 0; padding:14px 0; }
.detail-gallery .gallery-controls { gap:7px; flex-wrap:wrap; margin-top:12px; }
.detail-gallery .thumb { width:48px; height:42px; border-radius:4px; }
.detail-gallery .gallery-counter { font-size:11px; }
.collection-identification { padding:24px 32px; }
.collection-identification>h3 { font-family:var(--body); font-size:18px; margin-bottom:18px; }
.classification-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 24px; margin:0 0 20px; font-size:13px; }
.classification-fields>div { min-width:0; }
.classification-fields dt { font-size:11px; margin-bottom:4px; color:#5f6b64; }
.classification-fields dd { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.value-rationale { padding:12px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:#5f6b64; }
.value-rationale strong { display:block; color:var(--ink); font-weight:500; margin-bottom:4px; }
.evidence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 32px; margin:20px 0; }
.collection-identification .evidence-section,.classification-dialog .evidence-section { margin:0; min-width:0; }
.evidence-section h3 { font-size:13px; font-family:var(--body); font-weight:600; margin:0 0 9px; }
.evidence-section ul,.identification-sources ul { padding-left:18px; margin:0; }
.evidence-section li { margin-bottom:8px; }
.collection-identification .identification-sources,.collection-identification .identification-downloads { margin:20px 0 0; padding-top:16px; border-top:1px solid var(--line); }
.identification-sources a { text-decoration-color:#9aad9f; text-underline-offset:3px; overflow-wrap:anywhere; }
.classification-downloads { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; }
.download-link { display:flex; align-items:flex-start; gap:7px; font-size:12px; line-height:1.5; text-decoration:none; color:var(--forest); min-width:0; padding:4px 0; }
.download-link:hover span { text-decoration:underline; text-underline-offset:3px; }
.download-link .icon { width:15px; height:15px; margin-top:2px; }
.item-comments { padding:24px 32px; background:#f7f8f5; }
.item-comments>h3 { font-family:var(--body); font-size:18px; margin-bottom:18px; }
.item-comments #comment-form { max-width:620px; }
.item-comments textarea { background:#fff; min-height:86px; }
@media(max-width:700px) {
  .detail-layout { grid-template-columns:1fr; }
  .detail-gallery { padding:16px; }
  .detail-copy { padding:20px; }
  .detail-copy h2 { font-size:26px; padding-right:0; }
  .collection-identification,.item-comments { padding:20px; }
  .classification-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; }
  .evidence-grid { grid-template-columns:1fr; gap:18px; }
  .classification-downloads { grid-template-columns:1fr; }
}

.detail-gallery .thumb { padding:2px; overflow:hidden; flex-shrink:0; }
.detail-gallery .thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.detail-copy>[data-edit] { width:auto; min-height:0; padding:4px 0; font-size:11px; justify-content:flex-start; }

.detail-copy>[data-edit] { margin:0; }

/* Shared popup language: readable records, compact forms and clear actions. */
.collection-upload { display:flex; flex-direction:column; align-items:flex-end; gap:9px; max-width:290px; padding-top:8px; flex-shrink:0; }
.collection-upload .button { min-height:44px; padding:11px 18px; font-size:13px; }
.collection-upload p { margin:0; font-size:12px; line-height:1.5; color:var(--muted); text-align:right; }
.collection-heading { gap:24px; }
#dialog { background:#fff; border-radius:10px; max-width:900px; scrollbar-gutter:stable; }
#dialog:has(.simple-dialog) { max-width:520px; }
#dialog:has(#invite-form) { max-width:700px; }
#dialog:has(.collection-card-preview) { max-width:520px; }
#dialog:has(.upload-preview-dialog) { max-width:1000px; }
#dialog:has(.detail-layout) { max-width:1040px; }
.popup-close { position:sticky; top:0; z-index:20; height:0; }
.popup-close .dialog-close { top:14px; right:14px; width:36px; height:36px; background:#fff; border:1px solid var(--line); box-shadow:0 2px 8px #24352e0a; }
#dialog button:focus-visible,#dialog a:focus-visible,.collection-upload button:focus-visible { outline:2px solid var(--forest); outline-offset:3px; }
#dialog .simple-dialog,#dialog .classification-dialog,#dialog .collection-card-preview,#dialog .upload-preview-dialog { padding:30px; max-width:none; margin:0; min-width:0; }
#dialog .simple-dialog h2,#dialog .classification-dialog h2,#dialog .collection-card-preview>h2,#dialog .upload-preview-dialog h2 { font-family:var(--display); font-size:28px; font-weight:400; line-height:1.2; letter-spacing:-.5px; padding-right:38px; margin:0 0 18px; overflow-wrap:anywhere; }
#dialog .eyebrow { margin:0 44px 10px 0; font-size:11px; line-height:1.5; }
#dialog .simple-dialog>p { margin:0 0 22px; max-width:none; font-size:14px; line-height:1.7; }
#dialog .detail-note { font-size:12px; line-height:1.6; }
#dialog .simple-dialog label { margin:20px 0 8px; font-size:13px; }
#dialog .simple-dialog input,#dialog .simple-dialog select { min-height:44px; font:13px var(--body); color:var(--ink); border:1px solid var(--line); border-radius:5px; background:#fff; padding:10px 12px; }
#dialog .button { min-height:40px; font-size:13px; }
#dialog .button.text { min-height:0; }
#dialog #profile-form>.button { margin-top:22px; width:100%; }
#dialog .error:empty { display:none; }
.dialog-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding-top:20px; border-top:1px solid var(--line); }
#dialog .account-details { padding:4px 0 22px; }
#dialog .account-invite { padding:18px; margin-bottom:22px; border:1px solid var(--line); border-radius:6px; background:#f0f3ef; }
#dialog .account-invite h3 { font:600 14px var(--body); margin:0 0 8px; }
#dialog .account-invite .detail-note { margin:0 0 14px; }
#dialog .account-invite-code { margin-top:14px; }
#dialog .account-invite-code summary { display:flex; align-items:center; justify-content:space-between; cursor:pointer; font-size:12px; color:var(--forest); list-style:none; }
#dialog .account-invite-code summary::-webkit-details-marker { display:none; }
#dialog .account-invite-code summary .icon { width:16px; height:16px; }
#dialog .account-invite-code[open] summary .icon { transform:rotate(180deg); }
#dialog .account-invite-code .copy-row { margin-top:12px; }
#dialog .invite-form-row { align-items:stretch; gap:10px; }
#dialog #invite-scope { flex:1; min-width:0; }
#dialog .invite-list { margin-top:24px; }
#dialog .invite-list h3 { font:600 14px var(--body); margin-bottom:12px; }
#dialog .invite-row { display:grid; grid-template-columns:32px minmax(0,1fr) 92px auto; gap:10px; padding:12px 0; border-bottom:1px solid #eef1ec; }
#dialog .invite-label { min-width:0; overflow-wrap:anywhere; font-size:13px; }
#dialog .invite-label small { font-size:11px; margin-top:4px; }
#dialog .invite-row select { width:92px; min-height:40px; padding:8px; }
#dialog .invite-row .button { font-size:12px; }
#dialog .created-link { padding:16px; background:#f0f3ef; border:1px solid var(--line); }
#dialog .copy-row input { flex:1; min-width:0; }
#dialog .remove-upload-list { font-size:13px; line-height:1.7; background:#f7f8f5; border-radius:5px; padding:14px 14px 14px 32px; }
#dialog .remove-upload-actions { padding-top:18px; border-top:1px solid var(--line); flex-wrap:wrap; }
#dialog .catalogue-result-image { display:block; width:100%; max-height:440px; aspect-ratio:1.18; object-fit:contain; background:#f7f8f5; margin:16px 0 8px; border-radius:5px; }
#dialog .classification-dialog>small { font-size:11px; line-height:1.6; margin-bottom:22px; }
#dialog .classification-dialog>.collection-toggle { margin-top:16px; border-top:1px solid var(--line); padding-top:18px; }
#dialog .classification-dialog>.button { margin-top:12px; }
#dialog .classification-dialog .gallery-controls { flex-wrap:wrap; margin:10px 0 16px; }
#dialog .classification-dialog .thumb { width:52px; height:52px; overflow:hidden; flex-shrink:0; }
#dialog .classification-dialog .thumb img { display:block; width:100%; height:100%; object-fit:cover; }
#dialog .classification-dialog .thumb[aria-pressed=true] { border-color:var(--forest); }
#dialog .collection-card-preview>.button { margin-top:20px; }
#dialog .photo-editor-toolbar { margin-bottom:16px; }
#dialog .photo-editor-stage { background:#f0f3ef; }
#dialog .photo-editor-actions { border-top:1px solid var(--line); padding-top:18px; gap:10px; }
#dialog .photo-crop-fields { gap:12px; margin:16px 0; }
#dialog #photo-crop-controls .button { margin:0 8px 6px 0; }
@media(max-width:700px) {
  .collection-heading { flex-wrap:wrap; gap:18px; }
  .collection-upload { align-items:flex-start; max-width:none; padding-top:0; gap:7px; }
  .collection-upload p { text-align:left; }
  #dialog .simple-dialog,#dialog .classification-dialog,#dialog .collection-card-preview,#dialog .upload-preview-dialog { padding:22px 20px; }
  #dialog .simple-dialog h2,#dialog .classification-dialog h2,#dialog .collection-card-preview>h2,#dialog .upload-preview-dialog h2 { font-size:26px; padding-right:32px; }
  .popup-close .dialog-close { right:10px; top:10px; }
  #dialog .classification-dialog .evidence-grid { grid-template-columns:1fr; }
  #dialog .photo-crop-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:460px) {
  #dialog .invite-row { grid-template-columns:32px minmax(0,1fr) auto; }
  #dialog .invite-row select { grid-column:2; grid-row:2; width:100%; }
  #dialog .invite-row [data-revoke] { grid-column:3; grid-row:2; }
  #dialog .copy-row .button { width:100%; }
  #dialog .photo-editor-actions [data-photo-reset] { flex-basis:100%; margin-right:0; }
  #dialog .photo-editor-actions .button:not([data-photo-reset]) { flex:1; }
  #dialog .dialog-actions .button { flex:1; }
}
@media(max-width:700px) { .collection-upload { max-width:100%; min-width:0; } }

/* Member register: names and access first, activity disclosed on request. */
.member-count { display:inline-flex; align-items:center; gap:5px; border:0; background:none; padding:4px 0; font-size:12px; color:var(--forest); }
button.member-count { text-decoration:underline; text-decoration-color:#b3c3b8; text-underline-offset:4px; }
.member-count .icon { width:14px; height:14px; transform:rotate(-90deg); }
.members-heading { align-items:center; }
.members-toolbar { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:24px; }
.members-toolbar .search-box { width:320px; min-width:0; }
.members-toolbar p { margin:0; color:var(--muted); font-size:12px; max-width:390px; }
.member-list { background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.member-record { padding:24px 28px 0; border-bottom:1px solid var(--line); }
.member-record:last-child { border-bottom:0; }
.member-row { display:grid; grid-template-columns:minmax(0,1fr) 150px 185px; align-items:center; gap:30px; }
.member-person { display:flex; align-items:center; gap:14px; min-width:0; }
.member-person>.avatar { width:38px; height:38px; font-size:13px; flex-shrink:0; }
.member-person h2 { font:400 23px/1.3 var(--display); margin:0 0 7px; overflow-wrap:anywhere; }
.member-person h2 small { font:12px var(--body); color:var(--muted); }
.member-state { font-size:11px; color:var(--forest); background:#edf2ec; border-radius:4px; padding:3px 7px; }
.member-state.is-revoked { color:#844b3d; background:#f6eeea; }
.member-badges { display:flex; flex-wrap:wrap; gap:6px; }
.member-state.is-hidden { color:#66634c; background:#f1f0e8; }
.member-example-role { font-size:12px; color:var(--muted); }
.member-moderation { display:grid; gap:18px; margin:18px 0; padding-top:18px; border-top:1px solid var(--line); }
.member-moderation p { margin:7px 0 0; }
.member-moderation .member-danger { color:#844b3d; border-color:#d8c2ba; }
.member-submissions-note { font-size:11px; color:var(--muted); }
.member-role { font-size:11px; color:var(--muted); }
.member-role select { display:block; margin-top:5px; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--ink); min-height:40px; padding:8px 10px; width:100%; font-size:13px; }
.member-actions { display:flex; justify-content:flex-end; }
.member-actions .button { font-size:12px; }
.member-owner-role,.member-owner-note { font-size:12px; color:var(--muted); }
.member-activity>summary { display:flex; align-items:center; justify-content:space-between; gap:14px; list-style:none; cursor:pointer; min-height:52px; margin-top:14px; font-size:12px; color:var(--muted); }
.member-activity>summary::-webkit-details-marker { display:none; }
.member-detail-label { display:flex; align-items:center; gap:8px; color:var(--forest); white-space:nowrap; }
.member-detail-label .icon { width:16px; height:16px; }
.member-activity[open] .member-detail-label .icon { transform:rotate(180deg); }
.member-activity-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr); gap:28px; padding:20px 0 26px; border-top:1px solid var(--line); }
.member-activity-body section { min-width:0; }
.member-activity-body h3 { font:600 13px var(--body); margin:0 0 10px; }
.member-activity-body p { font-size:12px; color:var(--muted); line-height:1.7; margin:0 0 14px; }
.member-activity-body .button { font-size:12px; min-height:36px; padding:8px 10px; }
.member-upload-stages { margin:14px 0; padding:0; list-style:none; }
.member-upload-stages li { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:12px; margin-bottom:6px; }
.member-upload-stages strong { font-weight:500; color:var(--ink); }
.member-interest-list { padding:0; margin:0; list-style:none; }
.member-interest-list li { font-size:13px; margin:0 0 12px; }
.member-interest-list small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.member-item-link { display:block; padding:0; text-align:left; background:none; border:0; color:var(--forest); text-decoration:underline; text-decoration-color:#b3c3b8; text-underline-offset:3px; overflow-wrap:anywhere; }
.members-empty { padding:18px 28px; font-size:13px; color:var(--muted); }
#dialog .simple-dialog>p.renew-invite-note { margin-top:22px; margin-bottom:12px; }
@media(max-width:960px) {
  .member-row { grid-template-columns:minmax(0,1fr) 130px 166px; gap:18px; }
  .member-record { padding:22px 22px 0; }
  .member-activity-body { gap:20px; }
}
@media(max-width:700px) {
  .members-heading { align-items:flex-start; }
  .members-toolbar { flex-direction:column; align-items:flex-start; gap:12px; }
  .members-toolbar .search-box { width:100%; }
  .member-row { grid-template-columns:minmax(0,1fr) auto; gap:14px; }
  .member-person { grid-column:1/-1; }
  .member-role { max-width:150px; }
  .member-actions { grid-column:2; justify-content:flex-end; align-self:end; }
  .member-owner-role,.member-actions:has(.member-owner-note) { display:none; }
  .member-activity-body { grid-template-columns:1fr; gap:24px; }
  .member-activity-body .member-invite-facts { padding-top:18px; border-top:1px solid var(--line); }
  .member-person h2 { font-size:21px; }
  .member-activity>summary { font-size:11px; gap:8px; }
}
@media(max-width:380px) {
  .member-record { padding:20px 16px 0; }
  .member-row { grid-template-columns:1fr; gap:16px; }
  .member-person { align-items:flex-start; }
  .member-role { max-width:170px; }
  .member-actions { grid-column:auto; }
  .member-activity>summary { align-items:flex-start; }
  .member-detail-label { gap:4px; }
}

/* Collection header: keep the controls compact so the photographs lead. */
.site-header { gap:32px; }
.navigation { gap:24px; }
.header-actions { gap:12px; }
.catalogue-heading { align-items:center; margin-bottom:24px; gap:24px; }
.collection-title { min-width:0; }
.collection-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin-bottom:8px; }
.collection-title-row h1 { margin:0; font-size:38px; line-height:1.15; }
.collection-title-row .member-count { font-size:12px; }
.catalogue-heading .intro { max-width:none; }
.catalogue-heading .collection-upload { padding:0; gap:7px; max-width:270px; }
.catalogue-heading .collection-upload p { font-size:11px; }
.catalogue-controls { margin-bottom:24px; padding-bottom:15px; border-bottom:1px solid var(--line); }
.catalogue-controls .toolbar { display:grid; grid-template-columns:280px minmax(0,1fr) auto; gap:16px; margin-bottom:16px; }
.catalogue-controls .search-box { width:100%; min-width:0; }
.catalogue-controls .search-box input { min-height:44px; font-size:13px; }
.catalogue-controls .filter-bar { min-width:0; gap:4px; }
.catalogue-controls .filter { padding:8px 11px; }
.catalogue-controls .view-switch { margin:0; order:initial; }
.catalogue-controls .result-line { margin:0; min-height:28px; font-size:12px; }
.catalogue-controls .sort-select { font-size:12px; }
@media(max-width:1200px) {
  .site-header { gap:24px; }
  .navigation { gap:22px; }
  .catalogue-controls .toolbar { grid-template-columns:minmax(0,1fr) auto; gap:12px; }
  .catalogue-controls .search-box { max-width:420px; }
  .catalogue-controls .filter-bar { grid-column:1/-1; grid-row:2; }
  .catalogue-controls .view-switch { grid-column:2; grid-row:1; }
}
@media(max-width:700px) {
  .site-header { padding:14px 22px 0; min-height:0; column-gap:12px; row-gap:12px; }
  .navigation { display:flex; flex-wrap:nowrap; gap:20px; height:44px; flex-basis:100%; max-width:100%; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
  .navigation::-webkit-scrollbar { display:none; }
  .nav-button { flex-shrink:0; height:44px; padding:0 1px; font-size:12px; }
  .nav-button.active:after { left:0; right:0; }
  main { padding-top:24px; }
  .catalogue-heading { display:block; margin-bottom:20px; }
  .collection-title-row { justify-content:space-between; gap:8px 14px; margin-bottom:7px; }
  .collection-title-row h1 { font-size:34px; }
  .catalogue-heading .collection-upload { flex-direction:row; align-items:center; gap:12px; max-width:none; margin-top:16px; }
  .catalogue-heading .collection-upload .button { flex-shrink:0; padding:10px 13px; min-height:42px; font-size:12px; }
  .catalogue-heading .collection-upload p { text-align:left; max-width:180px; font-size:11px; }
  .catalogue-controls { margin-bottom:20px; padding-bottom:12px; }
  .catalogue-controls .toolbar { gap:12px; margin-bottom:10px; }
  .catalogue-controls .search-box { max-width:none; }
  .catalogue-controls .filter-bar { overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; }
  .catalogue-controls .filter { font-size:11px; min-height:38px; padding:8px 10px; }
  .catalogue-controls .result-line { font-size:11px; gap:10px; }
  .catalogue-controls .sort-select { max-width:145px; font-size:11px; }
}
@media(max-width:380px) {
  .collection-title-row h1 { font-size:31px; }
  .catalogue-heading .collection-upload { gap:10px; }
  .catalogue-heading .collection-upload p { font-size:10px; }
  .catalogue-controls .search-box input { font-size:12px; }
  .member-activity>summary>span:first-child { max-width:calc(100% - 105px); }
}

/* Member register: compact identity rows, with considered access controls. */
.members-heading { margin-bottom:24px; }
.members-heading h1 { margin-bottom:8px; }
.members-heading .intro { font-size:13px; }
.members-toolbar { gap:24px; margin-bottom:20px; }
.member-row { gap:24px; }
.member-person h2 { font-size:22px; }
.member-activity-body { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1.35fr); gap:28px; }
.member-activity-body .member-invite-facts { border-left:1px solid var(--line); padding-left:24px; }
.member-moderation { gap:14px; padding-top:14px; margin:16px 0; }
.member-moderation>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; }
.member-moderation>div>p { grid-column:1; grid-row:1; margin:0; font-size:11px; line-height:1.6; }
.member-moderation>div>.button { grid-column:2; grid-row:1; white-space:nowrap; min-width:114px; }
.member-secondary-actions { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--line); padding-top:14px; }
.member-secondary-actions .member-delete { color:#844b3d; font-size:12px; }
.member-delete .icon { width:14px; height:14px; }
.delete-member-photos { margin:20px 0; padding:16px; border:1px solid var(--line); border-radius:6px; background:#f7f8f5; }
#dialog .delete-member-photos p { margin-bottom:14px; font-size:13px; line-height:1.6; }
#dialog .delete-member-photos label { display:flex; gap:10px; font-size:13px; line-height:1.6; margin:0; }
.delete-member-photos input { width:16px; height:16px; flex-shrink:0; margin-top:3px; accent-color:#844b3d; }
.button.member-delete-confirm { color:#fff; background:#844b3d; border-color:#844b3d; }
.button.member-delete-confirm:hover { background:#6f3e33; }
@media(max-width:1000px) {
  .member-activity-body { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .member-activity-body .member-invite-facts { grid-column:1/-1; border-left:0; padding:18px 0 0; border-top:1px solid var(--line); }
}
@media(max-width:700px) {
  .member-row { gap:14px; }
  .members-heading { gap:16px; }
  .members-heading h1 { font-size:32px; }
  .members-heading>.button { min-height:42px; padding:10px 13px; font-size:12px; }
  .member-activity-body { grid-template-columns:1fr; gap:22px; }
  .member-activity-body .member-invite-facts { grid-column:auto; }
}
@media(max-width:380px) {
  .member-row { gap:14px; }
  .member-moderation>div { gap:10px; }
  .member-moderation>div>.button { min-width:104px; padding:8px; font-size:11px; }
}
