/* Community feed (Twitter-style timeline) */
.timeline{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.composer{display:flex;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
.composer .user-avatar,.feed-post>.user-avatar{width:40px;height:40px;font-size:13px}
.composer-body{flex:1;min-width:0}
.composer textarea{display:block;width:100%;border:0;outline:none;resize:none;overflow:hidden;background:none;padding:8px 0;font:inherit;font-size:16px;line-height:1.5;color:var(--ink);min-height:40px}
.composer textarea::placeholder{color:#8f958c}
.composer textarea:focus-visible{outline:none}
.composer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;margin-top:4px;border-top:1px solid transparent;transition:border-color .2s}
.composer.focused .composer-footer,.composer.has-text .composer-footer{border-top-color:var(--line)}
.composer-audience{font-size:11px;font-weight:700;color:var(--green);opacity:0;transition:opacity .2s}
.composer.focused .composer-audience,.composer.has-text .composer-audience{opacity:1}
.composer-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.composer-count{font-size:11px;color:#8a6b1f;min-width:16px;text-align:right}
.composer.at-limit .composer-count{color:#b3261e}
.composer-ring{width:22px;height:22px;transform:rotate(-90deg);opacity:0;transition:opacity .2s}
.composer.has-text .composer-ring{opacity:1}
.composer-ring circle{fill:none;stroke:#e3e8df;stroke-width:2.4}
.composer-ring .composer-ring-progress{stroke:var(--green);stroke-dasharray:56.55;stroke-dashoffset:56.55;stroke-linecap:round;transition:stroke-dashoffset .1s,stroke .2s}
.composer.near-limit .composer-ring-progress{stroke:#d4a017}
.composer.at-limit .composer-ring-progress{stroke:#b3261e}
.composer-post{padding:10px 18px;border-radius:999px;font-size:13px}
.composer-post:disabled{opacity:.5;cursor:default;transform:none}
.composer .form-error{margin:6px 0 0}

.feed-post{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);transition:background .15s}
.feed-post:last-child{border-bottom:0}
.feed-post:hover{background:#fbfcfa}
.feed-post.highlight{background:#f3f8ef;animation:feed-highlight 2.5s ease-out forwards}
@keyframes feed-highlight{to{background:#fff}}
.feed-main,.feed-reply-main{flex:1;min-width:0}
.feed-head{display:flex;align-items:center;gap:5px;min-width:0;font-size:13px}
.feed-author{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed-handle,.feed-dot,.feed-head time,.feed-edited{color:#7c827a;white-space:nowrap}
.feed-handle{overflow:hidden;text-overflow:ellipsis}
.feed-head time{cursor:default}
.feed-head .feed-menu-wrap{margin-left:auto}
.feed-text{margin:3px 0 0;font-size:14px;line-height:1.55;color:#283127;white-space:pre-wrap;overflow-wrap:anywhere}
.feed-actions{display:flex;gap:4px;margin:8px 0 0 -8px;max-width:360px;justify-content:space-between}
.feed-action{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 8px;border:0;border-radius:999px;background:none;color:#6f766d;font-size:12px}
.feed-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.feed-action span{min-width:8px}
.feed-action.reply:hover,.feed-action.reply.active{color:#2f6fbf;background:#edf4fc}
.feed-action.like:hover{color:#d0395a;background:#fdeef2}
.feed-action.like.liked{color:#d0395a}
.feed-action.like.liked svg{fill:currentColor}
.feed-action.like.liked svg{animation:like-pop .3s ease}
@keyframes like-pop{50%{transform:scale(1.25)}}
.feed-action.share:hover{color:var(--green);background:#eef5ea}
.feed-thread{margin-top:6px;border-top:1px solid #f0f2ee}
.feed-reply{display:flex;gap:10px;padding:10px 0 0}
.user-avatar.small{width:30px;height:30px;font-size:11px}
.feed-reply .feed-head{font-size:12px}
.feed-reply .feed-text{font-size:13px}
.feed-reply-form{display:flex;align-items:center;gap:10px;padding:12px 0 2px}
.feed-reply-form input{flex:1;min-width:0;border:0;border-bottom:1px solid var(--line);padding:9px 2px;font:inherit;font-size:13px;background:none;outline:none}
.feed-reply-form input:focus{border-bottom-color:var(--green)}
.feed-reply-form .button{border-radius:999px;padding:8px 14px;font-size:12px}
.feed-loading,.feed-empty{padding:40px 20px;text-align:center;color:#7a8277}
.feed-empty h3{font:700 17px var(--serif);color:var(--ink);margin:0 0 6px}
.feed-empty p{margin:0;font-size:12px}

.feed-menu-wrap{position:relative;flex:none}
.feed-icon-button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:999px;background:transparent;color:#6f766d}
.feed-icon-button svg{width:18px;height:18px;fill:currentColor}
.feed-icon-button:hover{background:#eef5ea;color:var(--green)}
.feed-menu{position:absolute;z-index:8;right:0;top:calc(100% + 3px);min-width:230px;padding:5px;background:#fff;border:1px solid #e7eae4;border-radius:12px;box-shadow:0 12px 30px rgba(26,37,28,.15)}
.feed-menu[hidden]{display:none}
.feed-menu button{display:block;width:100%;min-height:40px;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:#30392f;text-align:left;font-size:13px;font-weight:600}
.feed-menu button:hover,.feed-menu button:focus-visible{background:#f0f4ec}
.feed-menu button.danger{color:#b3261e}
.feed-edit-form{display:grid;gap:8px;margin-top:4px}
.feed-edit-form textarea{width:100%;min-height:80px;padding:10px;border:1px solid #dfe4dc;border-radius:10px;font:inherit;font-size:14px;resize:vertical}
.feed-edit-actions{display:flex;gap:8px;justify-content:flex-end}
.feed-checkbox{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:12px;color:#4f584e}

/* Moderator warning shown to users */
.warning-notice{text-align:center;padding:4px 4px 0}
.warning-icon{width:46px;height:46px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#fff2e0;color:#a35f00;font:800 22px var(--serif)}
.warning-notice h2{font:700 22px var(--serif);letter-spacing:-.6px;margin:8px 0 12px}
.warning-reason{font-size:14px;line-height:1.6;color:#30392f;margin:0 0 12px}
.warning-post{margin:0 0 12px;padding:10px 14px;border-left:3px solid #e3c08a;background:#fbf7f0;text-align:left;font-size:12px;color:#5f685d;white-space:pre-wrap}

/* Shared dialog bits */
.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}
.detail-title{font:700 21px var(--serif);margin:5px 0}
.detail-location,.detail-period{font-size:10px;color:#858b83;font-weight:400}
.saved-thumb{width:53px;height:44px;border-radius:6px;background:#eaede7;display:grid;place-items:center;color:var(--green)}
.admin-post-text{max-width:420px;white-space:pre-wrap;overflow-wrap:anywhere}

@media(max-width:640px){
  .timeline{border-radius:12px;margin:0 -2px}
  .composer{padding:12px}
  .feed-post{padding:12px}
  .composer .user-avatar,.feed-post>.user-avatar{width:36px;height:36px}
  .feed-head{font-size:12px}
  .feed-text{font-size:14px}
  .feed-menu{min-width:220px}
}
.admin-danger{color:#b3261e;border-color:#efc9c5}
.admin-danger:hover{background:#fdf1f0}
#admin-dialog-submit.danger{background:#b3261e}
.admin-warning-count{color:#a35f00;font-weight:700}
#admin-dialog form{padding:26px}
@media(max-width:800px){.feed-layout .community-card{display:none}.feed-layout{grid-template-columns:1fr}}
.admin-payment-totals{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 16px}
.admin-payment-totals div{flex:1;min-width:180px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:12px}
.admin-payment-totals strong{display:block;font:700 20px var(--serif);color:var(--green-dark)}
.admin-payment-totals span{font-size:11px;color:#7c827a}

/* Long words and links must wrap instead of pushing the page wider than the screen */
html,body{overflow-x:clip}
.detail-title,.detail-location,.detail-description,.detail-meta,.detail-host strong,.property-title,.property-location,.profile-name,.profile-email,.saved-row strong,.saved-row span,.booking-info,.payment-row strong,.payment-row small,.payout-summary strong,.chat-message p,.chat-title h2,.inbox-row strong,.inbox-row small,.hotel-result h3,.hotel-result p,.listed-hotels .property-title,.warning-reason,.receipt p,.admin-table td{overflow-wrap:anywhere;word-break:break-word}
.detail-price-row>div,.profile-identity>div,.saved-row>div,.payout-summary>div,.payment-row>div:first-child,.detail-host>div{min-width:0}
.detail-price-row strong{flex:none}
.admin-review-tabs{flex-wrap:wrap}

/* Floating frosted-glass bottom navigation */
.bottom-nav{position:fixed;z-index:20;left:50%;right:auto;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(460px,calc(100% - 24px));display:flex;justify-content:space-between;gap:4px;padding:7px;border-radius:24px;background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);border:1px solid rgba(255,255,255,.7);box-shadow:0 10px 34px rgba(24,38,27,.16),inset 0 1px 0 rgba(255,255,255,.8)}
.nav-item{flex:1;width:auto;height:58px;min-width:0;border:0;border-radius:18px;background:transparent;color:#5d665b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:600;transition:background .2s,color .2s,transform .15s}
.nav-item:active{transform:scale(.94)}
.bottom-nav .nav-icon{width:26px;height:26px;display:block;font-size:0}
.bottom-nav .nav-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-label{white-space:nowrap;letter-spacing:-.15px;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.nav-item.active{background:rgba(52,119,71,.14);color:var(--green-dark)}
.nav-item.active .nav-icon svg{stroke-width:2.1}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.bottom-nav{background:rgba(255,255,255,.96)}}
@media(max-width:640px){
  .bottom-nav{bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100% - 20px);padding:6px;gap:2px;border-radius:22px}
  .nav-item{height:60px;font-size:10.5px;padding:0 1px;border-radius:16px}
  .bottom-nav .nav-icon{width:27px;height:27px}
  .content-page{padding-bottom:130px}
  .toast{bottom:104px}
}
@media(max-width:350px){.nav-label{font-size:9.5px}}
@media(min-width:768px){.bottom-nav{display:none}}
.admin-refund{color:#b3261e}

/* Community media, reposts and quotes */
.composer-left{display:flex;align-items:center;gap:8px}
.composer-tool{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;color:var(--green);cursor:pointer;transition:background .15s}
.composer-tool:hover{background:#eef5ea}
.composer-tool svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.composer-media{display:grid;gap:6px;margin:8px 0 4px;grid-template-columns:repeat(2,minmax(0,1fr))}
.composer-media[hidden]{display:none}
.composer-media.count-1{grid-template-columns:1fr}
.composer-attachment{position:relative;border-radius:14px;overflow:hidden;background:#eef1ec;aspect-ratio:4/3}
.composer-media.count-1 .composer-attachment{aspect-ratio:16/10}
.composer-attachment img,.composer-attachment video{width:100%;height:100%;object-fit:cover;display:block}
.composer-attachment.uploading img,.composer-attachment.uploading video{opacity:.5}
.composer-attachment.failed{outline:2px solid #e2a29b}
.composer-attachment-status{position:absolute;left:8px;bottom:8px;padding:4px 8px;border-radius:20px;background:rgba(20,28,22,.75);color:#fff;font-size:10px;font-weight:700}
.composer-attachment-remove{position:absolute;top:6px;right:6px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(20,28,22,.72);color:#fff;font-size:17px;line-height:1}
.feed-post{display:block}
.feed-post-row{display:flex;gap:12px}
.feed-post-row>.user-avatar{width:40px;height:40px;font-size:13px;flex:none}
.feed-repost-label{display:flex;align-items:center;gap:6px;margin:0 0 6px 28px;font-size:11px;font-weight:700;color:#6f766d}
.feed-repost-label svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.feed-text.empty{display:none}
.feed-media{margin-top:10px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.feed-media.video video{display:block;width:100%;max-height:520px;background:#000}
.feed-media.photos{display:grid;gap:2px;grid-template-columns:repeat(2,minmax(0,1fr))}
.feed-media.photos.count-1{grid-template-columns:1fr}
.feed-media.photos.count-3 .feed-photo:first-child{grid-row:span 2}
.feed-photo{display:block;padding:0;border:0;background:#eef1ec;cursor:zoom-in;aspect-ratio:4/3;overflow:hidden}
.feed-media.photos.count-1 .feed-photo{aspect-ratio:auto;max-height:520px}
.feed-media.photos.count-3 .feed-photo:first-child{aspect-ratio:auto}
.feed-photo img{width:100%;height:100%;object-fit:cover;display:block}
.feed-media.photos.count-1 .feed-photo img{max-height:520px;object-fit:cover}
.feed-quote{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:background .15s}
.feed-quote:hover{background:#fafbf9}
.feed-quote.unavailable{cursor:default;color:#7c827a;font-size:12px;background:#f7f8f6}
.feed-quote .feed-head{font-size:12px}
.feed-quote .feed-text{font-size:13px}
.user-avatar.tiny{width:20px;height:20px;font-size:8px}
.feed-quote-media{position:relative;margin-top:8px;border-radius:10px;overflow:hidden;max-height:180px;font-size:12px;color:#6f766d}
.feed-quote-media img{width:100%;max-height:180px;object-fit:cover;display:block}
.feed-quote-media span{position:absolute;right:8px;bottom:8px;padding:3px 8px;border-radius:20px;background:rgba(20,28,22,.72);color:#fff;font-size:10px;font-weight:700}
.feed-repost-wrap{position:relative}
.feed-action.repost:hover,.feed-action.repost.reposted{color:#1f8a52;background:#e9f6ee}
.feed-action.repost.reposted svg{stroke-width:2.3}
.repost-menu{left:0;right:auto;min-width:170px;top:calc(100% + 2px)}
.repost-menu button{display:flex;align-items:center;gap:10px}
.repost-menu svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.quote-form textarea{width:100%;min-height:90px;border:0;outline:none;resize:vertical;font:inherit;font-size:16px;line-height:1.5;padding:4px 0}
.quote-form .feed-quote{cursor:default}
.quote-form-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:640px){.feed-post-row>.user-avatar{width:36px;height:36px}.feed-repost-label{margin-left:24px}.feed-media{border-radius:12px}}
.admin-post-media{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.admin-post-media img{width:48px;height:48px;object-fit:cover;border-radius:6px;display:block}.admin-post-media a{font-size:11px}

/* Notifications */
.notification-bell:not(.hidden){position:relative;display:grid;place-items:center;flex:none;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--green-dark)}
.notification-bell svg{width:21px;height:21px}
.notification-bell[aria-expanded="true"]{background:#eaf1e5;border-color:#cfe0c6}
.notification-bell .inbox-unread-badge{position:absolute;top:-5px;right:-6px;background:#d6533f}
.notification-panel{position:fixed;z-index:30;top:84px;right:max(calc((100% - 1240px)/2),6.5%);width:min(390px,calc(100% - 20px));max-height:min(560px,calc(100vh - 110px));display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 60px rgba(24,38,27,.18);overflow:hidden}
.notification-panel[hidden]{display:none}
.notification-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 16px 11px;border-bottom:1px solid var(--line)}
.notification-head h2{margin:0;font-family:var(--serif);font-size:17px;letter-spacing:-.4px}
.notification-head .text-button{font-size:11px;color:var(--green)}
.notification-head .text-button:disabled{color:#a8ada6;cursor:default}
.notification-list{overflow-y:auto;overscroll-behavior:contain}
.notification-item{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:start;padding:12px 16px;border:0;border-bottom:1px solid #f1f3ef;background:#fff;text-align:left;color:var(--ink)}
.notification-item:hover{background:#f8faf6}
.notification-item.unread{background:#f4f9f0}
.notification-item.unread time::after{content:"";display:block;width:8px;height:8px;margin:6px 0 0 auto;border-radius:50%;background:var(--green)}
.notification-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#eaf1e5;color:var(--green-dark)}
.notification-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-icon.kind-like{background:#fdecec;color:#c94848}
.notification-icon.kind-warning,.notification-icon.kind-moderation{background:#fff3e0;color:#a5661a}
.notification-icon.kind-payment{background:#e8f2fb;color:#2c6aa0}
.notification-text{min-width:0;display:grid;gap:3px}
.notification-text strong{font-size:12.5px;line-height:1.4;overflow-wrap:anywhere}
.notification-text span{font-size:11.5px;line-height:1.5;color:#717970;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.notification-item time{font-size:10.5px;color:#9aa097;white-space:nowrap}
.notification-empty{display:grid;gap:6px;padding:38px 22px;text-align:center;color:#7c827a;font-size:12px}
.notification-empty strong{color:var(--ink);font-size:14px}
.notification-detail{font-size:13px;line-height:1.7;color:#4e574d;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:800px){.notification-panel{top:76px;right:10px}}
@media(max-width:640px){.notification-panel{top:70px;left:10px;right:10px;width:auto;max-height:calc(100vh - 170px)}.notification-bell:not(.hidden){width:44px;height:44px}}

/* Password reset and email confirmation */
.forgot-link{justify-self:end;margin-top:2px;font-size:11px;color:var(--green);padding:2px 0}
.verify-card{display:flex;align-items:center;gap:14px;background:#fffaf0;border-color:#f1e2c2}
.verify-card strong{font-size:13px}
.verify-card p{margin:5px 0 0;font-size:11px;line-height:1.6;color:#6f6650;overflow-wrap:anywhere}
.verify-card .button{margin-left:auto;flex:none;padding:10px 13px;font-size:11px}
@media(max-width:520px){.verify-card{flex-direction:column;align-items:stretch}.verify-card .button{margin-left:0}}

/* Reviews */
.rating-chip{margin-left:auto;color:#8a6a12;white-space:nowrap}
.rating-chip b{color:#4f594e}
.detail-reviews{margin:18px 0 6px;padding-top:16px;border-top:1px solid var(--line)}
.reviews-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.reviews-top h3{margin:0;font-family:var(--serif);font-size:16px;letter-spacing:-.3px}
.review-write{padding:9px 12px;font-size:11px;gap:6px}
.reviews-summary{display:flex;align-items:baseline;gap:9px;margin:8px 0 4px;color:#6f776e;font-size:12px}
.reviews-score{font-size:20px;font-weight:800;color:var(--ink)}
.reviews-empty{font-size:12px;color:#7c827a;margin:8px 0}
.review-list{display:grid}
.review{padding:13px 0;border-bottom:1px solid #f0f1ee}
.review:last-child{border-bottom:0}
.review-head{display:flex;align-items:center;gap:10px}
.review-head .user-avatar{width:32px;height:32px;font-size:12px}
.review-head strong{display:block;font-size:12px}
.review-head small{font-size:10.5px;color:#8b9189}
.review-head .stars{margin-left:auto}
.stars{color:#e0a526;font-size:13px;letter-spacing:1px;white-space:nowrap}
.stars-off{color:#dfe2dc}
.review-body{margin:9px 0 0 42px;font-size:12.5px;line-height:1.7;color:#4e574d;white-space:pre-wrap;overflow-wrap:anywhere}
.review-reply{margin:10px 0 0 42px;padding:10px 12px;border-left:3px solid #cfe0c6;background:#f6f9f3;border-radius:0 8px 8px 0}
.review-reply strong{font-size:11px;color:var(--green-dark)}
.review-reply p{margin:4px 0 0;font-size:12px;line-height:1.6;color:#4e574d;white-space:pre-wrap;overflow-wrap:anywhere}
.review-actions{display:flex;gap:14px;margin:8px 0 0 42px}
.review-actions .text-button{font-size:11px;color:#6f776e;padding:2px 0}
.review-actions .danger{color:#b2402f}
.reviews-more{margin-top:6px;font-size:12px;color:var(--green)}
.star-picker{border:0;padding:0;margin:0 0 14px}
.star-picker legend{font-size:10px;font-weight:600;color:#4f584e;margin-bottom:6px}
.star-row{display:inline-flex;flex-direction:row-reverse;gap:4px}
.star-row input{position:absolute;opacity:0;pointer-events:none}
.star-row label{font-size:34px;line-height:1;color:#dfe2dc;cursor:pointer;transition:color .15s,transform .15s}
.star-row label:hover,.star-row label:hover~label,.star-row input:checked~label{color:#e0a526}
.star-row input:focus-visible+label{outline:3px solid #8fc66a;outline-offset:2px;border-radius:4px}
.star-row label:active{transform:scale(.92)}
.star-hint{display:inline-block;margin-left:10px;font-size:12px;color:#7c827a;vertical-align:super}
.review-cancel{display:block;margin:10px auto 0;font-size:12px;color:#6f776e}
.review-quote{margin:0 0 14px;padding:12px;border-radius:9px;background:#f5f7f3}
.review-quote p{margin:6px 0;font-size:12px;line-height:1.6;color:#4e574d}
.review-quote small{font-size:11px;color:#7c827a}
@media(max-width:640px){.rating-chip{margin-left:0}.review-body,.review-reply,.review-actions{margin-left:0}}
.booking-card.past.needs-review{opacity:1}
.reviews-score .stars{font-size:20px;letter-spacing:0}

/* Profile pictures and usernames */
.user-avatar.has-img{padding:0;overflow:hidden;background:#e9eef0}
.user-avatar.has-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.user-avatar.large{width:64px;height:64px}
.profile-login .user-avatar.large{width:72px;height:72px;margin:0 auto 14px}
.avatar-upload{position:relative;flex:none;cursor:pointer;border-radius:50%}
.avatar-upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.avatar-upload .user-avatar{width:64px;height:64px}
.avatar-camera{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--green-dark);color:#fff;border:2px solid #fff;pointer-events:none}
.avatar-camera svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.avatar-upload:focus-within{outline:3px solid #8fc66a;outline-offset:3px}
.avatar-upload.uploading .user-avatar{opacity:.5}
.avatar-upload.uploading::after{content:"";position:absolute;inset:18px;border:3px solid #fff;border-top-color:var(--green);border-radius:50%;animation:avatar-spin .8s linear infinite}
@keyframes avatar-spin{to{transform:rotate(360deg)}}
.avatar-remove{display:block;margin:8px 0 0 2px;font-size:11px;color:#7c827a;padding:2px 0}
.profile-username{font-size:12px;color:var(--green);font-weight:600;margin-top:3px}
.username-input{display:flex;align-items:center;border:1px solid #e5e8e2;border-radius:7px;background:#fff;overflow:hidden}
.username-input span{padding:0 2px 0 12px;color:#7c827a;font-weight:700;font-size:12px}
.username-input input{border:0!important;padding-left:2px!important;outline:none}
.username-input:focus-within{outline:3px solid #8fc66a;outline-offset:1px}
.username-status{font-size:10.5px;color:#8b9189}
.username-status[data-state="ok"]{color:var(--green)}
.username-status[data-state="bad"]{color:#b2402f}
.composer .user-avatar.has-img{background:#e9eef0}
.mobile-inbox-link .inbox-icon{width:22px;height:22px}

/* Terms and privacy pages */
.legal-updated{font-size:13px;color:#8b9189;margin-top:-10px}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px}
.terms-page .legal-toc a{font-size:12px;font-weight:600;text-decoration:none;padding:7px 11px;border-radius:20px;background:#eef3ea;color:var(--green-dark)}
.legal-summary{background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px 22px 14px;margin-bottom:12px}
.legal-summary h2{margin-top:18px!important}
.terms-page ul{padding-left:20px;max-width:720px}
.terms-page li{margin:6px 0}
.terms-page strong{color:var(--ink)}
.terms-page h2[id]{scroll-margin-top:20px}
.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;padding:26px 16px 30px;border-top:1px solid var(--line);font-size:12px;color:#8b9189}
.site-footer a{color:#5d665b;text-decoration:underline}
@media(max-width:767px){.site-footer{padding-bottom:120px}}
.account-card .form-note a{color:var(--green-dark);font-weight:600;text-decoration:underline}
.danger-link{color:#b2402f;font-size:12px;font-weight:700;padding:4px 0}
.button-danger{background:#b2402f;color:#fff}
.button-danger:hover{background:#962f20}
.delete-effects,.delete-blockers{margin:0 0 16px;padding-left:20px;font-size:12.5px;line-height:1.7;color:#4e574d}
.form-note a{color:var(--green-dark);text-decoration:underline}

/* ---------- Chat and inbox (full-height screens inside the dialog) ---------- */
.app-dialog.chat-mode,.app-dialog.inbox-mode{width:min(560px,calc(100% - 30px));max-height:min(92vh,820px);padding:0;overflow:hidden}
.app-dialog.chat-mode{height:min(92vh,820px)}
.app-dialog.chat-mode #dialog-content,.app-dialog.inbox-mode #dialog-content{padding:0;max-height:none;height:100%;overflow:hidden}
.chat-view,.inbox-view{display:flex;flex-direction:column;height:100%;min-height:0;background:#f5f7f3}
.inbox-view{max-height:min(92vh,820px);background:#fff}
.chat-icon-button{display:grid;place-items:center;flex:none;width:38px;height:38px;border:0;border-radius:50%;background:transparent;color:var(--ink);padding:0}
.chat-icon-button:hover{background:#eef2ea}
.chat-icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.chat-icon-button[data-chat-more] svg{fill:currentColor;stroke:none}
.chat-avatar{display:inline-block;flex:none;width:30px;height:30px;border-radius:50%;overflow:hidden;background:#e9eef0}
.chat-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.chat-avatar.medium{width:44px;height:44px}

/* Chat header */
.chat-header{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 8px;background:#fff;border-bottom:1px solid var(--line)}
.chat-peer{flex:1;min-width:0}
.chat-peer h2{margin:0;font-family:var(--serif);font-size:16px;letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-peer-listing{display:block;max-width:100%;margin-top:2px;padding:0;border:0;background:none;color:var(--green);font-size:11.5px;font-weight:600;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-view .chat-head-actions{gap:2px}
.chat-view .chat-head-actions .chat-pay{margin:0 4px}
.chat-view .chat-head-actions .dialog-close{width:34px;height:34px;margin-left:2px}
.chat-more-wrap{position:relative}
.chat-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:5;min-width:210px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px rgba(24,38,27,.16)}
.chat-more-menu[hidden]{display:none}
.chat-more-menu a,.chat-more-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 11px;border:0;border-radius:8px;background:none;color:var(--ink);font-size:12.5px;text-align:left;text-decoration:none}
.chat-more-menu a:hover,.chat-more-menu button:hover{background:#f3f6f0}
.chat-more-menu svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}
.chat-more-menu .danger{color:#b2402f}

/* Home strip under the header */
.chat-listing-strip{display:flex;align-items:center;gap:10px;margin:10px 12px 0;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;color:var(--ink)}
.chat-listing-strip img,.chat-listing-placeholder{width:42px;height:42px;flex:none;border-radius:10px;object-fit:cover;background:#e9ede7;display:grid;place-items:center;color:var(--green)}
.chat-listing-strip>span:nth-child(2){flex:1;min-width:0}
.chat-listing-strip strong{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-listing-strip small{display:block;margin-top:2px;font-size:10.5px;color:#7a6a3a}
.chat-listing-open{color:#9aa097;font-size:20px;line-height:1}

/* Messages */
.chat-view .chat-messages{flex:1;min-height:0;max-height:none;display:flex;flex-direction:column;gap:2px;margin:0;padding:12px 14px 8px;border:0;border-radius:0;background:transparent;overflow-y:auto;overscroll-behavior:contain}
.chat-loading{margin:auto;color:#8b9189;font-size:12px}
.chat-empty{margin:auto;text-align:center;color:#7c827a;max-width:260px}
.chat-empty span{font-size:30px}
.chat-empty strong{display:block;margin:6px 0 4px;color:var(--ink);font-size:14px}
.chat-empty p{margin:0;font-size:12px;line-height:1.6}
.chat-day{align-self:center;margin:12px 0 8px}
.chat-day span{display:inline-block;padding:4px 11px;border-radius:20px;background:#e8ede4;color:#5d665b;font-size:10.5px;font-weight:600}
.chat-row{display:flex;align-items:flex-end;gap:8px;max-width:100%}
.chat-row.own{justify-content:flex-end}
.chat-row.ends{margin-bottom:8px}
.chat-avatar-space{width:30px;flex:none}
.chat-view .chat-message{display:flex;flex-direction:column;max-width:78%;padding:0;border:0;border-radius:0;background:none;margin:0}
.chat-view .chat-message.own{align-items:flex-end}
.chat-bubble{padding:9px 13px;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 1px 1px rgba(24,38,27,.06);overflow-wrap:anywhere}
.chat-row:not(.own).ends .chat-bubble{border-bottom-left-radius:6px}
.chat-message.own .chat-bubble{background:var(--green-dark);color:#fff}
.chat-row.own.ends .chat-bubble{border-bottom-right-radius:6px}
.chat-view .chat-message p{margin:0;font-size:13px;line-height:1.5;white-space:pre-wrap}
.chat-meta{display:flex;align-items:center;gap:6px;margin-top:4px;padding:0 4px;font-size:10px;color:#8b9189}
.chat-view .chat-message .chat-delivery{display:inline-flex;align-items:center;gap:3px;margin:0;font-size:10px;color:#8b9189;text-align:right}
.chat-view .chat-message .chat-delivery.seen{color:var(--green)}
.chat-delivery svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.chat-view .chat-message.pending{opacity:.7}
.chat-view .chat-message.failed .chat-bubble{background:#fdf1f0;color:#7d2a22;border:1px solid #efc9c5}
.chat-view .chat-message.failed .chat-delivery{color:#b3261e}

/* Composer */
.chat-composer{padding:8px 12px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}
.chat-composer .form-error{margin:0 0 8px}
.chat-input-row{display:flex;align-items:flex-end;gap:8px}
.chat-input-row textarea{flex:1;min-height:44px;max-height:132px;padding:11px 16px;border:1px solid #e3e7df;border-radius:22px;background:#f5f7f3;font-size:14px;line-height:1.45;resize:none;color:var(--ink);outline:none}
.chat-input-row textarea:focus{border-color:#b9d3ad;background:#fff}
.chat-send{display:grid;place-items:center;flex:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--green-dark);color:#fff;transition:transform .15s,background .15s}
.chat-send:hover{background:#1b4b2a}
.chat-send:active{transform:scale(.94)}
.chat-send:disabled{opacity:.6}
.chat-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;margin-left:-2px}

/* Inbox */
.inbox-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 6px}
.inbox-header h2{margin:0;font-family:var(--serif);font-size:22px;letter-spacing:-.6px}
.inbox-search{display:flex;align-items:center;gap:8px;margin:8px 16px 0;padding:0 14px;height:44px;border:1px solid #e3e7df;border-radius:22px;background:#f5f7f3;color:#8b9189}
.inbox-search svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.inbox-search input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:13.5px;color:var(--ink)}
.inbox-search:focus-within{border-color:#b9d3ad;background:#fff}
.inbox-tabs{display:flex;gap:6px;margin:12px 16px 6px;padding:4px;border-radius:14px;background:#f2f4ef}
.inbox-tabs button{flex:1;padding:8px 6px;border:0;border-radius:10px;background:none;color:#6c746a;font-size:12px;font-weight:600;white-space:nowrap}
.inbox-tabs button[aria-selected="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(24,38,27,.1)}
.inbox-tabs button span{display:inline-grid;place-items:center;min-width:17px;height:17px;margin-left:3px;padding:0 4px;border-radius:9px;background:var(--green);color:#fff;font-size:9.5px}
.inbox-view .chat-inbox-list{flex:1;min-height:0;max-height:none;display:block;overflow-y:auto;padding:4px 6px 14px}
.inbox-view .inbox-row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 10px;border:0;border-radius:14px;background:none;text-align:left;color:var(--ink)}
.inbox-view .inbox-row:hover{background:#f5f7f3}
.inbox-view .inbox-row+.inbox-row{border-top:1px solid #f1f3ef;border-radius:0}
.inbox-avatar{position:relative;flex:none}
.inbox-home{position:absolute;right:-4px;bottom:-3px;width:22px;height:22px;border-radius:7px;border:2px solid #fff;object-fit:cover;background:#e9ede7}
.inbox-text{flex:1;min-width:0;display:grid;gap:2px}
.inbox-top,.inbox-bottom{display:flex;align-items:center;gap:8px;min-width:0}
.inbox-top strong{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-top time{flex:none;font-size:11px;color:#8b9189}
.inbox-row.unread .inbox-top time{color:var(--green);font-weight:700}
.inbox-listing{font-size:11px;color:var(--green);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-preview{flex:1;min-width:0;font-size:12.5px;color:#737b71;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-row.unread .inbox-preview{color:var(--ink);font-weight:600}
.inbox-view .chat-unread-count{flex:none;min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;border-radius:10px;background:var(--green-dark);color:#fff;font-size:10.5px;font-weight:700}
.inbox-tick{flex:none;display:inline-grid;color:#9aa097}
.inbox-tick.seen{color:var(--green)}
.inbox-tick svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.inbox-empty{padding:48px 24px;text-align:center;color:#7c827a}
.inbox-empty strong{display:block;color:var(--ink);font-size:15px;margin-bottom:6px}
.inbox-empty p{margin:0;font-size:12.5px;line-height:1.6}

/* Phones: chat and inbox fill the screen */
@media(max-width:640px){
  .app-dialog.chat-mode,.app-dialog.inbox-mode{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .inbox-view{max-height:100dvh}
  .chat-header{padding-top:calc(10px + env(safe-area-inset-top))}
  .chat-view .chat-message{max-width:82%}
  .chat-header{gap:6px;padding-left:4px;padding-right:8px}
  .chat-view .chat-head-actions .chat-call{display:none}
  .chat-header .chat-avatar.medium{width:38px;height:38px}
  .chat-view .chat-head-actions .chat-pay{padding:8px 11px;margin:0 2px}
  .chat-view .chat-head-actions .dialog-close{width:32px;height:32px}
  .chat-view .chat-icon-button{width:34px;height:34px}
}

/* Occupied tag on listing cards: a clear band across the bottom of the photo */
.property-card .occupied-badge{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:0;background:linear-gradient(0deg,rgba(18,22,18,.86),rgba(18,22,18,.7));color:#fff;font-size:12px;font-weight:600;letter-spacing:.1px;backdrop-filter:blur(2px)}
.property-card .occupied-badge strong{font-size:12.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}
.property-card .occupied-badge small{margin-left:auto;font-size:11px;font-weight:600;color:#e6ebe3}
.occupied-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#ef5b4c;box-shadow:0 0 0 3px rgba(239,91,76,.28)}
.property-card .occupied-badge.mine{background:linear-gradient(0deg,rgba(35,92,53,.92),rgba(35,92,53,.78))}
.property-card .occupied-badge.mine .occupied-dot{background:#9fe07f;box-shadow:0 0 0 3px rgba(159,224,127,.3)}
.property-card.occupied .property-image-wrap img{filter:grayscale(.55) brightness(.85)}
.property-card.occupied .property-price{color:#7c827a}
@media(max-width:640px){
  .property-card .occupied-badge{padding:7px 8px;gap:6px;font-size:10px;flex-wrap:wrap}
  .property-card .occupied-badge strong{font-size:10px;letter-spacing:.4px}
  .property-card .occupied-badge small{margin-left:0;flex-basis:100%;padding-left:14px;font-size:9.5px}
}
/* Manage listing: rental status */
.rental-status{display:flex;align-items:center;gap:14px;margin:14px 0;padding:14px;border-radius:12px;border:1px solid #d9e8d2;background:#f3f8ef}
.rental-status.taken{border-color:#f1d6d1;background:#fdf4f2}
.rental-status div{flex:1;min-width:0;display:grid;gap:3px}
.rental-status strong{font-size:13px}
.rental-status span{font-size:11.5px;line-height:1.55;color:#5d665b}
.rental-status .button{flex:none;padding:10px 14px;font-size:11.5px}
.tenant-choices{border:0;margin:0 0 12px;padding:0;display:grid;gap:8px}
.tenant-choices legend{font-size:10px;font-weight:600;color:#4f584e;margin-bottom:6px}
.tenant-choice{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.tenant-choice:has(input:checked){border-color:#a9cd98;background:#f4f9f0}
.tenant-choice span{display:grid;font-size:13px;font-weight:600}
.tenant-choice small{font-size:10.5px;font-weight:400;color:#7c827a}
@media(max-width:520px){.rental-status{flex-direction:column;align-items:stretch}}
.detail-secondary{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.detail-share{color:var(--green);font-weight:700}
/* Phone notification prompts */
.push-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 12px 4px;padding:11px 12px;border-radius:12px;background:#f1f7ec;font-size:12px;color:#3f4a3e}
.push-banner[hidden]{display:none}
.push-banner span{flex:1 1 160px}
.push-banner .button{padding:8px 12px;font-size:11.5px}
.push-banner .text-button{font-size:11.5px;color:#6f776e}
.push-setting{display:grid;gap:4px;margin:6px 0 14px;padding:12px;border-radius:10px;background:#f5f7f3}
.push-setting:empty{display:none}
.push-setting span{font-size:13px;font-weight:700}
.push-setting small{font-size:11px;line-height:1.55;color:#6f776e}
.push-setting .button{justify-self:start;margin-top:6px;padding:9px 13px;font-size:11.5px}
.form-field[hidden]{display:none}
.tenant-choice input{accent-color:var(--green-dark)}
