:root{--friends-spring: cubic-bezier(.22, 1.18, .36, 1);--friends-ease-out: cubic-bezier(.2, .8, .2, 1)}.person-avatar{--person-avatar-size: 32px;position:relative;display:inline-grid;flex:0 0 auto;width:var(--person-avatar-size);height:var(--person-avatar-size);place-items:center;border-radius:50%;background:var(--person-color, var(--accent-primary));color:#fff;font-size:calc(var(--person-avatar-size) * .38);font-weight:650;letter-spacing:.01em;line-height:1;-webkit-user-select:none;user-select:none}.person-avatar--placeholder{background:var(--matte-state-hover, var(--bg-hover))}.person-avatar[data-online=true]:after{content:"";position:absolute;right:-1px;bottom:-1px;width:max(8px,calc(var(--person-avatar-size) * .28));height:max(8px,calc(var(--person-avatar-size) * .28));border:2px solid var(--window-content-surface, var(--bg-primary));border-radius:50%;background:var(--success, #22c55e);box-sizing:border-box}.friends-dialog-backdrop{z-index:60000;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ds-modal.friends-dialog{width:min(560px,calc(100vw - 32px));max-width:560px;max-height:min(760px,calc(100dvh - 32px));overflow:hidden;border:0;border-radius:var(--app-radius)!important;background:var(--window-content-surface, var(--bg-primary));box-shadow:var(--app-floating-surface-shadow)}.ds-modal.friends-dialog .ds-modal-body{display:flex;min-height:0;flex-direction:column;padding:0;overflow:hidden;background:transparent}.friends-dialog__header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:12px 14px 12px 18px}.friends-dialog__heading{display:flex;min-width:0;align-items:center;gap:12px}.friends-dialog__mark{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:var(--app-radius);background:color-mix(in srgb,var(--accent-primary) 11%,var(--window-content-surface, var(--bg-primary)));color:color-mix(in srgb,var(--accent-primary) 84%,var(--text-primary))}.friends-dialog__heading h2{margin:0;color:var(--text-primary);font-size:var(--app-type-title-size);font-weight:680;line-height:var(--app-type-title-line-height)}.friends-dialog__heading p{margin:1px 0 0;color:var(--text-tertiary, var(--text-secondary));font-size:var(--app-type-caption-size);line-height:var(--app-type-caption-line-height)}.friends-dialog__close{display:inline-grid;width:32px;height:32px;padding:0;place-items:center;border:0;border-radius:var(--app-radius);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color .14s ease,color .14s ease,transform .16s var(--friends-spring)}html[data-motion=off] .friends-dialog__close{transition-duration:.01ms!important;transition-delay:0s!important}.friends-dialog__close:hover{background:var(--matte-state-hover, var(--bg-hover));color:var(--text-primary)}.friends-dialog__close:active{transform:scale(.92)}.friends-dialog__body{display:flex;min-height:0;flex-direction:column;gap:14px;padding:2px 16px 18px;overflow-y:auto;overscroll-behavior:contain}.friends-dialog button{font:inherit}.friends-me{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--app-radius);background:color-mix(in srgb,var(--accent-primary) 6%,var(--matte-surface, var(--bg-secondary)))}.friends-me__copy{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:2px}.friends-me__copy>span{color:var(--text-secondary);font-size:var(--app-type-caption-size);line-height:var(--app-type-caption-line-height)}.friends-me__copy strong{overflow:hidden;color:var(--text-primary);font-size:calc(var(--app-type-body-size) + 2px);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.friends-handle{font-variant-numeric:tabular-nums}.friends-handle__digits{color:var(--text-tertiary, var(--text-secondary));font-weight:500}.friends-copy{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:0;border-radius:var(--app-radius);background:var(--window-content-surface, var(--bg-primary));color:var(--text-primary);font-size:var(--app-type-body-size);cursor:pointer;transition:background-color .14s ease,transform .16s var(--friends-spring),color .14s ease}html[data-motion=off] .friends-copy{transition-duration:.01ms!important;transition-delay:0s!important}.friends-copy:hover{background:var(--matte-state-hover, var(--bg-hover))}.friends-copy:active{transform:scale(.95)}.friends-copy[data-copied=true]{color:var(--success-text, var(--accent-primary))}.friends-copy[data-copied=true] .friends-copy__icon{animation:friends-pop .32s var(--friends-spring)}html[data-motion=off] .friends-copy[data-copied=true] .friends-copy__icon{animation:friends-pop .32s var(--friends-spring)!important;animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important}.friends-copy__icon{display:inline-grid;place-items:center}.friends-add{display:flex;flex-direction:column;gap:8px}.friends-add__field{display:flex;align-items:center;gap:9px;min-height:42px;padding:0 12px;border-radius:var(--app-radius);background:var(--bg-secondary);color:var(--text-secondary);transition:background-color .16s ease,color .16s ease}html[data-motion=off] .friends-add__field{transition-duration:.01ms!important;transition-delay:0s!important}.friends-add__field:focus-within{background:var(--bg-hover);color:var(--text-primary)}.friends-add__field input{min-width:0;flex:1 1 auto;border:0;background:transparent;color:var(--text-primary);font:inherit;font-size:var(--app-type-body-size);outline:none}.friends-add__result:empty{display:none}.friends-add__result>*{animation:friends-rise .2s var(--friends-ease-out) both}html[data-motion=off] .friends-add__result>*{animation:friends-rise .2s var(--friends-ease-out) both!important;animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important}.friends-add__hint{display:inline-flex;align-items:center;gap:8px;padding:0 4px;color:var(--text-secondary);font-size:var(--app-type-caption-size);line-height:var(--app-type-caption-line-height)}.friends-dots{display:inline-flex;gap:3px}.friends-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;animation:friends-dot .9s ease-in-out infinite}html[data-motion=off] .friends-dots i{animation:friends-dot .9s ease-in-out infinite!important}.friends-dots i:nth-child(2){animation-delay:.12s}html[data-motion=off] .friends-dots i:nth-child(2){animation-delay:.12s!important}.friends-dots i:nth-child(3){animation-delay:.24s}html[data-motion=off] .friends-dots i:nth-child(3){animation-delay:.24s!important}.friends-section{display:flex;flex-direction:column;gap:2px}.friends-section__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.friends-section h3{display:flex;align-items:center;gap:6px;margin:6px 4px;color:var(--text-secondary);font-size:var(--app-type-caption-size);font-weight:650;letter-spacing:.02em}.friends-section h3 span{min-width:18px;padding:0 6px;border-radius:var(--app-radius);background:var(--matte-state-hover, var(--bg-hover));color:var(--text-secondary);text-align:center;font-variant-numeric:tabular-nums}.friends-filter{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 9px;border-radius:var(--app-radius);background:var(--matte-surface, var(--bg-secondary));color:var(--text-secondary)}.friends-filter input{width:110px;border:0;background:transparent;color:var(--text-primary);font:inherit;font-size:var(--app-type-caption-size);outline:none}.friends-person{display:flex;align-items:center;gap:11px;min-height:52px;padding:8px;border-radius:var(--app-radius);transition:background-color .14s ease}html[data-motion=off] .friends-person{transition-duration:.01ms!important;transition-delay:0s!important}.friends-person:hover{background:var(--matte-state-hover, var(--bg-hover))}.friends-person--preview{background:var(--matte-surface, var(--bg-secondary))}.friends-person[data-new=true]{animation:friends-arrive .52s var(--friends-spring) both}html[data-motion=off] .friends-person[data-new=true]{animation:friends-arrive .52s var(--friends-spring) both!important;animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important}.friends-person__copy{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:1px}.friends-person__copy strong{overflow:hidden;color:var(--text-primary);font-size:var(--app-type-body-size);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.friends-person__copy>span{overflow:hidden;color:var(--text-secondary);font-size:var(--app-type-caption-size);text-overflow:ellipsis;white-space:nowrap}.friends-person__actions{display:flex;flex:0 0 auto;gap:6px}.friends-person__actions--confirm{animation:friends-rise .16s var(--friends-ease-out) both}html[data-motion=off] .friends-person__actions--confirm{animation:friends-rise .16s var(--friends-ease-out) both!important;animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important}.friends-button{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border:0;border-radius:var(--app-radius);background:var(--matte-surface, var(--bg-secondary));color:var(--text-primary);font-size:var(--app-type-body-size);font-weight:560;cursor:pointer;transition:background-color .14s ease,transform .16s var(--friends-spring),opacity .14s ease}html[data-motion=off] .friends-button{transition-duration:.01ms!important;transition-delay:0s!important}.friends-button:hover:not(:disabled){background:var(--matte-state-hover, var(--bg-hover))}.friends-button:active:not(:disabled){transform:scale(.95)}.friends-button:disabled{cursor:default;opacity:.55}.friends-button--primary{background:var(--accent-primary);color:var(--text-on-accent, #fff)}.friends-button--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent-primary) 88%,var(--text-primary))}.friends-button--danger{background:color-mix(in srgb,var(--danger-text, #dc2626) 14%,var(--window-content-surface, var(--bg-primary)));color:var(--danger-text, #dc2626)}.friends-button--danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger-text, #dc2626) 22%,var(--window-content-surface, var(--bg-primary)))}.friends-button--quiet{background:transparent;color:var(--text-secondary);opacity:0}.friends-person:hover .friends-button--quiet,.friends-button--quiet:focus-visible{opacity:1}@media(hover:none){.friends-button--quiet{opacity:1}}.friends-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:9px 12px;border-radius:var(--app-radius);font-size:var(--app-type-caption-size);animation:friends-rise .18s var(--friends-ease-out) both}html[data-motion=off] .friends-notice{animation:friends-rise .18s var(--friends-ease-out) both!important;animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important}.friends-notice--ok{background:color-mix(in srgb,var(--success-text, #16a34a) 11%,var(--window-content-surface, var(--bg-primary)));color:var(--success-text, var(--text-primary))}.friends-notice--error{background:color-mix(in srgb,var(--danger-text, #dc2626) 11%,var(--window-content-surface, var(--bg-primary)));color:var(--danger-text, var(--text-primary))}.friends-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 16px 18px;color:var(--text-secondary);font-size:var(--app-type-caption-size);text-align:center}.friends-empty strong{color:var(--text-primary);font-size:var(--app-type-body-size)}.friends-empty__art{display:inline-flex;margin-bottom:6px}.friends-empty__art i{width:30px;height:30px;margin-left:-8px;outline:3px solid var(--window-content-surface, var(--bg-primary));border-radius:50%;background:#317fd8;animation:friends-float 3.2s ease-in-out infinite}html[data-motion=off] .friends-empty__art i{animation:friends-float 3.2s ease-in-out infinite!important}.friends-empty__art i:first-child{margin-left:0;background:#d87f31}.friends-empty__art i:nth-child(2){background:#22b470;animation-delay:.3s}html[data-motion=off] .friends-empty__art i:nth-child(2){animation-delay:.3s!important}.friends-empty__art i:nth-child(3){background:#a954d4;animation-delay:.6s}html[data-motion=off] .friends-empty__art i:nth-child(3){animation-delay:.6s!important}.friends-skeleton{display:flex;flex-direction:column;gap:8px;padding:6px 8px}.friends-skeleton i{height:40px;border-radius:var(--app-radius);background:linear-gradient(90deg,var(--matte-surface, var(--bg-secondary)) 0%,var(--matte-state-hover, var(--bg-hover)) 50%,var(--matte-surface, var(--bg-secondary)) 100%);background-size:200% 100%;animation:friends-shimmer 1.2s linear infinite}html[data-motion=off] .friends-skeleton i{animation:friends-shimmer 1.2s linear infinite!important}@keyframes friends-rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes friends-pop{0%{transform:scale(.6)}60%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes friends-arrive{0%{opacity:0;transform:translateY(6px) scale(.98);background:color-mix(in srgb,var(--accent-primary) 16%,var(--window-content-surface, var(--bg-primary)))}60%{opacity:1;transform:none}to{background:transparent}}@keyframes friends-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes friends-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes friends-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:600px){.ds-modal.friends-dialog{width:100vw;max-width:none;max-height:90dvh}.friends-button--quiet{opacity:1}}
