@relaya-chat/react 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +215 -0
- package/dist/AdminPanel-CBs17LkG.js +3159 -0
- package/dist/AdminPanel-DqI4RFt9.cjs +1 -0
- package/dist/admin.cjs +1 -0
- package/dist/admin.js +2 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +3224 -0
- package/dist/relaya.css +2 -0
- package/package.json +54 -0
package/dist/relaya.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root,[data-theme=light]{--relaya-color-bg:#f0f2f5;--relaya-color-surface:#fff;--relaya-color-surface-2:#f8f9fa;--relaya-color-border:#e0e3e8;--relaya-color-text:#1a1a2e;--relaya-color-text-muted:#6c757d;--relaya-color-text-faint:#adb5bd;--relaya-color-accent:#007aff;--relaya-color-accent-hover:#0062cc;--relaya-color-danger:#dc3545;--relaya-color-danger-hover:#c82333;--relaya-color-warning:#ffc107;--relaya-color-success:#28a745;--relaya-color-online:#28a745;--relaya-color-shadow:#00000014;--relaya-color-own-msg-bg:#007aff;--relaya-color-own-msg-text:#fff;--relaya-color-other-msg-bg:#e9ecef;--relaya-color-other-msg-text:#1a1a2e;--relaya-color-deleted-bg:#f1f3f5;--relaya-color-deleted-text:#868e96;--relaya-color-optimistic-bg:#cce5ff;--relaya-color-failed-bg:#f8d7da;--relaya-color-status-bar:#343a40;--relaya-color-status-text:#fff;--relaya-radius-sm:4px;--relaya-radius-md:8px;--relaya-radius-lg:16px;--relaya-radius-bubble:18px;--relaya-font-size-xs:11px;--relaya-font-size-sm:13px;--relaya-font-size-base:15px;--relaya-font-size-lg:17px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--sidebar-width:220px;--input-height:52px;--header-height:52px;--sp-title-bg:var(--relaya-color-surface);--sp-name-color:var(--relaya-color-text);--sp-name-font:inherit;--sp-ui-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sp-online-color:var(--relaya-color-text-muted);--sp-no-name-color:var(--relaya-color-text-muted);--sp-btn-border:var(--relaya-color-border);--sp-btn-bg:var(--relaya-color-surface);--sp-btn-text:var(--relaya-color-text);--sp-avatar-bg:var(--relaya-color-accent);--sp-avatar-text:#fff;--sp-own-msg-bg:var(--relaya-color-own-msg-bg);--sp-own-msg-text:var(--relaya-color-own-msg-text);--sp-other-msg-bg:var(--relaya-color-other-msg-bg);--sp-other-msg-text:var(--relaya-color-other-msg-text);--sp-msg-font:inherit;--sp-msg-font-size:var(--relaya-font-size-base);--sp-time-color:var(--relaya-color-text-faint);--sp-send-btn-bg:var(--sp-own-msg-bg);--sp-send-btn-text:var(--sp-own-msg-text)}[data-theme=dark]{--relaya-color-bg:#0d1117;--relaya-color-surface:#161b22;--relaya-color-surface-2:#21262d;--relaya-color-border:#30363d;--relaya-color-text:#e6edf3;--relaya-color-text-muted:#8b949e;--relaya-color-text-faint:#484f58;--relaya-color-accent:#58a6ff;--relaya-color-accent-hover:#79b8ff;--relaya-color-danger:#f85149;--relaya-color-danger-hover:#ff7b72;--relaya-color-warning:#d29922;--relaya-color-success:#3fb950;--relaya-color-online:#3fb950;--relaya-color-shadow:#0006;--relaya-color-own-msg-bg:#1f6feb;--relaya-color-own-msg-text:#fff;--relaya-color-other-msg-bg:#21262d;--relaya-color-other-msg-text:#e6edf3;--relaya-color-deleted-bg:#2d333b;--relaya-color-deleted-text:#8b949e;--relaya-color-optimistic-bg:#1f3a5c;--relaya-color-failed-bg:#3d1f1f;--relaya-color-status-bar:#1c2128;--relaya-color-status-text:#e6edf3}:root,[data-theme=light]{--relaya-color-message-bg:var(--sp-other-msg-bg,var(--relaya-color-other-msg-bg));--relaya-color-message-own-bg:var(--sp-own-msg-bg,var(--relaya-color-own-msg-bg));--relaya-color-text-secondary:var(--relaya-color-text-muted);--relaya-color-input-bg:var(--relaya-color-surface-2);--relaya-color-input-text:var(--relaya-color-text);--relaya-color-btn-bg:var(--sp-send-btn-bg,var(--sp-own-msg-bg));--relaya-color-btn-text:var(--sp-send-btn-text,var(--sp-own-msg-text));--relaya-color-name-mod:var(--relaya-color-accent);--relaya-color-link:var(--relaya-color-accent);--relaya-color-link-active:var(--relaya-color-accent-hover)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}.relaya-root{height:100%}body{font-family:var(--sp-ui-font);font-size:var(--relaya-font-size-base);color:var(--relaya-color-text);background:var(--relaya-color-bg);-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}input,textarea{font-family:inherit;font-size:inherit}.relaya-root .app{background:var(--relaya-color-bg);flex-direction:column;height:100%;display:flex}.relaya-root .chat-window{background:var(--relaya-color-surface);flex-direction:column;height:100%;display:flex}.relaya-root .chat-header{align-items:center;gap:var(--spacing-sm);padding:0 var(--spacing-md);height:var(--header-height);background:var(--sp-title-bg);border-bottom:1px solid color-mix(in srgb, var(--relaya-color-border) 40%, transparent);z-index:10;flex-shrink:0;display:flex;overflow:hidden}.relaya-root .chat-body{flex:1;min-height:0;display:flex;overflow:hidden}.relaya-root .message-list-container{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.relaya-root .message-list{padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-xs);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.relaya-root .message-list::-webkit-scrollbar{width:6px}.relaya-root .message-list::-webkit-scrollbar-track{background:0 0}.relaya-root .message-list::-webkit-scrollbar-thumb{background:var(--relaya-color-border);border-radius:3px}.relaya-root .loading-screen{height:100%;color:var(--relaya-color-text-muted);font-size:var(--relaya-font-size-sm);justify-content:center;align-items:center;gap:var(--spacing-sm);display:flex}.relaya-root .btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--relaya-radius-md);font-size:var(--relaya-font-size-base);white-space:nowrap;font-weight:500;transition:background-color .15s,opacity .15s;display:inline-flex}.relaya-root .btn--primary{background:var(--relaya-color-accent);color:#fff;width:100%;padding:var(--spacing-md)}.relaya-root .btn--primary:hover:not(:disabled){background:var(--relaya-color-accent-hover)}.relaya-root .btn--danger{background:var(--relaya-color-danger);color:#fff}.relaya-root .btn--danger:hover:not(:disabled){background:var(--relaya-color-danger-hover)}.relaya-root .btn--ghost{color:var(--relaya-color-text-muted);border:1px solid var(--relaya-color-border);background:0 0}.relaya-root .btn--ghost:hover:not(:disabled){background:var(--relaya-color-surface-2)}.relaya-root .btn--icon{padding:var(--spacing-xs);color:var(--relaya-color-text-muted);border-radius:var(--relaya-radius-sm);flex-shrink:0;min-width:32px;min-height:32px}.relaya-root .btn--icon:hover{background:var(--relaya-color-surface-2);color:var(--relaya-color-text)}.relaya-root .btn:disabled{opacity:.55;cursor:not-allowed}.relaya-root .error-message{color:var(--relaya-color-danger);font-size:var(--relaya-font-size-sm);padding:var(--spacing-sm) var(--spacing-md);background:color-mix(in srgb, var(--relaya-color-danger) 10%, transparent);border-radius:var(--relaya-radius-sm)}.relaya-root .modal-overlay{z-index:100;padding:var(--spacing-lg);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.relaya-root .modal{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-lg);padding:var(--spacing-xl);width:100%;max-width:440px;box-shadow:0 8px 32px var(--relaya-color-shadow)}.relaya-root .modal__title{font-size:var(--relaya-font-size-base);margin-bottom:var(--spacing-md);font-weight:600}.relaya-root .modal__body{margin-bottom:var(--spacing-lg)}.relaya-root .modal__body p{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);margin-bottom:var(--spacing-sm);line-height:1.5}.relaya-root .modal__body label{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);margin-bottom:var(--spacing-xs);margin-top:var(--spacing-md);font-weight:500;display:block}.relaya-root .modal__body select,.relaya-root .modal__body input,.relaya-root .modal__body textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);background:var(--relaya-color-surface-2);color:var(--relaya-color-text);font-size:var(--relaya-font-size-sm)}.relaya-root .modal__body select:focus,.relaya-root .modal__body input:focus,.relaya-root .modal__body textarea:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .modal__body textarea{resize:vertical;min-height:80px}.relaya-root .modal__footer{gap:var(--spacing-sm);justify-content:flex-end;display:flex}.relaya-root .login-screen{height:100%;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.relaya-root .login-card{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-lg);padding:var(--spacing-xl) var(--spacing-xl);width:100%;max-width:400px;box-shadow:0 4px 24px var(--relaya-color-shadow)}.relaya-root .login-card__logo{text-align:center;margin-bottom:var(--spacing-xl)}.relaya-root .login-card__title{font-size:var(--relaya-font-size-lg);color:var(--relaya-color-text);margin-bottom:var(--spacing-xs);text-align:center;font-weight:600}.relaya-root .login-card__subtitle{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);text-align:center;margin-bottom:var(--spacing-xl)}.relaya-root .login-card__form{gap:var(--spacing-md);flex-direction:column;display:flex}.relaya-root .form-field label{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);margin-bottom:var(--spacing-xs);font-weight:500;display:block}.relaya-root .form-field input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);background:var(--relaya-color-surface-2);color:var(--relaya-color-text);font-size:var(--relaya-font-size-base);transition:border-color .15s}.relaya-root .form-field input:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .magic-link-sent{height:100%;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.relaya-root .magic-link-sent__card{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-lg);padding:var(--spacing-xl);text-align:center;width:100%;max-width:400px;box-shadow:0 4px 24px var(--relaya-color-shadow)}.relaya-root .magic-link-sent__icon{margin-bottom:var(--spacing-lg);font-size:48px}.relaya-root .magic-link-sent__title{font-size:var(--relaya-font-size-lg);margin-bottom:var(--spacing-sm);font-weight:600}.relaya-root .magic-link-sent__body{color:var(--relaya-color-text-muted);font-size:var(--relaya-font-size-sm);margin-bottom:var(--spacing-xl);line-height:1.6}.relaya-root .modal-overlay{z-index:1000;background:#00000080;animation:.2s ease-out fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.relaya-root .auth-modal{z-index:1001;padding:var(--spacing-lg);justify-content:center;align-items:center;animation:.3s ease-out slideUp;display:flex;position:fixed;inset:0}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.relaya-root .auth-modal__content{background:var(--relaya-color-surface);border-radius:var(--relaya-radius-lg);padding:var(--spacing-xl);width:100%;max-width:400px;box-shadow:0 8px 32px var(--relaya-color-shadow);gap:var(--spacing-lg);flex-direction:column;display:flex;position:relative}.relaya-root .auth-modal__close-x{top:var(--spacing-md);right:var(--spacing-md);border-radius:var(--relaya-radius-sm);width:32px;height:32px;color:var(--relaya-color-text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:background-color .15s,color .15s;display:flex;position:absolute}.relaya-root .auth-modal__close-x:hover{background:var(--relaya-color-surface-2);color:var(--relaya-color-text)}.relaya-root .auth-modal__icon{text-align:center;font-size:48px;line-height:1}.relaya-root .auth-modal__title{font-size:var(--relaya-font-size-lg);color:var(--relaya-color-text);text-align:center;margin:0;font-weight:600;line-height:1.3}.relaya-root .auth-modal__message{font-size:var(--relaya-font-size-base);color:var(--relaya-color-text);text-align:center;margin:0;line-height:1.5}.relaya-root .auth-modal__hint{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);text-align:center;margin:0;line-height:1.4}.relaya-root .auth-modal__input{width:100%;padding:12px var(--spacing-md);font-size:var(--relaya-font-size-base);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);background:var(--relaya-color-surface);color:var(--relaya-color-text);font-family:inherit;transition:border-color .2s}.relaya-root .auth-modal__input:focus{border-color:var(--relaya-color-accent);outline:none;box-shadow:0 0 0 3px #007aff1a}.relaya-root .auth-modal__input:disabled{opacity:.6;cursor:not-allowed}.relaya-root .auth-modal__buttons{gap:var(--spacing-md);justify-content:flex-end;display:flex}.relaya-root .auth-modal__close-btn{width:100%}.relaya-root .auth-success{height:100%;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.relaya-root .auth-success__card{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-lg);padding:var(--spacing-xl);text-align:center;width:100%;max-width:480px;box-shadow:0 4px 24px var(--relaya-color-shadow)}.relaya-root .auth-success .success-icon{margin-bottom:var(--spacing-lg);font-size:64px;line-height:1}.relaya-root .auth-success h1{font-size:var(--relaya-font-size-xl);margin-bottom:var(--spacing-sm);color:var(--relaya-color-text);font-weight:600}.relaya-root .auth-success .user-greeting{font-size:var(--relaya-font-size-base);color:var(--relaya-color-text-muted);margin-bottom:var(--spacing-xl)}.relaya-root .auth-success .instructions{margin-bottom:var(--spacing-xl)}.relaya-root .auth-success .instructions p{font-size:var(--relaya-font-size-base);color:var(--relaya-color-text);margin-bottom:var(--spacing-md);line-height:1.6}.relaya-root .auth-success .instructions p:last-child{margin-bottom:0}.relaya-root .auth-success .hint{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted)}.relaya-root .auth-success .btn{min-width:140px}.relaya-root .otp-code-input{flex-direction:column;align-items:center;gap:20px;width:100%;display:flex}.relaya-root .otp-code-input__icon{font-size:48px;line-height:1}.relaya-root .otp-code-input__title{color:var(--relaya-color-text);text-align:center;margin:0;font-size:24px;font-weight:600}.relaya-root .otp-code-input__hint{color:var(--relaya-color-text-muted);text-align:center;margin:0;font-size:14px;line-height:1.5}.relaya-root .otp-code-input__hint strong{color:var(--relaya-color-text);font-weight:500}.relaya-root .otp-code-input__field{letter-spacing:.5em;text-align:center;border:2px solid var(--relaya-color-border);background:var(--relaya-color-surface);width:100%;max-width:240px;color:var(--relaya-color-text);border-radius:8px;padding:16px 12px;font-family:Courier New,Courier,monospace;font-size:28px;font-weight:600;transition:all .2s}@media (width<=600px){.relaya-root .otp-code-input__field{letter-spacing:.4em;padding:14px 10px;font-size:24px}}.relaya-root .otp-code-input__field:focus{border-color:var(--relaya-color-accent);outline:none;box-shadow:0 0 0 3px #007aff1a}.relaya-root .otp-code-input__field:disabled{opacity:.6;cursor:not-allowed}.relaya-root .otp-code-input__field::placeholder{opacity:.3}.relaya-root .otp-code-input__error{color:#ff3b30;text-align:center;background:#ff3b301a;border:1px solid #ff3b304d;border-radius:6px;width:100%;padding:12px 16px;font-size:14px}.relaya-root .otp-code-input__actions{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}@media (width<=400px){.relaya-root .otp-code-input__actions{flex-direction:column;gap:8px}.relaya-root .otp-code-input__actions .btn{width:100%}}.relaya-root .otp-code-input__auto-submit{color:var(--relaya-color-text-muted);margin:0;font-size:13px;font-style:italic}.relaya-root .auth-modal__error{color:#ff3b30;text-align:center;background:#ff3b301a;border:1px solid #ff3b304d;border-radius:6px;width:100%;margin-top:8px;padding:12px 16px;font-size:14px}.relaya-root .mention-chip{background:var(--relaya-color-surface-2);border:1px solid var(--relaya-color-message-own-bg);border-radius:var(--relaya-radius-sm);color:var(--relaya-color-message-own-bg);white-space:nowrap;padding:0 4px;font-size:.9em;font-weight:600;display:inline}.relaya-root .mention-chip--self{background:var(--relaya-color-message-own-bg);border-color:var(--relaya-color-message-own-bg);color:var(--sp-own-msg-text)}.relaya-root .chat-header__title{font-size:var(--relaya-font-size-base);font-weight:600;font-family:var(--sp-name-font);color:var(--sp-name-color);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.relaya-root .chat-header__online{font-size:var(--relaya-font-size-sm);color:var(--sp-online-color);white-space:nowrap;border-radius:var(--relaya-radius-sm);flex-shrink:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex}.relaya-root .chat-header__online:hover{opacity:.7}.relaya-root .online-dot{background:var(--relaya-color-online);border-radius:50%;flex-shrink:0;width:8px;height:8px}.relaya-root .chat-header .btn--ghost{background:var(--sp-btn-bg);border:1px solid var(--sp-btn-border);color:var(--sp-btn-text);padding:3px 10px;font-size:12px}.relaya-root .chat-header .btn--ghost:hover:not(:disabled){opacity:.85;background:var(--sp-btn-bg)}.relaya-root .chat-header .btn--primary{background:var(--sp-btn-bg);color:var(--sp-btn-text);width:auto;padding:3px 10px;font-size:12px}.relaya-root .chat-header .btn--primary:hover:not(:disabled){opacity:.85;background:var(--sp-btn-bg)}.relaya-root .chat-name-btn{min-width:0;max-width:120px;overflow:hidden}.relaya-root .chat-name-btn__label{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.relaya-root .chat-header__popout{flex-shrink:0;line-height:0;padding:4px 6px!important}.relaya-root .chat-header .chat-name-editor__display{font-size:12px;color:var(--sp-no-name-color)!important}.relaya-root .chat-name-editor__input{border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);background:var(--relaya-color-surface);color:var(--relaya-color-text);max-width:140px;padding:3px 8px;font-size:13px}.relaya-root .chat-name-editor__input:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .retention-boundary{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-faint);text-align:center;border-top:1px solid var(--relaya-color-border);margin-bottom:var(--spacing-sm);justify-content:center;align-items:center;display:flex}.relaya-root .load-older-btn{padding:var(--spacing-sm);flex-shrink:0;justify-content:center;display:flex}.relaya-root .load-older-btn button{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-accent);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--relaya-radius-sm)}.relaya-root .load-older-btn button:hover:not(:disabled){background:var(--relaya-color-surface-2)}.relaya-root .messages-empty{color:var(--relaya-color-text-faint);font-size:var(--relaya-font-size-sm);text-align:center;padding:var(--spacing-xl);flex:1;justify-content:center;align-items:center;display:flex}.relaya-root .message-item{--message-avatar-slot-width:32px;gap:var(--spacing-sm);align-items:flex-start;max-width:85%;display:flex;position:relative}.relaya-root .message-item--has-image{max-width:100%}.relaya-root .message-item--has-image.message-item--other .message-item__bubble-wrap{max-width:calc(100% - var(--message-avatar-slot-width) - var(--spacing-sm))}.relaya-root .message-item--has-image.message-item--own .message-item__bubble-wrap{max-width:100%}.relaya-root .message-item--own{flex-direction:row-reverse;align-self:flex-end}.relaya-root .message-item--other{align-self:flex-start}.relaya-root .message-item--deleted{opacity:.65}.relaya-root .message-item__avatar{background:var(--sp-avatar-bg);width:48px;height:48px;color:var(--sp-avatar-text);font-size:var(--relaya-font-size-xs);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.relaya-root .message-item__avatar-column{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:2px;display:flex}.relaya-root .message-item__avatar-slot{width:var(--message-avatar-slot-width);flex-shrink:0;justify-content:center;padding-top:16px;display:flex}.relaya-root .message-item--own .message-item__avatar-slot{margin-left:3px}.relaya-root .message-item--other .message-item__avatar-slot{margin-right:3px;padding-top:0}.relaya-root .message-item__avatar-column .message-item__avatar-slot{padding-top:0}.relaya-root .message-item__avatar--image{object-fit:cover}.relaya-root .message-item__bubble-wrap{flex-direction:column;min-width:0;display:flex}.relaya-root .message-item--own .message-item__bubble-wrap{align-items:flex-end}.relaya-root .message-item__name-row{align-items:baseline;gap:var(--spacing-sm);padding:0 var(--spacing-sm) 2px;width:100%;min-width:0;display:flex}.relaya-root .message-item--other .message-item__name-row{justify-content:space-between}.relaya-root .message-item--own .message-item__name-row{justify-content:flex-end}.relaya-root .message-item__author--mod{color:var(--relaya-color-name-mod)}.relaya-root .message-item__author{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.relaya-root .message-item__time{font-size:var(--relaya-font-size-xs);color:var(--sp-time-color);white-space:nowrap;flex-shrink:0}.relaya-root .message-item__status-row{align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm) 0;display:flex}.relaya-root .message-item__status{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-faint)}.relaya-root .message-item__bubble{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--relaya-radius-bubble);font-family:var(--sp-msg-font);font-size:var(--sp-msg-font-size);word-break:break-word;line-height:1.4;position:relative}.relaya-root .message-link{color:var(--relaya-color-link);word-break:break-all;text-decoration:underline}.relaya-root .message-link:hover,.relaya-root .message-link:active{color:var(--relaya-color-link-active)}.relaya-root .message-item__bubble strong{font-weight:700}.relaya-root .message-item__bare-image-wrap{max-width:100%}.relaya-root .chat-image{justify-content:center;align-items:center;max-width:100%;display:inline-flex;position:relative}.relaya-root .chat-image--inline{vertical-align:middle;margin:1px 2px}.relaya-root .chat-image--bare{display:block}.relaya-root .chat-image__img{width:auto;max-width:100%;height:auto;transition:opacity .15s;display:block}.relaya-root .chat-image__loading{background:color-mix(in srgb, var(--relaya-color-text-faint) 20%, transparent);border-radius:999px;justify-content:center;align-items:center;gap:4px;min-width:56px;min-height:32px;padding:6px 8px;display:inline-flex}.relaya-root .chat-image__loading>span{background:var(--relaya-color-text-muted);border-radius:50%;width:6px;height:6px;animation:.9s ease-in-out infinite chat-image-dot-pulse}.relaya-root .chat-image__loading>span:nth-child(2){animation-delay:.12s}.relaya-root .chat-image__loading>span:nth-child(3){animation-delay:.24s}@keyframes chat-image-dot-pulse{0%,80%,to{opacity:.45;transform:scale(.7)}40%{transform:scale(1)}}.relaya-root .chat-image__fallback{border-radius:var(--relaya-radius-sm);border:1px dashed var(--relaya-color-border);min-width:120px;min-height:32px;color:var(--relaya-color-text-muted);font-size:var(--relaya-font-size-xs);background:var(--relaya-color-surface-2);justify-content:center;align-items:center;padding:6px 10px;display:inline-flex}.relaya-root .message-item--own .message-item__bubble{background:var(--relaya-color-message-own-bg);color:var(--sp-own-msg-text);border-bottom-right-radius:var(--relaya-radius-sm)}.relaya-root .message-item--other .message-item__bubble{background:var(--relaya-color-message-bg);color:var(--sp-other-msg-text);border-bottom-left-radius:var(--relaya-radius-sm)}.relaya-root .message-item--deleted .message-item__bubble{background:var(--relaya-color-deleted-bg);color:var(--relaya-color-deleted-text);font-style:italic;font-size:var(--relaya-font-size-sm)}.relaya-root .message-item--optimistic .message-item__bubble{background:var(--relaya-color-optimistic-bg);opacity:.85}.relaya-root .message-item--failed .message-item__bubble{background:var(--relaya-color-failed-bg)}.relaya-root .scroll-to-bottom{bottom:var(--spacing-md);right:var(--spacing-lg);background:var(--relaya-color-accent);color:#fff;width:36px;height:36px;box-shadow:0 2px 8px var(--relaya-color-shadow);z-index:5;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute}.relaya-root .scroll-to-bottom:hover{background:var(--relaya-color-accent-hover)}.relaya-root .message-item__kebab-btn{width:18px;height:18px;color:var(--relaya-color-text-faint);border-radius:var(--relaya-radius-sm);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:none;position:relative}.relaya-root .message-item__kebab-btn:active{color:var(--relaya-color-text-muted);background:#00000014}.relaya-root .message-item__kebab-menu{z-index:200;background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);min-width:140px;box-shadow:0 4px 16px var(--relaya-color-shadow);position:fixed;overflow:hidden}.relaya-root .message-item__kebab-menu__item{align-items:center;gap:var(--spacing-sm);width:100%;padding:10px var(--spacing-md);font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;font-family:inherit;display:flex}.relaya-root .message-item__kebab-menu__item:hover,.relaya-root .message-item__kebab-menu__item:active{background:var(--relaya-color-surface-2)}.relaya-root .message-item__kebab-menu__item--danger{color:var(--relaya-color-danger)}.relaya-root .kebab-overlay{z-index:199;position:fixed;inset:0}.relaya-root .connection-status{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--relaya-font-size-xs);flex-shrink:0;font-weight:500;display:flex}.relaya-root .connection-status--connecting,.relaya-root .connection-status--reconnecting{background:var(--relaya-color-warning);color:#1a1a2e}.relaya-root .connection-status--disconnected{background:var(--relaya-color-danger);color:#fff}.relaya-root .connection-status--connected{display:none}.relaya-root .connection-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.relaya-root .relaya-branding{text-align:center;color:var(--relaya-color-text);border-top:1px solid var(--relaya-color-border,#ffffff14);flex-shrink:0;padding:4px 8px;font-size:11px}.relaya-root .relaya-branding a{color:inherit;text-decoration:none;transition:opacity .15s}.relaya-root .relaya-branding a:hover{opacity:.75;text-decoration:underline}.relaya-root .message-input-bar{align-items:flex-end;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-top:1px solid var(--relaya-color-border);background:var(--relaya-color-surface);flex-shrink:0;display:flex;position:relative}.relaya-root .sticker-btn{border:1px solid var(--relaya-color-border);background:var(--relaya-color-surface-2);width:36px;height:36px;color:var(--relaya-color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.relaya-root .sticker-btn:hover:not(:disabled){background:var(--relaya-color-surface);color:var(--relaya-color-text)}.relaya-root .sticker-btn:disabled{opacity:.45;cursor:not-allowed}.relaya-root .message-input{min-height:36px;max-height:120px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-bubble);background:var(--relaya-color-input-bg);color:var(--relaya-color-input-text);font-size:var(--relaya-font-size-base);font-family:var(--sp-msg-font);resize:none;flex:1;line-height:1.4;transition:border-color .15s;overflow-y:auto}.relaya-root .message-input:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .message-input::placeholder{color:var(--relaya-color-text-faint)}.relaya-root .message-input:disabled{opacity:.55}.relaya-root .send-btn{background:var(--relaya-color-btn-bg);width:36px;height:36px;color:var(--relaya-color-btn-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex}.relaya-root .send-btn:hover:not(:disabled){opacity:.85}.relaya-root .send-btn:disabled{opacity:.4;cursor:not-allowed}.relaya-root .sticker-picker__overlay{z-index:170;background:#00000059;position:fixed;inset:0}.relaya-root .sticker-picker{left:50%;bottom:calc(var(--input-height) + var(--spacing-md));border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-lg);background:var(--relaya-color-surface);width:min(92vw,920px);max-height:min(70vh,620px);box-shadow:0 10px 32px var(--relaya-color-shadow);z-index:171;flex-direction:column;display:flex;position:fixed;transform:translate(-50%)}.relaya-root .sticker-picker__header{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--relaya-color-border);font-size:var(--relaya-font-size-sm);justify-content:space-between;align-items:center;font-weight:600;display:flex}.relaya-root .sticker-picker__close{min-width:28px;min-height:28px}.relaya-root .sticker-picker__body{padding:var(--spacing-md);overflow-y:auto}.relaya-root .sticker-picker__state{color:var(--relaya-color-text-muted);font-size:var(--relaya-font-size-sm);padding:var(--spacing-lg) var(--spacing-sm)}.relaya-root .sticker-picker__grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(128px,1fr));display:grid}.relaya-root .sticker-picker__item{aspect-ratio:1;border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);background:var(--relaya-color-surface-2);justify-content:center;align-items:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-xs);flex-direction:column;display:flex;overflow:hidden}.relaya-root .sticker-picker__item:hover{border-color:var(--relaya-color-accent);background:var(--relaya-color-surface)}.relaya-root .sticker-picker__item img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100% - 20px)}.relaya-root .sticker-picker__item-label{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);line-height:1.2}.relaya-root .sticker-suggestions{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);box-shadow:0 8px 24px var(--relaya-color-shadow);z-index:175;flex-direction:column;max-height:220px;display:flex;position:absolute;bottom:calc(100% + 8px);left:56px;right:52px;overflow-y:auto}.relaya-root .sticker-suggestions__item{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;display:flex}.relaya-root .sticker-suggestions__item:hover{background:var(--relaya-color-surface-2)}.relaya-root .sticker-suggestions__item img{object-fit:contain;flex-shrink:0;width:32px;height:32px}.relaya-root .sticker-suggestions__code{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text)}.relaya-root .mention-suggestions{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);box-shadow:0 8px 24px var(--relaya-color-shadow);z-index:175;flex-direction:column;min-width:120px;max-height:200px;display:flex;position:absolute;bottom:calc(100% + 8px);left:56px;overflow-y:auto}.relaya-root .mention-suggestions__item{align-items:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--relaya-font-size-sm);display:flex}.relaya-root .mention-suggestions__item:hover,.relaya-root .mention-suggestions__item--highlighted{background:var(--relaya-color-surface-2)}.relaya-root .mention-suggestions__at{color:var(--relaya-color-accent);flex-shrink:0;font-weight:700}.relaya-root .mention-suggestions__name{color:var(--relaya-color-text);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.relaya-root .user-list{width:var(--sidebar-width);border-left:1px solid var(--relaya-color-border);background:var(--relaya-color-surface-2);padding:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;flex-shrink:0;display:none;overflow-y:auto}.relaya-root .user-list__title{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--relaya-color-border);font-weight:600}.relaya-root .user-list__item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);border-radius:var(--relaya-radius-sm);font-size:var(--relaya-font-size-sm);display:flex}.relaya-root .user-list__avatar{background:var(--sp-avatar-bg);width:24px;height:24px;color:var(--sp-avatar-text);font-size:var(--relaya-font-size-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.relaya-root .user-list__name{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--relaya-color-text);flex:1;overflow:hidden}.relaya-root .user-list__self-badge{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-faint)}.relaya-root .pane-divider{cursor:col-resize;background:var(--relaya-color-border);flex-shrink:0;width:5px;transition:background .15s;display:none}.relaya-root .pane-divider:hover{background:var(--relaya-color-text-faint)}.relaya-root .user-list-modal__header{justify-content:space-between;align-items:center;display:flex}.relaya-root .user-list-modal__body{max-height:50vh;padding-right:var(--spacing-xs);margin-bottom:0;overflow-y:auto}.relaya-root .user-list-modal__item{padding:var(--spacing-xs) 0}.relaya-root .user-list-modal__close{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);padding:var(--spacing-xs)}.relaya-root .user-list-modal__close:hover{color:var(--relaya-color-text);background:var(--relaya-color-surface-2);border-radius:var(--relaya-radius-sm)}.relaya-root .admin-panel{background:var(--relaya-color-bg);height:100%;overflow-y:auto}.relaya-root .admin-panel__header{padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);border-bottom:1px solid var(--relaya-color-border);background:var(--relaya-color-surface)}.relaya-root .admin-panel__title{color:var(--relaya-color-text);margin:0;font-size:22px;font-weight:600}.relaya-root .admin-panel__subtitle{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);margin:var(--spacing-xs) 0 0}.relaya-root .admin-panel__loading,.relaya-root .admin-panel__unauthorized{justify-content:center;align-items:center;gap:var(--spacing-md);height:100%;color:var(--relaya-color-text-muted);font-size:var(--relaya-font-size-sm);text-align:center;padding:var(--spacing-xl);flex-direction:column;display:flex}.relaya-root .admin-settings{border-top:1px solid var(--relaya-color-border);background:var(--relaya-color-surface-2);padding:var(--spacing-md) var(--spacing-lg)}.relaya-root .admin-settings__toggle{align-items:center;gap:var(--spacing-sm);font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);width:100%;padding:0;font-weight:500;display:flex}.relaya-root .admin-settings__toggle:hover{color:var(--relaya-color-text)}.relaya-root .admin-settings__panel{margin-top:var(--spacing-md)}.relaya-root .admin-settings__section{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.relaya-root .admin-settings__section-copy{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);flex-direction:column;gap:2px;display:flex}.relaya-root .admin-settings__section-copy strong{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text)}.relaya-root .admin-settings__notice{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text);background:color-mix(in srgb, var(--relaya-color-warning) 15%, transparent);border-left:3px solid var(--relaya-color-warning);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--relaya-radius-sm);margin-bottom:var(--spacing-md);line-height:1.4}.relaya-root .admin-settings__grid{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.relaya-root .admin-settings__field label{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);margin-bottom:var(--spacing-xs);font-weight:500;display:block}.relaya-root .admin-settings__field input{width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);background:var(--relaya-color-surface);color:var(--relaya-color-text);font-size:var(--relaya-font-size-sm)}.relaya-root .sticker-admin-page{background:var(--relaya-color-bg);flex-direction:column;gap:6px;min-height:100%;padding:8px;display:flex;overflow-y:auto}.relaya-root .sticker-admin-page__topbar{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.relaya-root .sticker-admin-page__title-group{flex-direction:column;gap:2px;min-width:0;display:flex}.relaya-root .sticker-admin-page__title-row{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.relaya-root .sticker-admin-page__header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);display:flex}.relaya-root .sticker-admin-page__back{margin-bottom:0;font-size:12px;padding:3px 8px!important}.relaya-root .sticker-admin-page__title{font-size:18px;line-height:1.1}.relaya-root .sticker-admin-page__subtitle{color:var(--relaya-color-text-muted);margin-top:0;font-size:12px}.relaya-root .sticker-admin-page__status-inline{background:color-mix(in srgb, var(--relaya-color-success) 10%, transparent);min-height:18px;color:var(--relaya-color-success);border-radius:999px;align-items:center;gap:4px;width:fit-content;max-width:100%;padding:1px 8px;font-size:11px;line-height:1.2;display:inline-flex}.relaya-root .sticker-admin-page__header-actions{flex-shrink:0;gap:6px;display:flex}.relaya-root .sticker-admin-page__header-actions .btn{min-height:32px;padding:3px 10px;font-size:12px}.relaya-root .sticker-admin-page__notice,.relaya-root .sticker-admin-page__error,.relaya-root .sticker-admin-page__success,.relaya-root .sticker-admin-page__state{border-radius:var(--relaya-radius-md);padding:6px 10px;font-size:12px}.relaya-root .sticker-admin-page__notice{background:color-mix(in srgb, var(--relaya-color-accent) 10%, transparent);color:var(--relaya-color-text)}.relaya-root .sticker-admin-page__error{background:color-mix(in srgb, var(--relaya-color-danger) 10%, transparent);color:var(--relaya-color-danger)}.relaya-root .sticker-admin-page__success{background:color-mix(in srgb, var(--relaya-color-success) 10%, transparent);color:var(--relaya-color-success)}.relaya-root .sticker-admin-page__toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.relaya-root .sticker-admin-page__count{color:var(--relaya-color-text-muted);font-size:12px;line-height:1}.relaya-root .sticker-admin-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:6px;display:grid}.relaya-root .sticker-admin-card{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:10px;flex-direction:column;transition:border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex;overflow:hidden}.relaya-root .sticker-admin-card--dragging{opacity:.45;transform:scale(.98)}.relaya-root .sticker-admin-card--drop-target{border-color:var(--relaya-color-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--relaya-color-accent) 65%, transparent)}.relaya-root .sticker-admin-card__preview{background:var(--relaya-color-surface-2);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:122px;padding:4px;display:flex}.relaya-root .sticker-admin-card__preview--draggable{cursor:grab;-webkit-user-select:none;user-select:none;position:relative}.relaya-root .sticker-admin-card__preview--draggable:active{cursor:grabbing}.relaya-root .sticker-admin-card__preview img{object-fit:contain;width:96px;max-width:96px;height:auto;max-height:96px}.relaya-root .sticker-admin-card__drag-badge{background:color-mix(in srgb, var(--relaya-color-surface) 92%, transparent);border:1px solid color-mix(in srgb, var(--relaya-color-border) 90%, transparent);min-height:20px;color:var(--relaya-color-text-muted);pointer-events:none;border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:4px 8px;font-size:9px;line-height:1;display:inline-flex;position:static}.relaya-root .sticker-admin-card__drag-badge svg{width:10px;height:10px;display:block}.relaya-root .sticker-admin-card__body{flex-direction:column;gap:4px;padding:4px;display:flex}.relaya-root .sticker-admin-card__filename{color:var(--relaya-color-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.relaya-root .sticker-admin-card__field{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);flex-direction:column;gap:0;display:flex}.relaya-root .sticker-admin-card__shortcode-input{border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);background:var(--relaya-color-surface-2);align-items:center;gap:4px;padding:0 4px;display:flex}.relaya-root .sticker-admin-card__shortcode-input input{background:0 0;border:none;flex:1;min-width:0;padding:4px 0;font-size:11px}.relaya-root .sticker-admin-card__shortcode-input input:focus{outline:none}.relaya-root .sticker-admin-card__meta{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-faint);flex-direction:column;gap:2px;display:flex}.relaya-root .sticker-admin-card__actions{flex-wrap:wrap;gap:3px;display:flex}.relaya-root .sticker-admin-card__actions .btn{min-height:20px;padding:2px 6px;font-size:10px;line-height:1}.relaya-root .report-review{border-top:1px solid var(--relaya-color-border);background:var(--relaya-color-surface-2);padding:var(--spacing-md) var(--spacing-lg)}.relaya-root .report-review__toggle{align-items:center;gap:var(--spacing-sm);font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);width:100%;padding:0;font-weight:500;display:flex}.relaya-root .report-review__toggle:hover{color:var(--relaya-color-text)}.relaya-root .report-review__badge{min-width:18px;height:18px;margin-left:var(--spacing-sm);background:var(--relaya-color-danger);color:#fff;font-size:var(--relaya-font-size-xs);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-weight:600;line-height:1;display:inline-flex}.relaya-root .report-review__panel{margin-top:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;max-height:360px;display:flex;overflow-y:auto}.relaya-root .report-review__loading,.relaya-root .report-review__empty{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);padding:var(--spacing-sm) 0}.relaya-root .report-review__error{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-danger);padding:var(--spacing-sm) 0}.relaya-root .report-card{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;display:flex}.relaya-root .report-card__meta{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.relaya-root .report-card__reason{font-size:var(--relaya-font-size-xs);text-transform:capitalize;color:var(--relaya-color-text-muted);background:color-mix(in srgb, var(--relaya-color-warning) 15%, transparent);border-radius:var(--relaya-radius-sm);padding:1px 6px;font-weight:600}.relaya-root .report-card__time{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-faint);flex-shrink:0}.relaya-root .report-card__message{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);word-break:break-word;padding:var(--spacing-xs) 0;border-top:1px solid var(--relaya-color-border);border-bottom:1px solid var(--relaya-color-border);line-height:1.4}.relaya-root .report-card__deleted{color:var(--relaya-color-text-muted)}.relaya-root .report-card__details{gap:var(--spacing-sm) var(--spacing-lg);font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);flex-wrap:wrap;display:flex}.relaya-root .report-card__details strong{color:var(--relaya-color-text)}.relaya-root .report-card__actions{gap:var(--spacing-xs);padding-top:var(--spacing-xs);flex-wrap:wrap;display:flex}.relaya-root .report-review__pagination{justify-content:center;align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-xs);display:flex}.relaya-root .report-review__page-info{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted)}.relaya-root .ban-management{border-top:1px solid var(--relaya-color-border);background:var(--relaya-color-surface-2);padding:var(--spacing-md) var(--spacing-lg)}.relaya-root .ban-management__toggle{align-items:center;gap:var(--spacing-sm);font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);width:100%;padding:0;font-weight:500;display:flex}.relaya-root .ban-management__toggle:hover{color:var(--relaya-color-text)}.relaya-root .ban-management__badge{min-width:18px;height:18px;margin-left:var(--spacing-sm);background:var(--relaya-color-warning);color:#1a1a2e;font-size:var(--relaya-font-size-xs);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-weight:600;line-height:1;display:inline-flex}.relaya-root .ban-management__panel{margin-top:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;max-height:320px;display:flex;overflow-y:auto}.relaya-root .ban-management__loading,.relaya-root .ban-management__empty{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);padding:var(--spacing-sm) 0}.relaya-root .ban-management__error{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-danger);padding:var(--spacing-sm) 0}.relaya-root .ban-card{background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;display:flex}.relaya-root .ban-card__header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.relaya-root .ban-card__user{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);font-weight:600}.relaya-root .ban-card__expiry{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);flex-shrink:0}.relaya-root .ban-card__expiry--permanent{color:var(--relaya-color-danger);font-weight:600}.relaya-root .ban-card__details{gap:var(--spacing-xs) var(--spacing-lg);font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);flex-wrap:wrap;display:flex}.relaya-root .ban-card__details strong{color:var(--relaya-color-text)}.relaya-root .ban-card__actions{padding-top:var(--spacing-xs)}.relaya-root .theme-admin-page{min-height:100%;padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex;overflow-y:auto}.relaya-root .theme-admin-page__topbar{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.relaya-root .theme-admin-page__title-group{flex:1;min-width:0}.relaya-root .theme-admin-page__title-row{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.relaya-root .theme-admin-page__back{flex-shrink:0;margin-bottom:0}.relaya-root .theme-admin-page__title{color:var(--relaya-color-text);margin:0;font-size:18px;font-weight:600}.relaya-root .theme-admin-page__subtitle{margin-top:var(--spacing-xs);font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);margin-bottom:0}.relaya-root .theme-admin-page__status-inline{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-success);background:color-mix(in srgb, var(--relaya-color-success) 12%, transparent);border-radius:var(--relaya-radius-sm);align-items:center;padding:2px 8px;display:inline-flex}.relaya-root .theme-admin-page__header-actions{gap:var(--spacing-xs);flex-shrink:0;align-items:center;display:flex}.relaya-root .theme-admin-page__header-actions .btn{font-size:var(--relaya-font-size-sm);padding:3px 10px}.relaya-root .theme-admin-page__error,.relaya-root .theme-admin-page__state{border-radius:var(--relaya-radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--relaya-font-size-sm)}.relaya-root .theme-admin-page__error{background:color-mix(in srgb, var(--relaya-color-danger) 10%, transparent);color:var(--relaya-color-danger)}.relaya-root .theme-admin-page__state{color:var(--relaya-color-text-muted);background:var(--relaya-color-surface)}.relaya-root .theme-admin-list{border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);flex-direction:column;gap:0;display:flex;overflow:hidden}.relaya-root .theme-admin-row{align-items:center;gap:var(--spacing-sm);padding:8px var(--spacing-sm);background:var(--relaya-color-surface);border-bottom:1px solid var(--relaya-color-border);grid-template-columns:36px 1fr 90px;transition:background .1s;display:grid}.relaya-root .theme-admin-row:last-child{border-bottom:none}.relaya-root .theme-admin-row:hover{background:color-mix(in srgb, var(--relaya-color-accent) 4%, var(--relaya-color-surface))}.relaya-root .theme-admin-row__swatch{border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);cursor:pointer;background:0 0;flex-shrink:0;width:32px;height:28px;padding:0}.relaya-root .theme-admin-row__label{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);white-space:nowrap;text-overflow:ellipsis;cursor:default;overflow:hidden}.relaya-root .theme-admin-row__hex{font-size:11px;font-family:var(--relaya-font-mono,monospace);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);background:var(--relaya-color-bg);color:var(--relaya-color-text);width:100%;padding:3px 6px}.relaya-root .theme-admin-row__hex--invalid{border-color:var(--relaya-color-danger);color:var(--relaya-color-danger)}.relaya-root .theme-admin-row__hex:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .theme-admin-page__tabs{border-bottom:1px solid var(--relaya-color-border);margin-bottom:var(--spacing-xs);gap:2px;display:flex}.relaya-root .theme-admin-page__tab{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 16px;transition:color .1s,border-color .1s}.relaya-root .theme-admin-page__tab:hover{color:var(--relaya-color-text)}.relaya-root .theme-admin-page__tab--active{color:var(--relaya-color-accent);border-bottom-color:var(--relaya-color-accent);font-weight:500}.relaya-root .geo-admin{gap:var(--spacing-lg);padding:var(--spacing-sm) 0;flex-direction:column;display:flex}.relaya-root .geo-admin__status{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);padding:var(--spacing-sm) 0}.relaya-root .geo-admin__status--unavailable{background:color-mix(in srgb, var(--relaya-color-warning) 10%, transparent);border-left:3px solid var(--relaya-color-warning);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--relaya-radius-sm);color:var(--relaya-color-text)}.relaya-root .geo-admin__status--error{color:var(--relaya-color-danger)}.relaya-root .geo-admin__action-error{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-danger);background:color-mix(in srgb, var(--relaya-color-danger) 8%, transparent);border-radius:var(--relaya-radius-sm);padding:var(--spacing-xs) var(--spacing-sm)}.relaya-root .geo-admin__section{gap:var(--spacing-sm);flex-direction:column;display:flex}.relaya-root .geo-admin__section-title{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);align-items:center;gap:var(--spacing-sm);border-bottom:1px solid var(--relaya-color-border);padding-bottom:var(--spacing-xs);margin:0;font-weight:600;display:flex}.relaya-root .geo-admin__badge{background:var(--relaya-color-warning);color:#1a1a2e;min-width:18px;height:18px;font-size:var(--relaya-font-size-xs);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-weight:600;line-height:1;display:inline-flex}.relaya-root .geo-admin__field{gap:var(--spacing-xs);flex-direction:column;display:flex}.relaya-root .geo-admin__label{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);font-weight:500}.relaya-root .geo-admin__select,.relaya-root .geo-admin__input,.relaya-root .geo-admin__filter-input,.relaya-root .geo-admin__combobox-input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);background:var(--relaya-color-surface);color:var(--relaya-color-text);font-size:var(--relaya-font-size-sm);width:100%}.relaya-root .geo-admin__select:focus,.relaya-root .geo-admin__input:focus,.relaya-root .geo-admin__filter-input:focus,.relaya-root .geo-admin__combobox-input:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .geo-admin__hint{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);margin:0}.relaya-root .geo-admin__hint--empty{font-style:italic}.relaya-root .geo-admin__chips{flex-wrap:wrap;gap:6px;display:flex}.relaya-root .geo-admin__chip{background:color-mix(in srgb, var(--relaya-color-accent) 12%, var(--relaya-color-surface));border:1px solid color-mix(in srgb, var(--relaya-color-accent) 30%, var(--relaya-color-border));font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text);border-radius:999px;align-items:center;gap:5px;padding:3px 8px 3px 10px;line-height:1;display:inline-flex}.relaya-root .geo-admin__chip-remove{width:16px;height:16px;color:var(--relaya-color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;transition:color .1s,background .1s;display:inline-flex}.relaya-root .geo-admin__chip-remove:hover{color:var(--relaya-color-danger);background:color-mix(in srgb, var(--relaya-color-danger) 12%, transparent)}.relaya-root .geo-admin__combobox{position:relative}.relaya-root .geo-admin__combobox-list{z-index:100;background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);max-height:220px;margin:0;padding:2px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000026}.relaya-root .geo-admin__combobox-item{width:100%;padding:6px var(--spacing-sm);text-align:left;font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;display:block;overflow:hidden}.relaya-root .geo-admin__combobox-item:hover{background:color-mix(in srgb, var(--relaya-color-accent) 10%, transparent);color:var(--relaya-color-accent)}.relaya-root .geo-admin__combobox-empty{padding:8px var(--spacing-sm);font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);font-style:italic}.relaya-root .geo-admin__ban-list{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow-y:auto}.relaya-root .geo-admin__ban-row{justify-content:space-between;align-items:center;gap:var(--spacing-sm);background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);padding:6px var(--spacing-sm);display:flex}.relaya-root .geo-admin__ban-info{align-items:baseline;gap:4px var(--spacing-sm);flex-wrap:wrap;min-width:0;display:flex}.relaya-root .geo-admin__ban-ip{font-family:var(--relaya-font-mono,monospace);font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text);font-weight:600}.relaya-root .geo-admin__ban-reason{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted)}.relaya-root .geo-admin__ban-expiry{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-faint);flex-shrink:0}.relaya-root .geo-admin__lift-btn{flex-shrink:0;min-height:22px;padding:2px 8px;font-size:11px}.relaya-root .geo-admin__add-toggle{align-items:center;gap:var(--spacing-xs);font-size:var(--relaya-font-size-xs);color:var(--relaya-color-accent);cursor:pointer;margin-top:var(--spacing-xs);background:0 0;border:none;padding:0;font-weight:500;display:inline-flex}.relaya-root .geo-admin__add-toggle:hover{text-decoration:underline}.relaya-root .geo-admin__add-ban-form{gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--relaya-color-surface);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);margin-top:var(--spacing-xs);flex-direction:column;display:flex}.relaya-root .export-admin-page{padding:var(--spacing-sm) 0}.relaya-root .export-admin-page__notice{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);margin:0 0 var(--spacing-md)}.relaya-root .export-admin-page__unavailable{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-muted);background:color-mix(in srgb, var(--relaya-color-warning) 10%, transparent);border-left:3px solid var(--relaya-color-warning);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--relaya-radius-sm);margin:0}.relaya-root .export-admin-page__error{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-danger);background:color-mix(in srgb, var(--relaya-color-danger) 8%, transparent);border-radius:var(--relaya-radius-sm);padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-md)}.relaya-root .export-admin-page__form{gap:var(--spacing-md);flex-direction:column;display:flex}.relaya-root .export-admin-page__date-row{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.relaya-root .export-admin-page__exclude-row{gap:var(--spacing-xs);flex-direction:column;display:flex}.relaya-root .export-admin-page__label{align-items:center;gap:var(--spacing-sm);font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);font-weight:500;display:flex}.relaya-root .export-admin-page__date-input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);background:var(--relaya-color-surface);color:var(--relaya-color-text);font-size:var(--relaya-font-size-sm)}.relaya-root .export-admin-page__date-input:focus{border-color:var(--relaya-color-accent);outline:none}.relaya-root .export-admin-page__field-error{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-danger);margin:0}.relaya-root .export-admin-page__btn{align-self:stretch}.relaya-root .export-admin-page__hint{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-muted);margin:0}.relaya-root .moderator-admin-page{flex-direction:column;gap:0;display:flex}.relaya-root .moderator-admin-page__topbar{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--relaya-color-border);margin-bottom:var(--spacing-sm)}.relaya-root .moderator-admin-page__title-row{align-items:baseline;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.relaya-root .moderator-admin-page__title{color:var(--relaya-color-text);margin:0;font-size:16px;font-weight:600}.relaya-root .moderator-admin-page__section{padding:var(--spacing-sm) var(--spacing-md)}.relaya-root .moderator-admin-page__section+.moderator-admin-page__section{margin-top:var(--spacing-xs)}.relaya-root .moderator-admin-page__section-title{color:var(--relaya-color-text-muted);text-transform:uppercase;letter-spacing:.07em;margin:0 0 var(--spacing-xs) 0;font-size:11px;font-weight:600}.relaya-root .moderator-admin-page__divider{border:none;border-top:1px solid var(--relaya-color-border);margin:0 0 var(--spacing-sm) 0}.relaya-root .moderator-admin-page__filter{box-sizing:border-box;width:100%;padding:5px var(--spacing-sm);color:var(--relaya-color-text);background:var(--relaya-color-bg);border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-sm);margin-bottom:var(--spacing-sm);outline:none;font-size:11px;transition:border-color .15s;display:block}.relaya-root .moderator-admin-page__filter::placeholder{color:var(--relaya-color-text-faint)}.relaya-root .moderator-admin-page__filter:focus{border-color:var(--relaya-color-accent)}.relaya-root .moderator-admin-page__list{border:1px solid var(--relaya-color-border);border-radius:var(--relaya-radius-md);margin:0;padding:0;list-style:none;overflow:hidden}.relaya-root .moderator-admin-page__item{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:2px var(--spacing-sm);background:var(--relaya-color-surface);border-bottom:1px solid var(--relaya-color-border);transition:background .1s;display:flex}.relaya-root .moderator-admin-page__item:last-child{border-bottom:none}.relaya-root .moderator-admin-page__item:hover{background:color-mix(in srgb, var(--relaya-color-accent) 4%, var(--relaya-color-surface))}.relaya-root .moderator-admin-page__member-label{color:var(--relaya-color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11px;font-weight:500;overflow:hidden}.relaya-root .moderator-admin-page__list-hint{color:var(--relaya-color-text-muted);margin:0 0 var(--spacing-xs) 0;font-size:10px}.relaya-root .moderator-admin-page__item .btn{flex-shrink:0;min-height:22px;padding:2px 8px;font-size:11px}.relaya-root .moderator-admin-page__demote-link{color:var(--relaya-color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:11px;font-weight:500;text-decoration:none}.relaya-root .moderator-admin-page__demote-link:hover:not(:disabled){color:var(--relaya-color-danger);text-decoration:underline}.relaya-root .moderator-admin-page__demote-link:disabled{opacity:.4;cursor:default}.relaya-root .moderator-admin-page__promote-link{color:var(--relaya-color-accent);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:11px;font-weight:500;text-decoration:none}.relaya-root .moderator-admin-page__promote-link:hover:not(:disabled){text-decoration:underline}.relaya-root .moderator-admin-page__promote-link:disabled{opacity:.4;cursor:default}.relaya-root .message-item__edit-form{background:var(--relaya-color-surface-2);border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex}.relaya-root .message-item__edit-textarea{border:1px solid var(--relaya-color-border);background:var(--relaya-color-surface);width:100%;min-height:60px;color:var(--relaya-color-text);resize:vertical;border-radius:4px;padding:8px;font-family:inherit;font-size:14px;line-height:1.4}.relaya-root .message-item__edit-textarea:focus{outline:2px solid var(--relaya-color-accent);outline-offset:1px}.relaya-root .message-item__edit-error{color:var(--relaya-color-error,#e74c3c);padding:4px 0;font-size:12px}.relaya-root .message-item__edit-actions{justify-content:flex-end;gap:8px;display:flex}.relaya-root .message-item__edit-actions .btn{min-width:60px}.relaya-root .message-input-container{flex-direction:column;display:flex}.relaya-root .reply-preview{padding:var(--spacing-sm) var(--spacing-md);background:var(--relaya-color-surface-2,#f5f5f5);border-top:1px solid var(--relaya-color-border);justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.relaya-root .reply-preview__content{align-items:center;gap:var(--spacing-sm);flex:1;min-width:0;display:flex}.relaya-root .reply-preview__line{background:var(--relaya-color-accent,#3b82f6);border-radius:2px;flex-shrink:0;width:3px;height:36px}.relaya-root .reply-preview__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.relaya-root .reply-preview__author{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text);font-weight:600}.relaya-root .reply-preview__excerpt{font-size:var(--relaya-font-size-sm);color:var(--relaya-color-text-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.relaya-root .reply-preview__cancel{padding:var(--spacing-xs);cursor:pointer;color:var(--relaya-color-text-secondary,#6b7280);border-radius:var(--relaya-radius-sm);background:0 0;border:none;flex-shrink:0;font-size:18px;line-height:1;transition:background .15s}.relaya-root .reply-preview__cancel:hover{color:var(--relaya-color-text);background:#0000000d}.relaya-root .message-reply-bubble{align-items:stretch;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);background:var(--reply-bubble-bg,#0000000f);border-radius:var(--relaya-radius-sm);border-left:3px solid var(--relaya-color-accent,#3b82f6);padding:6px 8px;display:flex}.relaya-root .message-reply-bubble__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.relaya-root .message-reply-bubble__author{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-accent,#3b82f6);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.relaya-root .message-reply-bubble__excerpt{font-size:var(--relaya-font-size-xs);color:var(--relaya-color-text-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (prefers-color-scheme:dark){.relaya-root .message-reply-bubble{--reply-bubble-bg:#ffffff14}}.relaya-root .message-item--own .message-reply-bubble{--reply-bubble-bg:#fff3;border-left-color:#ffffffb3}.relaya-root .message-item--own .message-reply-bubble__author{color:#fff}.relaya-root .message-item--own .message-reply-bubble__excerpt{color:#ffffffbf}@media (width>=768px){.relaya-root .user-list{display:flex}.relaya-root .pane-divider{display:block}}@media (width<=479px){.relaya-root .chat-header__signout{display:none}.relaya-root .chat-name-btn{max-width:80px}}@media (width<=599px){.relaya-root .message-item{max-width:95%}.relaya-root .chat-header{padding:0 var(--spacing-sm);gap:var(--spacing-xs)}.relaya-root .message-list,.relaya-root .message-input-bar{padding:var(--spacing-sm) var(--spacing-md)}.relaya-root .send-btn,.relaya-root .sticker-btn{width:44px;height:44px}.relaya-root .sticker-picker{width:min(96vw,560px);bottom:calc(var(--input-height) + var(--spacing-sm));max-height:62vh}.relaya-root .sticker-suggestions{left:var(--spacing-md);right:var(--spacing-md);bottom:calc(100% + 6px)}.relaya-root .sticker-picker__grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.relaya-root .btn--icon{min-width:40px;min-height:40px}.relaya-root .message-item__kebab-btn{display:inline-flex}.relaya-root .sticker-admin-page{padding:var(--spacing-md)}.relaya-root .sticker-admin-page__topbar,.relaya-root .admin-settings__section{flex-direction:column;align-items:stretch}.relaya-root .sticker-admin-page__header-actions{width:100%}.relaya-root .sticker-admin-page__header-actions .btn{flex:1}.relaya-root .auth-modal{padding:0}.relaya-root .auth-modal__content{width:100%;max-width:none;height:100%;padding:var(--spacing-xl) var(--spacing-lg);border-radius:0;justify-content:center}.relaya-root .auth-modal__buttons{flex-direction:column-reverse}.relaya-root .auth-modal__buttons .btn{width:100%}}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2)format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}.relaya-root .mute-toggle{cursor:pointer;color:#fff;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;min-width:24px;min-height:24px;margin-left:auto;margin-right:-10px;padding:4px 6px;transition:opacity .2s;display:flex}.relaya-root .mute-toggle:hover{opacity:.8}.relaya-root .mute-toggle:focus{outline:2px solid var(--primary-color,#007bff);outline-offset:2px;border-radius:4px}.relaya-root .mute-toggle:focus:not(:focus-visible){outline:none}.relaya-root .mute-toggle:active{opacity:.6}.relaya-root .mute-toggle__icon{width:18px;height:18px;display:block}.relaya-root .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
|
|
2
|
+
/*$vite$:1*/
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@relaya-chat/react",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Drop-in community chat component for React apps — real-time, moderated, WebSocket-based. Connects to the Relaya SaaS at api.relaya.chat. Embed with one line or go headless with hooks.",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"chat", "real-time", "realtime", "community-chat", "react",
|
|
8
|
+
"react-component", "websocket", "moderation", "live", "ugc",
|
|
9
|
+
"embeddable", "radio", "component-library"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/relaya-chat/sdk.git",
|
|
15
|
+
"directory": "packages/react"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://relaya.chat",
|
|
18
|
+
"type": "module",
|
|
19
|
+
"main": "./dist/index.cjs",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"import": "./dist/index.js",
|
|
25
|
+
"require": "./dist/index.cjs",
|
|
26
|
+
"types": "./dist/index.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./admin": {
|
|
29
|
+
"import": "./dist/admin.js",
|
|
30
|
+
"types": "./dist/admin.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"./styles": "./dist/relaya.css"
|
|
33
|
+
},
|
|
34
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "vite build",
|
|
37
|
+
"dev": "vite build --watch",
|
|
38
|
+
"lint": "eslint src --ext .ts,.tsx"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"react": ">=18.0.0",
|
|
42
|
+
"react-dom": ">=18.0.0"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@relaya-chat/core": "^1.0.0",
|
|
46
|
+
"react-icons": "^5.6.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/react": "^18.3.0",
|
|
50
|
+
"@types/react-dom": "^18.3.0",
|
|
51
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
52
|
+
"vite": "^8.0.8"
|
|
53
|
+
}
|
|
54
|
+
}
|