.presence-status{cursor:pointer}
.presence-name-dialog{position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 36px));max-height:85dvh;padding:32px;border:1px solid #ffffff28;border-radius:22px;background:#171b20;color:#f2eee7;box-shadow:0 24px 90px #0008;overflow:auto;z-index:80}
.presence-name-dialog::backdrop{background:#080b10a6;backdrop-filter:blur(5px)}
.presence-name-dialog form{margin:0}.presence-name-dialog small{font-size:10px;letter-spacing:.14em;color:#f16646}.presence-name-dialog h2{font-size:28px;font-weight:400;line-height:1.15;margin:18px 0 28px}.presence-name-dialog label{display:block;font-size:12px;margin-bottom:9px}.presence-name-dialog input{box-sizing:border-box;width:100%;padding:14px 16px;border:1px solid #ffffff38;border-radius:10px;background:#101419;color:#fff;font:16px Arial}.presence-name-dialog p{font-size:12px;line-height:1.6;color:#b7bbc2;margin:14px 0 24px}.presence-name-close{position:absolute;right:14px;top:10px;border:0;background:none;color:inherit;font-size:26px}.presence-name-save{width:100%;padding:13px 18px;border:0;border-radius:10px;background:#f16646;color:#15191e;font-size:13px}

#neighborVisit .visit-visitors,#backlightContent .visit-visitors{font-size:11px;line-height:1.7;color:#aeb6bd;margin:14px 0 12px;font-weight:400;letter-spacing:.01em} .visit-visitors:empty{display:none}

.visit-person{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.visit-person-dot{display:inline-block;width:6px;height:6px;flex:none;border-radius:50%;background:#8bab77}.visit-person-dot.is-idle{background:#f39a43}

.visit-visitors-heading{display:block;margin-bottom:6px}.visit-person{font:inherit;color:inherit;background:none;border:0;padding:2px 0;cursor:pointer;text-align:left}.visit-person:hover{color:#fff}.visit-person:focus-visible{outline:1px solid #f16646;outline-offset:3px;border-radius:3px}
body>.presence-card{position:fixed;inset:auto;margin:0;transform:none;zoom:1!important;width:min(280px,calc(100vw - 24px));max-width:calc(100vw - 24px);box-sizing:border-box;z-index:90}

.presence-name-dialog{width:min(520px,calc(100vw - 36px))}.presence-name-dialog>form>p{margin-bottom:14px}.presence-roster,.presence-chat{margin-top:26px;padding-top:20px;border-top:1px solid #ffffff20}.presence-roster h3,.presence-chat h3{margin:0 0 12px;font-size:15px;font-weight:500}.presence-roster-list{display:grid;gap:6px;max-height:180px;overflow:auto}.presence-roster-person{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;text-align:left;border:1px solid transparent;border-radius:10px;background:#ffffff06;color:inherit}.presence-roster-person:hover{border-color:#ffffff30}.presence-roster-person:disabled{opacity:.7;cursor:default}.presence-roster-person strong{display:block;font-size:13px;font-weight:400}.presence-roster-person small{display:block;font-size:10px;letter-spacing:0;color:#aeb6bd;margin-top:3px}.presence-name-dialog .presence-chat-room{margin:0 0 12px;font-size:11px}.presence-messages{max-height:220px;min-height:65px;overflow:auto;padding:10px 12px;border-radius:10px;background:#0e1217;overflow-wrap:anywhere}.presence-name-dialog .presence-messages p{margin:0 0 10px;white-space:pre-wrap}.presence-messages strong{font-weight:500;color:#eee}.presence-chat-form{margin-top:14px!important}.presence-chat textarea{width:100%;box-sizing:border-box;resize:vertical;max-height:160px;border:1px solid #ffffff30;border-radius:10px;background:#101419;color:white;padding:12px;font:14px Arial}.presence-chat-form>button{margin-top:8px;border:0;border-radius:9px;background:#f16646;color:#15191e;padding:10px 20px;font-size:12px}.presence-chat-form>button:disabled{opacity:.45}.presence-name-dialog .presence-chat-status{margin:8px 0 0;font-size:11px;color:#f1ad7d}.visit-chat-open{display:block;margin-top:9px;background:none;border:0;border-bottom:1px solid #f1664680;color:#f38c6c;padding:0 0 3px;font:inherit;cursor:pointer}

body>.presence-name-dialog{inset:auto;right:auto;bottom:auto;margin:0;transform:translate(-50%,0);transform-origin:top center;border-radius:0 0 22px 22px}body>.presence-name-dialog::backdrop{background:#080b1099}

.presence-status[data-unread]:not([data-unread="0"]):after{content:attr(data-unread);display:inline-block;margin-left:8px;padding:2px 6px;border-radius:12px;background:#f16646;color:#111;font-weight:bold}.presence-card .presence-private{float:none;display:block;margin:12px 0 18px;border:1px solid #f1664680;border-radius:8px;font-size:12px;padding:9px 12px;color:#ff9a78}

body>.presence-card{width:min(350px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:22px}.presence-card .presence-chat{margin-top:16px;padding-top:14px}.presence-card .presence-chat h3{font:14px Arial;margin:0 0 8px}.presence-card .presence-chat-room{font-size:11px;line-height:1.5;margin:0 0 10px;color:#b7bbc2}.presence-card .presence-messages{max-height:170px}.presence-card .presence-messages p{font-size:12px;line-height:1.5;margin:0 0 9px;white-space:pre-wrap}.presence-card .presence-chat-form label{display:block;font-size:11px;margin-bottom:6px}.presence-card .presence-chat-form>button{float:none;font-size:12px;background:#f16646;color:#15191e}.presence-card .presence-chat-status{font-size:11px;line-height:1.5;margin:8px 0 0;color:#f1ad7d}.presence-card .presence-chat[hidden]{display:none}

.presence-roster-person.has-unread{background:#f166461a;border:1px solid #f1664680;border-left:3px solid #f16646;box-shadow:0 0 0 1px #f1664610 inset}.presence-roster-person.has-unread:hover{background:#f166462b;border-color:#f79570}.presence-roster-person.has-unread strong{color:#fff;font-weight:600}.presence-roster-person.has-unread>span:nth-child(2){flex:1;min-width:0}.presence-unread-badge{flex:none;margin-left:auto;padding:6px 9px;border-radius:7px;background:#f16646;color:#15191e;font:bold 10px/1.3 Arial,sans-serif;white-space:nowrap}@media(max-width:420px){.presence-roster-person.has-unread{flex-wrap:wrap}.presence-unread-badge{margin-left:16px}}

.presence-card .presence-invite{float:none;display:block;margin:12px 0;border:1px solid #f1664680;border-radius:8px;font-size:12px;padding:9px 12px;color:#ff9a78}.presence-card .presence-invite[hidden]{display:none}.presence-invite-options{padding:8px;border:1px solid #ffffff20;border-radius:9px}.presence-invite-options button{float:none;display:block;width:100%;padding:9px;text-align:left;font-size:12px}.presence-groups{margin-top:22px;padding-top:18px;border-top:1px solid #ffffff20}.presence-groups[hidden]{display:none}.presence-groups h3{font-size:14px}.presence-group-list>button,.presence-group-list>div{display:block;margin:8px 0;width:100%;padding:10px;border:1px solid #f1664640;background:#f1664610;border-radius:9px;color:inherit;font-size:12px;text-align:left}.presence-group-list div button{margin-right:8px;border:1px solid #ffffff30;background:#20272e;color:white;border-radius:6px;padding:7px 12px}.presence-group-list div p{margin:0 0 10px;font-size:12px}

/* Push notifications and presence sheet meet the upper edge. */
body>.presence-name-dialog{top:0!important;max-height:calc(100dvh - 18px)}
.presence-push{position:fixed;z-index:100;top:0;left:50%;transform:translate(-50%,0);box-sizing:border-box;width:max-content;max-width:calc(100vw - 24px);padding:18px 24px;border:1px solid #f1664680;border-top:0;border-radius:0 0 16px 16px;background:#20252c;color:#fff;box-shadow:0 12px 40px #0006;font:13px/1.5 Arial,sans-serif;text-align:center;cursor:pointer}.presence-push:hover{background:#30363e}.presence-push:focus-visible{outline:2px solid #f16646;outline-offset:3px}.presence-push[hidden]{display:none}

.presence-push{background:#f16646;color:#15191e;border-color:#ff9676;font-weight:600}.presence-push:hover{background:#ff805c}

/* Clear hierarchy: visitor, conversation, composer. */
body>.presence-card{width:min(390px,calc(100vw - 24px));padding:24px;border-radius:20px;background:#191e25;box-shadow:0 18px 60px #0007;max-height:calc(100dvh - 24px);scrollbar-width:thin}
.presence-card .presence-card-close{position:absolute;right:14px;top:12px;float:none;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#ffffff0a;color:#c8cdd4;font:24px/1 Arial}.presence-card .presence-card-close:hover{background:#ffffff18;color:white}
.presence-card .presence-card-eyebrow{display:block;padding-right:34px;color:#ef9272;font:9px/1.5 Arial;letter-spacing:.12em}
.presence-card .presence-card-title{margin:10px 30px 5px 0;font:500 21px/1.3 Arial;overflow-wrap:anywhere}.presence-card .presence-card-location{margin:0;color:#aeb7c2;font:11px/1.5 Arial}
.presence-card .presence-invite{display:inline-flex;margin:14px 0 0;padding:7px 10px;border:1px solid #ffffff25;border-radius:8px;color:#d3dae2;font:11px/1.4 Arial;background:transparent}.presence-card .presence-invite:hover{border-color:#f16646;color:#ff9d7f}.presence-invite-options{margin-top:8px}.presence-invite-options[hidden]{display:none}
.presence-card .presence-chat{margin-top:18px;padding-top:16px;border-top:1px solid #ffffff14}.presence-card .presence-chat h3{font:500 13px/1.4 Arial;margin:0 0 3px}.presence-card .presence-chat-room{font:10px/1.5 Arial;color:#8995a3;margin:0 0 14px}
.presence-card .presence-messages{display:flex;flex-direction:column;gap:10px;min-height:145px;max-height:clamp(145px,30dvh,280px);padding:14px 10px;background:#11161c;border:1px solid #ffffff08;border-radius:12px}
.presence-card .presence-messages .presence-message{align-self:flex-start;max-width:88%;box-sizing:border-box;padding:10px 12px;border-radius:12px 12px 12px 3px;background:#29323d;color:#edf0f4;margin:0;font:12px/1.5 Arial;white-space:pre-wrap}.presence-card .presence-message strong{display:block;margin-bottom:4px;font:500 10px/1.4 Arial;color:#adbaca}.presence-card .presence-message span{display:block}.presence-card .presence-messages .is-mine{align-self:flex-end;background:#f1664622;border:1px solid #f1664633;border-radius:12px 12px 3px 12px}.presence-card .is-mine strong{color:#f89b7e}.presence-card .presence-messages .presence-chat-empty{margin:auto;padding:25px 12px;text-align:center;color:#8793a1;font:12px/1.6 Arial}
.presence-card .presence-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:12px!important}.presence-card .presence-chat-form label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.presence-card .presence-chat textarea{min-height:48px;max-height:110px;resize:vertical;padding:12px;border-radius:10px;font:12px/1.5 Arial;background:#11161c}.presence-card .presence-chat-form>button{float:none;margin:0;min-height:48px;padding:12px 15px;border-radius:10px;font:600 12px/1.4 Arial}.presence-card .presence-chat-status{grid-column:1/-1;margin:0;font:10px/1.4 Arial}.presence-card .presence-chat-status:empty{display:none}
@media(max-height:650px){body>.presence-card{padding:18px}.presence-card .presence-messages{min-height:85px;max-height:22dvh}.presence-card .presence-chat{margin-top:12px;padding-top:12px}}

/* Important conversation notices stand apart from ordinary copy. */
.presence-card .presence-chat-status:not(:empty){display:block;position:relative;padding:12px 14px 12px 32px;margin-top:4px;border:1px solid #ffac82;border-radius:10px;background:#f16646;color:#171b20;font:600 12px/1.5 Arial;box-shadow:0 4px 18px #f1664626}.presence-card .presence-chat-status:not(:empty)::before{content:'!';position:absolute;left:12px;top:12px;font:bold 15px/1.2 Arial}
.presence-group-list>div{position:relative;box-sizing:border-box;padding:16px;border:1px solid #ffaf87;border-left:4px solid #ff996e;background:#f1664626;box-shadow:0 4px 20px #0002}.presence-name-dialog .presence-group-list div p{margin:0 0 14px;color:#fff;font:500 14px/1.6 Arial}.presence-group-list div button{padding:10px 16px;font:600 12px/1.3 Arial;border-color:#ffffff45}.presence-group-list div button:first-of-type{background:#f16646;color:#171b20;border-color:#f16646}.presence-group-list div button:hover{filter:brightness(1.15)}
.presence-roster-person.has-unread{border-color:#f89671;background:#f1664630;border-left-width:4px}.presence-unread-badge{padding:8px 10px;font-size:11px;background:#ff8059;color:#15191e}
.presence-status[data-unread]:not([data-unread="0"]){border-color:#ff9b75;background:#f16646;color:#161b21;font-weight:600;box-shadow:0 4px 24px #f1664640}.presence-status[data-unread]:not([data-unread="0"]):before{color:#171b20}.presence-status[data-unread]:not([data-unread="0"]):after{background:#171b20;color:#fff}
.presence-push{padding:20px 28px;font-size:15px;box-shadow:0 12px 45px #0007,0 4px 24px #f1664640}
