.searchable-native { position:absolute!important; width:1px!important; height:1px!important; opacity:0; pointer-events:none; }
.searchable-lookup { position:relative; min-width:0; }
.searchable-input { padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23748070' stroke-width='1.5'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.searchable-popover { position:absolute; z-index:1040; top:calc(var(--lookup-input-height, 46px) + 4px); left:0; right:0; background:#fff; border:1px solid #d9e4d5; box-shadow:0 12px 30px #24362322; border-radius:10px; padding:6px; }
.searchable-options { max-height:230px; overflow-y:auto; overscroll-behavior:contain; }
.searchable-lookup.drop-up .searchable-popover { top:auto!important; bottom:calc(100% + 4px); }
.searchable-option,.searchable-add { display:block; width:100%; border:0; background:#fff; color:#344333; text-align:left; padding:11px 12px; border-radius:6px; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.searchable-option:hover,.searchable-option.active,.searchable-option[aria-selected="true"] { background:#edf7ec; color:#187843; }
.searchable-clear { color:#7e897a; }
.searchable-add { background:#fff5e9; color:#aa580b; margin-top:5px; }
.searchable-empty { margin:8px 12px; color:#798474; font-size:13px; }
.searchable-help { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:7px; }
.lookup-request-link { border:0; background:none; padding:0; color:#267b49; font-size:12px; text-align:left; }
.lookup-request-link:disabled { color:#8e9889; }
.lookup-request-status:empty { display:none; }
.searchable-popover[hidden],.searchable-empty[hidden],.searchable-add[hidden] { display:none!important; }
.lookup-review-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,400px); gap:25px; padding:25px; margin-bottom:18px; background:#fff; border:1px solid #e1e7dc; border-radius:12px; }
.lookup-review-card h2 { font-size:21px; margin:12px 0 6px; overflow-wrap:anywhere; }
.lookup-review-card p { font-size:14px; overflow-wrap:anywhere; }.lookup-review-card small { color:#788572; }
.address-copy-option { display:flex; align-items:flex-start; gap:12px; padding:16px 18px; margin:16px 0 22px; border:1px solid #d5e6d0; border-radius:10px; background:#f0f8ed; }
.address-copy-option input { flex-shrink:0; margin-top:4px; }.address-copy-option label { font-weight:600; font-size:15px; }.address-copy-option small { display:block; font-weight:400; color:#71806a; margin-top:4px; }
.messages-page .page-main { max-width:1440px; width:calc(100% - 48px); padding:28px 0 24px; }
.portal-messages-page { max-width:none; }
.portal-section-heading { margin-bottom:22px; }
.portal-messages-page .portal-section-heading h1 { font-size:28px; margin-bottom:7px; line-height:1.2; }
.portal-messages-page .portal-section-heading p { font-size:14px; line-height:1.5; }
.portal-messenger { grid-template-columns:minmax(260px,320px) minmax(0,1fr); height:calc(var(--chat-viewport-height, 100dvh) - var(--messenger-top, 210px) - 24px); min-height:360px; max-height:none; border-color:#dce5d8; border-radius:16px; box-shadow:0 8px 32px #22331a08; }
.portal-inbox-tabs { padding:6px 20px 0; gap:22px; }.portal-inbox-tabs button { font-size:13px; padding:16px 0; }.portal-inbox-tabs span { font-size:11px; }
.portal-inbox-note { font-size:12px; padding:13px 20px; color:#7a8874; }
.portal-inbox-list { scrollbar-width:thin; }.portal-inbox-list.is-empty { display:flex; align-items:center; justify-content:center; }
.portal-inbox-empty { padding:25px 20px; }.portal-inbox-empty>.portal-icon { width:35px; height:35px; margin-bottom:14px; }.portal-inbox-empty h2 { font-size:17px; line-height:1.4; color:#3b4934; }.portal-inbox-empty p { font-size:13px; line-height:1.7; margin:12px 0 18px; }
.portal-inbox-copy strong { font-size:14px; }.portal-message-preview { font-size:13px; }.portal-inbox-copy small { font-size:11px; }
.portal-chat-welcome { max-width:510px; padding:35px; }.portal-chat-welcome>.portal-icon { width:64px; height:64px; padding:15px; border-radius:20px; background:#eff7eb; color:#34945b; margin-bottom:20px; }.portal-welcome-tag { color:#7a8a70; text-transform:uppercase; letter-spacing:1.5px; font-size:10px; margin-bottom:12px; }.portal-chat-welcome h2 { font-size:25px; line-height:1.35; color:#2a3826; }.portal-chat-welcome p { font-size:14px; line-height:1.8; color:#7b8874; margin:16px 0 24px; }
.portal-chat-header { padding:16px 22px; background:#f5f8f2; border-bottom-color:#e2eadd; }.portal-chat-header strong { font-size:16px; overflow-wrap:anywhere; }.portal-chat-header p { font-size:12px; color:#829078; }
.portal-chat-trust { font-size:11px; color:#7b8970; padding:9px 16px; }.portal-message-history { padding:16px 24px; min-height:50px; scrollbar-width:thin; background:#fafcf8; }.portal-message-bubble p { font-size:14px; line-height:1.65; }.portal-message-bubble small { font-size:10px; }.portal-message-status { font-size:11px; padding:8px 20px; }
.portal-composer { padding:14px 20px 8px; align-items:flex-end; }.portal-composer textarea { font-size:15px; min-height:62px; max-height:160px; border-color:#d7e0d0; border-radius:12px; }.portal-composer button { width:46px; height:46px; border-radius:13px; margin-bottom:7px; }.portal-composer-note { font-size:10px; color:#8b9683; margin:0 20px 12px; }
@media(max-width:991px) and (min-width:768px) { .portal-messenger { grid-template-columns:260px minmax(0,1fr); } }
@media(max-width:767px) { .searchable-input { font-size:16px!important; min-height:46px; }.searchable-option,.searchable-add { min-height:44px; font-size:16px; }.lookup-request-link { min-height:44px; }.searchable-popover { top:50px; }.lookup-review-card { grid-template-columns:minmax(0,1fr); padding:20px; }.searchable-options { max-height:220px; } }
@media(max-width:767px) {
 .messages-page .page-main { width:100%; padding:20px 16px; }
 .portal-messages-page .portal-section-heading h1 { font-size:25px; }
 .portal-messenger { height:auto; min-height:0; border-radius:12px; }
 .portal-messages-page.has-conversation .portal-chat { height:calc(var(--chat-viewport-height, 100dvh) - 154px); min-height:260px; }
 .portal-messages-page:not(.has-conversation) .portal-messenger { min-height:320px; }
 .portal-inbox { max-height:none; }.portal-chat-header { padding:13px 14px; }.portal-chat-header p { font-size:11px; }.portal-message-history { padding:12px 14px; }.portal-composer { padding:12px 12px 6px; }.portal-composer textarea { font-size:16px; }.portal-composer button { width:44px; height:44px; }.portal-composer-note { margin:0 12px 10px; }
}
/* Member-controlled contact and photo permissions. */
.access-notification-form { margin:0; }.access-notification-form button.portal-notification-row { width:100%; text-align:left; font:inherit; cursor:pointer; border:1px solid #e3e9e1; background:#fff; }.access-notification-form .portal-notification-row.is-unread { background:#f0f8f1; border-color:#cde2d0; }.access-notification-form .portal-notification-row.is-read { background:#fff; }.notification-copy { min-width:0; flex:1; overflow-wrap:anywhere; }.notification-new { display:inline-block; margin-left:10px; padding:2px 8px; border-radius:12px; background:#147c48; color:#fff; font-size:11px; font-weight:600; }.notification-read-all { display:flex; justify-content:flex-end; margin:0 0 20px; }.access-request-card { scroll-margin-top:110px; }
.portal-mobile-notification { position:relative; align-items:center; justify-content:center; width:36px; height:40px; margin-left:auto; color:#147c48!important; flex-shrink:0; }.portal-mobile-notification .portal-count { position:absolute; top:0; right:-3px; }.portal-mobile-notification>.portal-icon { width:25px; height:25px; }
@media(max-width:991px) { .member-portal .brand-navbar { column-gap:10px; }.member-portal .portal-mobile-notification { display:flex; }.member-portal .brand { min-width:0; }.member-portal .navbar-toggler { margin-left:0; flex-shrink:0; } }
@media(max-width:359px) { .member-portal .brand>span { font-size:22px; }.member-portal .brand>svg { width:30px; }.member-portal .brand { gap:8px; } }
@media(max-width:575px) { .notification-read-all .btn { width:100%; min-height:44px; white-space:normal; }.notification-new { margin-left:7px; }.access-notification-form .portal-notification-row { gap:12px; padding:16px 12px; }.notification-copy strong { font-size:15px; } }
.has-protected-photos .portal-profile-intro { align-self:start; padding-top:12px; }
.photo-privacy-choice .form-check { display:flex; gap:10px; align-items:flex-start; padding-left:0; margin-bottom:0; }.photo-privacy-choice .form-check-input { float:none; flex-shrink:0; margin:3px 0 0; }.photo-privacy-choice .form-check-label { min-width:0; }
.access-requests-page { max-width:1180px; margin:0 auto; }
.access-page-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:12px 0 26px; }
.access-page-heading h1 { font-size:30px; margin:8px 0 12px; }.access-page-heading p { max-width:760px; color:#66716a; line-height:1.7; margin:0; }.access-page-heading>.btn { flex-shrink:0; }
.access-tabs { display:flex; gap:28px; border-bottom:1px solid #dfe7df; margin-bottom:28px; }.access-tabs a { padding:14px 0; font-weight:600; color:#147c48; text-decoration:none; }.access-tabs span { background:#eaf4ec; padding:2px 8px; border-radius:20px; margin-left:6px; font-size:12px; }
.access-section { scroll-margin-top:105px; margin-bottom:38px; }.access-section>h2 { font-size:22px; }.access-request-card { display:flex; align-items:center; gap:20px; padding:24px; margin:14px 0; background:#fff; border:1px solid #e1e8e0; border-radius:16px; }.access-request-icon { flex-shrink:0; display:grid; place-items:center; width:48px; height:48px; border-radius:14px; background:#eef7f0; color:#147c48; }.access-request-icon svg { width:24px; height:24px; }.access-request-description { flex:1; min-width:0; }.access-request-title { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }.access-request-title h3 { font-size:18px; overflow-wrap:anywhere; margin:0; }.access-request-description p { margin:8px 0; color:#66716a; }.access-request-description time { font-size:13px; color:#6e766f; }.access-profile-link { margin-left:18px; color:#147c48; font-size:13px; }.access-status { border-radius:20px; padding:4px 10px; font-size:12px; font-weight:600; background:#f4f1e9; color:#735c2d; }.access-status.is-approved { background:#e7f5eb; color:#147c48; }.access-status.is-rejected,.access-status.is-revoked { background:#f8efed; color:#994334; }.access-response-form { display:flex; gap:10px; flex-wrap:wrap; }.access-response-form .btn { font-size:14px; padding:11px 16px; }
.access-empty { text-align:center; padding:35px 20px; background:#fff; border:1px solid #e1e8e0; border-radius:16px; }.access-empty h3 { font-size:19px; margin:12px 0; }.access-empty p { color:#66716a; }.access-empty svg { width:30px; height:30px; color:#62926d; }
.access-request-form { max-width:540px; }.access-request-form .form-select { margin-bottom:14px; }.access-request-form .btn { display:inline-flex; gap:8px; align-items:center; font-size:14px; }.access-permission-note { display:flex; align-items:flex-start; gap:14px; padding:18px; background:#f5f8f3; border:1px solid #e1e8df; border-radius:12px; }.access-permission-note>svg { width:23px; height:23px; flex-shrink:0; color:#648d69; }.access-permission-note p { font-size:14px; color:#66716a; line-height:1.7; margin:7px 0; }.access-permission-note a { color:#147c48; font-size:14px; }.access-approved { color:#147c48; line-height:1.7; display:flex; gap:10px; align-items:center; }.access-approved svg { width:20px; height:20px; flex-shrink:0; }.protected-photo-panel { margin:18px 0 0; padding:18px; background:#fff; border:1px solid #e1e8df; border-radius:14px; }.protected-photo-panel h2 { display:flex; align-items:center; gap:9px; font-size:18px; margin:0 0 16px; }.protected-photo-panel h2 svg { width:21px; height:21px; }.protected-photo-panel .portal-muted { font-size:14px; line-height:1.7; }.protected-photo-panel .access-request-form .btn { width:100%; justify-content:center; white-space:normal; }
.photo-privacy-choice { padding:20px; margin:18px 0; border:1px solid #d8e7db; border-radius:12px; background:#f2f8f2; }.photo-privacy-choice small { display:block; color:#56685a; line-height:1.7; margin-top:7px; }.photo-privacy-choice p { margin:13px 0 0; font-size:13px; color:#56685a; line-height:1.7; }
@media(max-width:767px) { .access-page-heading { flex-direction:column; align-items:flex-start; gap:16px; }.access-page-heading h1 { font-size:25px; }.access-request-card { align-items:flex-start; flex-wrap:wrap; gap:14px; padding:18px; }.access-request-description { flex-basis:calc(100% - 64px); }.access-response-form { width:100%; }.access-response-form .btn { flex:1; min-height:44px; }.access-request-card>.btn { width:100%; }.access-profile-link { display:block; margin:9px 0 0; }.access-request-form .form-select { font-size:16px; }.access-permission-note { padding:14px; }.protected-photo-panel { padding:16px; }.photo-privacy-choice { padding:16px; }.photo-privacy-choice .form-check-input { width:20px; height:20px; } }
