:root{color:#172018;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f8f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}:root{--tg-bg:#e8edf3;--tg-text:#14202b;--tg-hint:#6d7a86;--tg-button:#2aabee;--tg-button-text:#fff;--tg-panel:#fff;--tg-border:#14202b1f;--tg-soft-border:#14202b14;--tg-message-incoming:#fff;--tg-message-own:#dff1ff;--tg-message-own-border:#2aabee33;--tg-shadow:0 1px 2px #14202b1a;--tg-danger:#ef4444}:root[data-theme=dark]{--tg-border:#eef5fb24;--tg-soft-border:#eef5fb14;--tg-message-incoming:#1f2c38;--tg-message-own:#15344a;--tg-message-own-border:#2aabee52;--tg-shadow:0 1px 2px #0000004d}body{background:var(--tg-bg);color:var(--tg-text)}.app-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.app-panel{border:1px solid var(--tg-border);background:var(--tg-panel);border-radius:8px;width:min(100%,560px);padding:24px}.app-eyebrow{color:var(--tg-hint);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:.82rem;font-weight:700}.app-panel h1{letter-spacing:0;margin:0 0 12px;font-size:clamp(1.6rem,1.2rem + 1vw,2.1rem);line-height:1.15}.app-copy{color:var(--tg-hint);margin:0;line-height:1.5}.app-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.app-button{background:var(--tg-button);min-height:42px;color:var(--tg-button-text);cursor:pointer;border:0;border-radius:8px;padding:0 16px;font-weight:700}.app-button-secondary{border:1px solid var(--tg-border);color:var(--tg-text);background:0 0}.app-button:disabled{cursor:not-allowed;opacity:.55}.rooms-shell{width:min(100%,760px);min-height:100vh;padding:20px;padding-top:calc(20px + var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)));margin:0 auto}.rooms-header h1,.room-panel h2{letter-spacing:0;margin:0}.rooms-header{justify-content:flex-start;align-items:center;gap:12px;margin-bottom:18px;display:flex}.rooms-header__title{min-width:0;margin-right:auto;display:grid}.room-panel{border:1px solid var(--tg-soft-border);background:var(--tg-panel);border-radius:8px;gap:12px;margin:14px 0;padding:14px;display:grid}.room-direct-join__label{color:var(--tg-hint);margin-bottom:8px;font-weight:700;display:block}.room-direct-join__row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.room-direct-join__input{border:1px solid var(--tg-border);background:var(--tg-bg);min-width:0;min-height:42px;color:var(--tg-text);border-radius:8px;padding:0 12px}.room-create-dialog__row{grid-template-columns:74% 1% 25%;align-items:center;display:grid}.room-list,.room-invitation-list{gap:8px;margin-top:0;display:grid}.room-invitation-list{padding:0;list-style:none}.room-list-item,.room-invitation,.room-error{border:1px solid var(--tg-soft-border);background:var(--tg-bg);color:var(--tg-text);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.room-list-item__main{min-width:0;display:grid}.room-list-item__main small{color:var(--tg-hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-list-item__badges,.room-invitation__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.room-source-badge{background:color-mix(in srgb, var(--tg-button) 13%, transparent);min-width:48px;color:var(--tg-text);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:3px 6px;font-size:.75rem;font-weight:700;line-height:1.25;display:inline-flex}.room-error{border-color:color-mix(in srgb, var(--tg-danger) 45%, transparent)}.chat-room-shell{width:min(100%,760px);height:100vh;height:calc(var(--tg-viewport-stable-height,100vh));min-height:100vh;min-height:calc(var(--tg-viewport-stable-height,100vh));padding-top:calc(var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)));background:linear-gradient(color-mix(in srgb, var(--tg-bg) 92%, transparent), color-mix(in srgb, var(--tg-bg) 92%, transparent)), radial-gradient(circle at 18px 18px, color-mix(in srgb, var(--tg-button) 12%, transparent) 0 1px, transparent 1.5px), var(--tg-bg);background-size:auto,24px 24px,auto;flex-direction:column;margin:0 auto;display:flex}.chat-header{z-index:1;border-bottom:1px solid var(--tg-soft-border);background:color-mix(in srgb, var(--tg-panel) 96%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex:none;align-items:center;gap:10px;padding:10px 12px;display:flex;position:sticky;top:0}.chat-header__title{min-width:0;display:grid}.chat-header__title small{color:var(--tg-hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-header__status{color:var(--tg-hint);text-align:right;font-size:.78rem;line-height:1.2}.chat-header__actions{gap:6px;margin-left:auto;display:flex}.side-panel{border:1px solid var(--tg-soft-border);background:var(--tg-panel);border-radius:8px;flex:none;gap:10px;margin:10px 14px 0;padding:12px;display:grid}.side-panel--members{min-height:0;max-height:min(50vh,420px);overflow:hidden}.side-panel--favorites{max-height:min(45vh,380px)}.side-panel h2,.side-panel p{margin:0}.side-panel__form{gap:8px;display:grid}.side-panel__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.side-panel__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.side-panel__list--scrollable{overscroll-behavior:contain;max-height:min(38vh,320px);padding-bottom:8px;overflow:hidden auto}.side-panel__loading{color:var(--tg-hint);text-align:center;font-size:.82rem}.member-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;display:grid}.member-row__avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.member-row__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 16%, transparent);place-items:center;font-size:.82rem;font-weight:800;display:grid}.member-row__main{min-width:0;display:grid}.member-row__main strong,.member-row__main small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.member-row__main small{color:var(--tg-hint)}.diagnostics-output{white-space:pre-wrap;word-break:break-word;max-height:220px;margin:0;overflow:auto}.settings-field{gap:8px;display:grid}.segmented-control{border:1px solid var(--tg-border);background:var(--tg-bg);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmented-control__option{min-width:0;min-height:34px;color:var(--tg-hint);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-size:.88rem;font-weight:700;display:inline-flex}.segmented-control__option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.segmented-control__option--active{background:var(--tg-panel);color:var(--tg-text);box-shadow:var(--tg-shadow)}.favorite-toggle{border:1px solid var(--tg-border);width:30px;height:30px;color:var(--tg-hint);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:inline-grid}.favorite-toggle--active,.favorite-marker{color:var(--tg-danger);fill:var(--tg-danger)}.favorite-marker{vertical-align:-.1em;flex:none}.favorite-marker--inline{justify-self:end}.chat-icon-button{border:1px solid var(--tg-border);background:var(--tg-panel);width:34px;min-width:34px;height:34px;color:var(--tg-text);cursor:pointer;border-radius:50%;place-items:center;display:inline-grid}.chat-icon-button--send{border-color:var(--tg-button);background:var(--tg-button);color:var(--tg-button-text)}.chat-icon-button:disabled{cursor:not-allowed;opacity:.55}.chat-error{border:1px solid color-mix(in srgb, var(--tg-danger) 45%, transparent);color:var(--tg-text);border-radius:8px;margin:10px 14px 0;padding:10px 12px}.key-copy-toast{left:50%;bottom:max(84px, calc(72px + env(safe-area-inset-bottom,0px)));z-index:20;background:color-mix(in srgb, var(--tg-text) 88%, transparent);max-width:min(86vw,340px);color:var(--tg-bg);box-shadow:var(--tg-shadow);text-align:center;border-radius:999px;padding:10px 14px;font-size:.88rem;font-weight:700;line-height:1.25;position:fixed;transform:translate(-50%)}.message-timeline{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:8px;min-height:0;padding:14px 12px 16px;display:flex;position:relative;overflow-y:auto}.message-timeline__loading{color:var(--tg-hint);align-self:center;margin:0 0 4px;font-size:.82rem}.message-timeline__new-messages{background:var(--tg-button);color:var(--tg-button-text,#fff);cursor:pointer;z-index:10;border:none;border-radius:18px;align-self:center;padding:6px 16px;font-size:.82rem;font-weight:600;animation:.2s ease-out slide-up;position:sticky;bottom:8px;box-shadow:0 2px 8px #0000002e}.message-timeline__new-messages:hover{opacity:.9}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.message-bubble{border:1px solid var(--tg-soft-border);background:var(--tg-message-incoming);width:fit-content;min-width:min(172px,100%);max-width:min(84%,620px);color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:16px 16px 16px 5px;grid-template-columns:34px minmax(0,1fr) auto;align-self:flex-start;align-items:start;gap:9px;padding:7px 9px 8px;display:grid}.message-bubble--own{border-color:var(--tg-message-own-border);background:var(--tg-message-own);border-radius:16px 16px 5px;grid-template-columns:minmax(0,1fr) auto;align-self:flex-end}.message-bubble--own .message-bubble__avatar{display:none}.message-bubble--pending{opacity:.78}.message-bubble--focused{outline:2px solid color-mix(in srgb, var(--tg-button) 70%, transparent);outline-offset:2px}.message-bubble__body{min-width:0}.message-bubble__avatar{object-fit:cover;border-radius:50%;width:34px;height:34px}.message-bubble__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 16%, transparent);color:var(--tg-text);place-items:center;font-size:.82rem;font-weight:800;display:grid}.message-bubble__avatar--clickable{cursor:pointer}.message-bubble__avatar--clickable:hover{opacity:.8}.message-bubble__meta{align-items:baseline;gap:7px;min-width:0;margin-bottom:2px;display:flex}.message-bubble__meta strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.message-bubble__meta small{flex:none}.message-bubble__text{overflow-wrap:anywhere;white-space:pre-wrap;margin:0 0 2px;line-height:1.42}.message-mention{color:var(--tg-button);vertical-align:middle;white-space:nowrap;align-items:center;gap:.22em;font-weight:700;display:inline-flex;transform:translateY(-.1em)}.message-mention__avatar{object-fit:cover;width:1.5em;height:1.5em;font-size:inherit;vertical-align:-.12em;border-radius:50%;flex:none;place-items:center;line-height:1;display:inline-grid}.message-mention__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 18%, transparent);color:var(--tg-button)}.message-mention__initial{font-size:.72em}.message-reactions{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.message-reactions__item{border:1px solid var(--tg-soft-border);background:color-mix(in srgb, var(--tg-bg) 80%, transparent);min-height:22px;color:var(--tg-text);border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:.82rem;line-height:1;display:inline-flex}.message-reactions__item--own{border-color:color-mix(in srgb, var(--tg-button) 36%, var(--tg-soft-border));background:color-mix(in srgb, var(--tg-button) 13%, var(--tg-bg));color:var(--tg-button)}.message-reference{border-left:3px solid var(--tg-button);background:color-mix(in srgb, var(--tg-button) 10%, transparent);border-radius:10px;gap:2px;min-width:0;margin:0 0 8px;padding:7px 9px;display:grid}.message-reference strong,.message-reference span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.message-reference strong{font-size:.78rem}.message-reference span,.message-file-link{color:var(--tg-hint);font-size:.86rem}.message-link-preview{border-left:3px solid var(--tg-button);background:color-mix(in srgb, var(--tg-button) 9%, transparent);width:min(100%,320px);color:var(--tg-text);border-radius:10px;gap:2px;margin:7px 0 4px;padding:8px 10px;text-decoration:none;display:grid}.message-link-preview__host,.message-link-preview__path{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.message-link-preview__host{font-weight:800}.message-link-preview__path{color:var(--tg-hint);font-size:.82rem}.message-bubble__image-button{cursor:zoom-in;background:0 0;border:0;border-radius:12px;width:fit-content;max-width:100%;padding:0;display:block}.message-bubble__image{object-fit:contain;border-radius:12px;max-width:min(100%,320px);max-height:320px;display:block}.image-lightbox{z-index:1000;cursor:pointer;background:#000000d1;place-items:center;padding:56px 16px 24px;display:grid;position:fixed;inset:0}.image-lightbox__close{top:calc(14px + var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)));right:max(14px, env(safe-area-inset-right));color:#fff;z-index:1001;background:#ffffff24;border-color:#ffffff38;position:fixed}.image-lightbox__container{cursor:default;touch-action:pinch-zoom;place-items:center;max-width:100%;max-height:calc(100vh - 96px);display:grid;overflow:auto}.image-lightbox__image{object-fit:contain;touch-action:pinch-zoom;border-radius:12px;max-width:100%;max-height:calc(100vh - 96px);display:block}.message-file-link{overflow-wrap:anywhere;max-width:100%;display:inline-flex}.message-bubble small{color:var(--tg-hint)}.message-actions,.reaction-picker{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.reaction-picker{border:1px solid var(--tg-soft-border);background:var(--tg-panel);width:100%;box-shadow:var(--tg-shadow);border-radius:12px;padding:4px}.reaction-picker__button{background:var(--tg-bg);cursor:pointer;border:0;border-radius:50%;place-items:center;width:32px;height:32px;font-size:1.05rem;display:grid}.message-bubble--own .message-actions{grid-column:2}.message-composer{padding:9px 10px max(9px, env(safe-area-inset-bottom));border-top:1px solid var(--tg-soft-border);background:color-mix(in srgb, var(--tg-panel) 98%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);gap:8px;display:grid;position:sticky;bottom:0}.message-composer__row{grid-template-columns:36px 36px minmax(0,1fr) 36px;align-items:center;gap:6px;display:grid}.message-composer__input{resize:none;border:1px solid var(--tg-border);background:var(--tg-bg);min-height:38px;max-height:96px;color:var(--tg-text);border-radius:19px;padding:9px 12px;line-height:1.35}.mention-suggestions{z-index:20;border:1px solid var(--tg-soft-border);background:var(--tg-panel);max-height:min(288px,42vh);box-shadow:var(--tg-shadow);border-radius:14px;padding:6px;display:grid;position:absolute;bottom:calc(100% - 1px);left:10px;right:10px;overflow-y:auto}.mention-suggestions__item{width:100%;min-height:42px;color:var(--tg-text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;padding:5px 8px;display:grid}.mention-suggestions__item:hover,.mention-suggestions__item:focus-visible{background:color-mix(in srgb, var(--tg-button) 10%, transparent);outline:none}.mention-suggestions__avatar{object-fit:cover;border-radius:50%;place-items:center;width:32px;height:32px;font-size:.76rem;font-weight:800;display:grid}.mention-suggestions__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 16%, transparent)}.mention-suggestions__main{justify-items:start;min-width:0;display:grid}.mention-suggestions__main strong,.mention-suggestions__main small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mention-suggestions__main small{color:var(--tg-hint)}.emoji-picker{flex-wrap:wrap;gap:6px;padding:2px 2px 0;display:flex}.emoji-picker__button{background:var(--tg-bg);cursor:pointer;border:0;border-radius:50%;place-items:center;width:34px;height:34px;font-size:1.05rem;display:grid}.search-result-row{border:1px solid var(--tg-soft-border);background:var(--tg-bg);border-radius:12px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:8px;display:grid}.search-result-row--clickable{cursor:pointer}.search-result-row--clickable:hover{border-color:color-mix(in srgb, var(--tg-button) 35%, var(--tg-soft-border));background:color-mix(in srgb, var(--tg-button) 7%, var(--tg-bg))}.search-result-row__avatar{background:color-mix(in srgb, var(--tg-button) 16%, transparent);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.search-result-row__main{gap:2px;min-width:0;display:grid}.search-result-row__meta{align-items:baseline;gap:8px;min-width:0;display:flex}.search-result-row__meta strong,.search-result-row__text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.search-result-row__meta small,.search-result-row__text{color:var(--tg-hint)}.reply-preview{border-left:3px solid var(--tg-button);background:color-mix(in srgb, var(--tg-button) 10%, transparent);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.reply-preview span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.file-picker-button{position:relative;overflow:hidden}.file-picker-button__input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-progress-list{gap:6px;display:grid}.file-upload-preview,.upload-progress-list__row{align-items:center;gap:8px;min-width:0;display:flex}.file-upload-preview__image{object-fit:cover;border-radius:8px;width:42px;height:42px}.file-upload-preview__name,.upload-progress-list__row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-progress-list__row progress{width:120px;accent-color:var(--tg-button)}@media (width<=520px){.room-direct-join__row,.room-invitation,.room-error{grid-template-columns:1fr}.room-invitation,.room-error{flex-direction:column;align-items:stretch}.room-list-item{align-items:center}.room-create-dialog__row{grid-template-columns:minmax(0,1fr);gap:8px}.room-create-dialog__row span{display:none}.message-bubble{grid-template-columns:34px minmax(0,1fr);max-width:min(92%,620px)}.message-bubble--own{grid-template-columns:minmax(0,1fr) auto}.message-bubble .message-actions{grid-column:2}.message-composer__row{grid-template-columns:34px 34px minmax(0,1fr) 34px}.segmented-control{grid-template-columns:1fr}}@media (width<=380px){.chat-header{gap:8px;padding-inline:10px}.chat-header__actions{gap:4px}.chat-icon-button{width:32px;min-width:32px;height:32px}.message-composer__row{grid-template-columns:32px 32px minmax(0,1fr) 32px}}
