:root{--bg: #f7f4ee;--bg-2: #f1ece3;--surface: #fffdf8;--surface-2: #f0eae0;--text: #24211c;--muted: #7b7468;--line: #e4ddd1;--accent: #2f6b55;--accent-2: #245544;--accent-soft: #e0eee7;--on-accent: #ffffff;--terracotta: #c96f4a;--danger: #b23b3b;--danger-soft: #f7e4e1;--bubble-other: #fffdf8;--bubble-own: #2f6b55;--bubble-own-text: #f5fbf8;--shadow: 0 8px 30px rgba(38, 32, 24, .08);--radius: 18px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #121614;--bg-2: #161c18;--surface: #1b211e;--surface-2: #242c27;--text: #eceae4;--muted: #9aa49d;--line: #2d3631;--accent: #6fbf9b;--accent-2: #8dd3b3;--accent-soft: #1f3a30;--on-accent: #0d1a14;--terracotta: #e08a63;--danger: #e57373;--danger-soft: #3a2020;--bubble-other: #242c27;--bubble-own: #2f6b55;--bubble-own-text: #f5fbf8;--shadow: 0 8px 30px rgba(0, 0, 0, .35);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--accent)}input,textarea,select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text);font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform .05s}.button:active{transform:translateY(1px)}.button.primary{background:var(--accent);color:var(--on-accent)}.button.primary:hover{background:var(--accent-2)}.button.secondary{background:var(--surface-2);border-color:var(--line);color:var(--text)}.button.secondary:hover{border-color:var(--accent)}.button.ghost{background:transparent;border-color:transparent;color:var(--muted)}.button.ghost:hover{background:var(--surface-2);color:var(--text)}.button.danger{color:var(--danger)}.button.ghost.danger:hover{background:var(--danger-soft)}.button.small{padding:7px 11px;font-size:13px;border-radius:10px}.button:disabled{opacity:.55}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:none;border-radius:12px;background:transparent;color:var(--text);text-decoration:none}.icon-button:hover{background:var(--surface-2)}.icon-button.danger{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:11px}.stack{display:grid;gap:14px}.grow{flex:1;min-width:200px}.center-pad{padding:40px;text-align:center;color:var(--muted)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.splash{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.splash img{width:84px;height:84px;border-radius:22px;box-shadow:var(--shadow)}.splash h1{margin:0;font-size:22px;color:var(--text)}.auth-page{position:relative;min-height:100dvh;display:grid;place-items:center;padding:22px;overflow:hidden;background:radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 42%),radial-gradient(circle at 88% 82%,color-mix(in srgb,var(--terracotta) 12%,transparent),transparent 40%),var(--bg)}.auth-art{position:absolute;inset:0;pointer-events:none}.blob{position:absolute;width:340px;height:340px;border-radius:50%;filter:blur(70px);opacity:.24}.blob-one{background:var(--accent);top:-120px;right:-90px}.blob-two{background:var(--terracotta);bottom:-140px;left:-100px}.auth-card{position:relative;width:min(430px,100%);background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:14px}.auth-brand img{width:56px;height:56px;border-radius:16px}.auth-brand h1{margin:0;font-size:24px;letter-spacing:-.02em}.auth-brand p{margin:2px 0 0;font-size:13px;color:var(--muted)}.auth-form{display:grid;gap:14px;margin-top:20px}.auth-note{margin:18px 0 0;text-align:center;font-size:12px;line-height:1.5;color:var(--muted)}.invite-note{margin:16px 0 0;padding:10px 12px;border-radius:10px;background:var(--accent-soft);font-size:13px}.form-error{padding:10px 12px;border-radius:10px;background:var(--danger-soft);color:var(--danger);font-size:13px;line-height:1.4}.shell{display:flex;height:100dvh;overflow:hidden;background:var(--bg)}.sidebar{width:360px;flex:0 0 360px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface);padding-top:env(safe-area-inset-top)}.brand{display:flex;align-items:center;gap:12px;padding:16px 18px 10px}.brand img{width:40px;height:40px;border-radius:12px}.brand div{display:grid;line-height:1.15}.brand strong{font-size:17px;letter-spacing:-.01em}.brand span{font-size:11px;color:var(--muted)}.sidebar-title{display:flex;align-items:center;justify-content:space-between;padding:6px 14px 2px 18px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.sidebar-title .icon-button{width:32px;height:32px}.sidebar-chats{flex:1;min-height:0;overflow-y:auto;padding:2px 8px 8px}.chat-list{display:grid;gap:1px}.chat-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:none;border-radius:14px;background:transparent;text-align:left}.chat-item:hover{background:var(--surface-2)}.chat-item.active{background:var(--accent-soft)}.chat-item-body{flex:1;min-width:0;display:grid;gap:3px}.chat-item-top{display:flex;align-items:baseline;gap:8px}.chat-item-title{flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item-time{flex:none;font-size:11px;color:var(--muted)}.chat-item-bottom{display:flex;align-items:center;gap:5px}.chat-item-preview{flex:1;min-width:0;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item-preview.unread{color:var(--text);font-weight:500}.chat-muted{font-size:10px}.unread-badge{flex:none;min-width:19px;height:19px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.chat-list-empty{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}.chat-list-empty svg{opacity:.5}.chat-list-empty p{margin:10px 0 3px;font-size:15px;color:var(--text)}.chat-list-empty span{font-size:12px}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;overflow:hidden;color:#fff;font-weight:700;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar-group{color:var(--accent)}.avatar-online{position:absolute;right:1px;bottom:1px;width:12px;height:12px;border-radius:50%;background:#38b26f;border:2px solid var(--surface)}.tabbar{display:flex;gap:4px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:10px;color:var(--muted);font-size:10.5px;text-decoration:none}.tab:hover{background:var(--surface-2)}.tab.active{color:var(--accent);background:var(--accent-soft)}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.conn-banner{position:fixed;top:0;left:0;right:0;z-index:150;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px;background:#9a3434;color:#fff;font-size:12px}.welcome{flex:1;width:min(560px,100%);margin:auto;padding:36px 24px;text-align:center;display:flex;flex-direction:column;align-items:center}.welcome-art img{width:118px;height:118px;border-radius:30px;box-shadow:var(--shadow)}.welcome h1{margin:22px 0 8px;font-size:clamp(24px,4vw,32px);letter-spacing:-.02em}.welcome p{margin:0;max-width:430px;color:var(--muted);font-size:15px;line-height:1.6}.welcome-badge{margin-top:14px;padding:6px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:600}.welcome-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.welcome-hint{display:flex;align-items:center;gap:6px;margin-top:28px;color:var(--muted);font-size:12px}.page{height:100%;width:100%;max-width:920px;margin:0 auto;padding:16px clamp(16px,4vw,40px) 40px;overflow-y:auto}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.page-head h1{margin:0;font-size:24px;letter-spacing:-.02em}.page-head p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:0 1px #26201805}.card-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px}.inline-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-top:12px}.inline-form .grow{min-width:220px}.notice{padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:13px;line-height:1.45}.notice.warning{background:var(--danger-soft);color:var(--danger)}.notice.success{background:var(--accent-soft);color:var(--accent);display:flex;gap:7px;align-items:center}.profile-row{display:flex;align-items:center;gap:16px;margin-bottom:8px}.profile-row h2{margin:0 0 3px;font-size:20px}.profile-row p{margin:0}.avatar-edit{position:relative;border:none;background:transparent;padding:0;border-radius:50%}.avatar-camera{position:absolute;right:-2px;bottom:-2px;width:27px;height:27px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.settings-stack{max-width:720px}.push-controls{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:14px}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--muted)}.status-dot.on{background:#38b26f}.push-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.install-steps ol{margin:8px 0 10px 20px;line-height:1.8}.inline-ios{border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12px}.app-version{text-align:center;color:var(--muted);font-size:11px;margin:20px 0 0}.people-list{display:grid;gap:2px}.person{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:none;border-radius:14px;background:transparent;text-align:left}.person:hover{background:var(--surface-2)}.person.self{opacity:.8}.person-body{flex:1;min-width:0;display:grid;gap:3px}.person-name{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600}.person-status{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-self{font-size:10px;font-weight:500;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--muted)}.person-action{color:var(--accent);flex:none}.admin-mark{color:var(--terracotta)}.chat-page{position:relative;height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg-2);overflow:hidden}.chat-head{flex:none;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--surface);border-bottom:1px solid var(--line);z-index:3}.chat-back{display:none}.chat-head-text{flex:1;min-width:0}.chat-head-text h1{margin:0;font-size:16.5px;display:flex;align-items:center;gap:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-head-text p{margin:1px 0 0;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-head-text p.typing{color:var(--accent)}.muted-icon{opacity:.55;flex:none}.messages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px clamp(8px,3vw,30px) 10px;display:flex;flex-direction:column;overscroll-behavior:contain}.load-more{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px;color:var(--muted);font-size:12px}.day-separator{text-align:center;margin:14px 0 10px}.day-separator span{display:inline-block;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--muted);font-size:11px}.message-row{display:flex;align-items:flex-end;gap:8px;margin:1px 0;position:relative;max-width:100%}.message-row.own{justify-content:flex-end}.message-avatar{align-self:flex-start;margin-top:2px}.message-avatar-spacer{width:34px;flex:none}.message-main{display:flex;flex-direction:column;align-items:flex-start;max-width:min(72%,620px);min-width:0}.message-row.own .message-main{align-items:flex-end}.message-author{margin:0 0 2px 8px;font-size:11.5px;font-weight:600;color:var(--terracotta)}.bubble{position:relative;padding:7px 11px;border-radius:16px 16px 16px 5px;background:var(--bubble-other);color:var(--text);box-shadow:0 1px 1px #2620180f;max-width:100%;min-width:0;overflow-wrap:anywhere}.message-row.own .bubble{border-radius:16px 16px 5px;background:var(--bubble-own);color:var(--bubble-own-text)}.message-text{font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.message-text a{color:inherit;text-decoration:underline;text-underline-offset:2px}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:2px;font-size:10.5px;opacity:.68}.read-icon{flex:none}.read-icon.read{color:#a9f0ce;opacity:1}.pending-label{font-style:italic}.message-deleted{font-size:14px;font-style:italic;opacity:.62}.reply-quote{display:grid;gap:1px;margin-bottom:5px;padding:3px 8px;border-left:3px solid var(--terracotta);border-radius:6px;background:color-mix(in srgb,var(--text) 7%,transparent);max-width:100%}.message-row.own .reply-quote{background:#ffffff21}.reply-name{font-size:11.5px;font-weight:700;color:var(--terracotta)}.message-row.own .reply-name{color:#ffd9c9}.reply-text{font-size:12px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachments{display:grid;gap:3px;margin:2px 0 4px;width:100%;max-width:340px;min-width:0}.attachments.one{grid-template-columns:1fr}.attachments.two,.attachments.many{grid-template-columns:repeat(2,1fr)}.attachment{position:relative;display:block;padding:0;border:none;border-radius:10px;overflow:hidden;background:#1f2421;max-width:100%;min-width:0}.attachment img{display:block;width:100%;max-width:100%;max-height:300px;object-fit:cover}.attachments.one .attachment img{max-height:360px}.attachments.two .attachment img,.attachments.many .attachment img{height:150px}.attachment .video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0000008c;color:#fff;pointer-events:none}.video-duration{position:absolute;right:6px;bottom:6px;padding:1px 5px;border-radius:4px;background:#000000a6;color:#fff;font-size:11px}.attachment-processing{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px;color:#dfe8e3;font-size:11.5px;text-align:center}.reactions{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.message-row.own .reactions{justify-content:flex-end}.reaction-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:12px}.reaction-chip.mine{border-color:var(--accent);background:var(--accent-soft)}.reaction-chip.mine span:last-child{color:var(--accent);font-weight:600}.message-more{flex:none;align-self:center;width:26px;height:26px;border:none;border-radius:8px;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}.message-row:hover .message-more,.message-more.active{opacity:1}.message-actions{position:absolute;bottom:calc(100% + 5px);left:42px;z-index:20;width:min(320px,84vw);padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.message-actions.own{left:auto;right:4px}.quick-reactions{display:flex;justify-content:space-between;gap:2px;padding-bottom:5px;border-bottom:1px solid var(--line)}.quick-reactions button{border:none;background:transparent;font-size:20px;line-height:1;padding:3px 4px;border-radius:8px}.quick-reactions button:hover{background:var(--surface-2)}.action-buttons{display:grid;gap:1px;margin-top:5px}.action-buttons button{display:flex;align-items:center;gap:8px;padding:7px 8px;border:none;border-radius:8px;background:transparent;text-align:left;font-size:13.5px}.action-buttons button:hover{background:var(--surface-2)}.action-buttons button.danger{color:var(--danger)}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:30px;color:var(--muted);text-align:center}.chat-empty p{margin:0;font-size:16px;color:var(--text)}.chat-empty span{font-size:13px}.scroll-bottom{position:absolute;left:50%;bottom:92px;transform:translate(-50%);z-index:12;display:flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:12.5px}.composer-wrap{flex:none;padding:7px 10px calc(7px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.composer{display:flex;align-items:flex-end;gap:5px;width:100%;max-width:900px;margin:0 auto;padding:4px 5px 4px 6px;border:1px solid var(--line);border-radius:22px;background:var(--bg)}.composer textarea{flex:1;min-height:34px;max-height:160px;padding:7px 3px;border:none;background:transparent;resize:none;font-size:15px;line-height:1.4}.composer textarea:focus{box-shadow:none}.composer-attach,.composer-send{width:38px;height:38px;flex:none;border:none;border-radius:50%;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.composer-attach:hover{background:var(--surface-2)}.composer-send.ready{background:var(--accent);color:var(--on-accent)}.composer-send:disabled{opacity:.5}.composer-banner{display:flex;align-items:center;gap:8px;max-width:900px;margin:0 auto 6px;padding:6px 10px;border-radius:9px;border-left:3px solid var(--accent);background:var(--surface-2)}.composer-banner>div{display:grid;min-width:0;flex:1}.composer-banner strong{font-size:12px}.composer-banner span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-banner button{border:none;background:transparent;color:var(--muted);padding:4px}.composer-banner.editing{border-left-color:var(--terracotta)}.composer-files{display:flex;gap:8px;overflow-x:auto;padding:5px 4px 7px;max-width:900px;margin:0 auto}.composer-file{position:relative;flex:none;width:112px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.composer-file img,.composer-file .file-icon{width:100%;height:62px;object-fit:cover;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted)}.composer-file .file-name{display:block;font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}.composer-file .file-size{display:block;font-size:10px;color:var(--muted)}.composer-file>button{position:absolute;top:1px;right:1px;width:20px;height:20px;border:none;border-radius:50%;background:#0000009e;color:#fff;display:flex;align-items:center;justify-content:center}.composer-error{max-width:900px;margin:0 auto;padding:3px 8px;color:var(--danger);font-size:12px}.upload-progress{max-width:900px;margin:2px auto 6px;height:3px;border-radius:999px;background:var(--surface-2);overflow:hidden}.upload-progress span{display:block;height:100%;background:var(--accent);transition:width .2s}.modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f141285;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(460px,100%);max-height:88dvh;display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:var(--surface);box-shadow:0 24px 80px #0000004d}.modal-wide{width:min(640px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px 8px}.modal-head h2{margin:0;font-size:18px}.modal-body{padding:2px 18px 18px;overflow-y:auto;display:grid;gap:12px}.modal-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.member-picker{display:grid;gap:3px;max-height:320px;overflow-y:auto}.member-option{display:flex;align-items:center;gap:10px;padding:7px 8px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left}.member-option:hover{background:var(--surface-2)}.member-option.selected{background:var(--accent-soft);border-color:var(--accent)}.member-option .check{margin-left:auto;color:var(--accent);display:flex}.picker-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.chat-info-head{display:flex;align-items:center;gap:14px}.chat-info-head h3{margin:0 0 4px;font-size:20px}.chat-info-head p{margin:0}.members-title{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;color:var(--muted)}.member-list{display:grid;gap:3px;max-height:280px;overflow-y:auto}.member-row{display:flex;align-items:center;gap:10px;padding:5px 2px}.member-row-body{display:grid;gap:1px;min-width:0}.member-row-name{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600}.member-row-status{font-size:11.5px;color:var(--muted)}.info-action-row{display:flex;flex-wrap:wrap;gap:8px}.info-footer-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}.viewer{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;background:#000000f0;color:#fff}.viewer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;font-size:13px}.viewer-top>div{display:flex;gap:4px}.viewer .icon-button{color:#fff}.viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}.viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;border-radius:50%;background:#ffffff24;color:#fff;display:flex;align-items:center;justify-content:center}.viewer-arrow.left{left:12px}.viewer-arrow.right{right:12px}.viewer-arrow:disabled{opacity:.25}.tabs{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--surface-2);margin-bottom:16px}.tab-button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:none;border-radius:9px;background:transparent;color:var(--muted);font-size:13.5px}.tab-button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #00000014}.admin-list{display:grid;gap:7px}.admin-row{display:flex;align-items:center;gap:11px;padding:9px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.admin-row-body{flex:1;min-width:0;display:grid;gap:2px}.admin-row-body strong{display:flex;align-items:center;gap:6px;font-size:14px}.admin-row-body span{overflow:hidden;text-overflow:ellipsis}.admin-row-actions{display:flex;flex-wrap:wrap;gap:6px}.status-pill{flex:none;padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:10.5px;font-weight:600}.status-pill.active{background:var(--accent-soft);color:var(--accent)}.status-pill.used{background:var(--surface-2);color:var(--muted)}.status-pill.expired{background:var(--danger-soft);color:var(--danger)}.link-box{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.link-box code{flex:1;min-width:200px;font-size:11.5px;word-break:break-all}.days-field{width:90px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-card{display:grid;gap:3px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.stat-card span{font-size:12px;color:var(--muted)}.stat-card strong{font-size:23px;letter-spacing:-.02em}.stat-card small{font-size:11px;color:var(--muted)}.toasts{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:300;display:grid;gap:8px;width:min(420px,calc(100vw - 24px))}.toast{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:#24211c;color:#fff;font-size:13px;box-shadow:0 10px 30px #00000040}.toast.error{background:#8f2f2f}.toast.success{background:#2f6b55}.toast span{flex:1}.toast button{border:none;background:transparent;color:inherit;padding:2px;display:flex}@media(max-width:920px){.sidebar{width:330px;flex-basis:330px}.message-main{max-width:78%}}@media(max-width:820px){.shell{display:block;height:100dvh}.sidebar{width:100%;height:100dvh;border-right:none}.main,.shell-chat .sidebar,.shell-sub .sidebar{display:none}.shell-chat .main,.shell-sub .main{display:flex;height:100dvh}.shell-list .main{display:none}.chat-back{display:inline-flex}.message-main{max-width:84%}.message-actions{left:0;width:min(300px,90vw)}.message-actions.own{left:auto;right:0}.page{padding-top:calc(12px + env(safe-area-inset-top))}.welcome{display:none}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-row{align-items:flex-start;flex-wrap:wrap}.admin-row-actions{width:100%;padding-left:53px}}@media(hover:none){.message-more{opacity:.55}}@media(prefers-reduced-motion:reduce){.spin{animation:none}*{scroll-behavior:auto!important}}
