:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1f232c;--line: #2a2f3a;--text: #e7e9ee;--muted: #8b93a3;--accent: #25d366;--accent-ink: #053b1e;--danger: #ff6b6b}*{box-sizing:border-box}body,html,#root{height:100%;margin:0}body{font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.muted{color:var(--muted)}.pad{padding:16px}.grow{flex:1}.error{color:var(--danger)}button{cursor:pointer;font:inherit}input{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 11px}input:focus{outline:2px solid var(--accent);outline-offset:-1px}.splash,.login{display:grid;place-items:center;height:100%}.login__card{width:320px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;display:grid;gap:12px}.login__card h1{margin:0}.login__card label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.login__card button{margin-top:8px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:10px;font-weight:700}.app{height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.link{background:none;border:0;color:var(--accent)}.layout{display:grid;grid-template-columns:320px 1fr;min-height:0}.sidebar{border-right:1px solid var(--line);overflow-y:auto;background:var(--panel)}.main{display:flex;flex-direction:column;min-height:0}.main__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.notice{margin:0;padding:8px 16px;background:var(--panel-2);color:var(--muted)}.convsearch{position:relative;padding:10px 12px;border-bottom:1px solid var(--line)}.convsearch__input{width:100%}.convsearch__clear{position:absolute;right:20px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);font-size:18px;line-height:1;padding:0 4px}.find{border-bottom:1px solid var(--line);background:var(--panel)}.find__bar{display:flex;align-items:center;gap:10px;padding:10px 16px}.find__input{flex:1}.find__count{white-space:nowrap;font-size:12px}.find__results{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;border-top:1px solid var(--line)}.find__result{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:0;color:var(--text);padding:9px 16px;border-bottom:1px solid var(--line)}.find__result:hover{background:var(--panel-2)}.find__result-snippet{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.find__result-time{flex:none;font-size:12px}.find__empty{padding:10px 16px;margin:0}mark.hl{background:#f5d90a;color:#1a1400;border-radius:2px;padding:0 1px}.bubble.is-focused{outline:2px solid var(--accent);outline-offset:1px}.convlist{list-style:none;margin:0;padding:0}.convlist__item{display:flex;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}.convlist__item:hover{background:var(--panel-2)}.convlist__item.is-selected{background:var(--panel-2);box-shadow:inset 3px 0 0 var(--accent)}.convlist__body{display:grid;gap:2px;min-width:0;flex:1}.convlist__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.convlist__meta{font-size:12px}.avatar{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot--open{background:var(--accent)}.dot--closed{background:var(--muted)}.thread{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:70%;padding:8px 11px;border-radius:12px}.bubble__text{white-space:pre-wrap;word-break:break-word}.bubble__meta{font-size:11px;color:var(--muted);margin-top:3px}.bubble--inbound{align-self:flex-start;background:var(--panel-2);border:1px solid var(--line)}.bubble--outbound{align-self:flex-end;background:var(--accent);color:var(--accent-ink)}.bubble--outbound .bubble__meta{color:var(--accent-ink);opacity:.75}.reply{border-top:1px solid var(--line);padding:12px 16px;background:var(--panel)}.reply__form{display:flex;flex-direction:column;gap:8px}.reply__row{display:flex;gap:8px;align-items:center}.reply__attach{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);font-size:13px;max-width:100%}.reply__attach-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply__attach-x{padding:0 2px;font-size:16px;line-height:1}.reply__attachbtn{flex:none;width:38px;height:38px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;font-size:16px}.reply__attachbtn:hover{background:var(--line)}.reply__attachbtn:disabled{opacity:.5;cursor:default}.reply__row input:first-child{flex:1}.reply__lang{width:64px}.reply__hint{font-size:12px;white-space:nowrap}.reply button{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:9px 14px;font-weight:700}.reply button:disabled{opacity:.5;cursor:default}.main__head{gap:8px}.main__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backbtn{display:none}.datesep{text-align:center;margin:10px 0 2px}.datesep span{background:var(--panel-2);color:var(--muted);font-size:12px;padding:3px 10px;border-radius:10px}.reply__text{flex:1;resize:none;max-height:120px;font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 11px;line-height:1.4}.reply__text:focus{outline:2px solid var(--accent);outline-offset:-1px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#0000008c}.modal__card{width:560px;max-width:100%;max-height:85vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.modal__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.qrm__form{display:grid;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}.qrm__row{display:flex;gap:8px}.qrm__row input{flex:1;min-width:0}.qrm__body{font:inherit;resize:vertical;min-height:44px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 11px}.qrm__body:focus{outline:2px solid var(--accent);outline-offset:-1px}.qrm__actions{display:flex;align-items:center;gap:12px}.qrm__save{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:9px 14px;font-weight:700}.qrm__save:disabled{opacity:.5;cursor:default}.button.error,.link.error{color:var(--danger)}.qrm__list{list-style:none;margin:0;padding:0;overflow-y:auto}.qrm__item{display:flex;align-items:flex-start;gap:10px;padding:11px 16px;border-bottom:1px solid var(--line)}.qrm__item.is-inactive{opacity:.5}.qrm__item-main{flex:1;min-width:0;display:grid;gap:3px}.qrm__item-head{display:flex;align-items:baseline;gap:8px}.qrm__shortcut{color:var(--accent);font-weight:700}.qrm__title{font-size:13px}.qrm__scope{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 5px}.qrm__item-body{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qrm__item-actions{display:flex;gap:10px;flex:none;white-space:nowrap}.qr-picker{list-style:none;margin:0 0 8px;padding:4px;max-height:240px;overflow-y:auto;background:var(--panel-2);border:1px solid var(--line);border-radius:10px}.qr-item{display:grid;gap:2px;width:100%;text-align:left;padding:8px 10px;background:none;border:0;border-radius:7px;color:var(--text)}.qr-item:hover,.qr-item.is-first{background:var(--line)}.qr-item__head{display:flex;align-items:baseline;gap:8px}.qr-item__shortcut{color:var(--accent);font-weight:700;font-size:13px}.qr-item__title{color:var(--muted);font-size:12px}.qr-item__body{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convlist__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convlist__time{font-size:12px;color:var(--muted);white-space:nowrap;flex:none}.convlist__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.convlist__sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.convlist__tag{flex:none;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--line);border-radius:6px;padding:0 5px}.convlist__badge{flex:none;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border-radius:9px;background:var(--accent);color:var(--accent-ink)}.convlist__item.is-unread .convlist__name{font-weight:800}.convlist__item.is-unread .convlist__sub{color:var(--text)}.thread__older{text-align:center;padding:4px 0 8px}.thread__older button:disabled{opacity:.5;cursor:default}.media{display:flex;flex-direction:column;gap:6px}.media__imglink{display:block}.media__img{display:block;border-radius:8px;max-width:100%}.media__img--image{max-height:320px;object-fit:cover;cursor:zoom-in}.media__img--sticker{max-width:128px;max-height:128px;border-radius:0}.media__audio{width:240px;max-width:100%}.media__video{max-width:100%;max-height:320px;border-radius:8px}.media__doc{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;background:#0000002e;color:inherit;text-decoration:none}.media__doc:hover{text-decoration:underline}.media__caption{white-space:pre-wrap;word-break:break-word}.media__sub{font-size:12px;opacity:.8}.media--location a{color:inherit;font-weight:600}.media--note{font-style:italic;opacity:.85}.labelchip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;line-height:1;padding:3px 7px;border-radius:10px;white-space:nowrap;border:0}.labelchip__x{background:none;border:0;color:inherit;font-size:13px;line-height:1;padding:0;margin-left:1px;cursor:pointer;opacity:.8}.labelchip__x:hover{opacity:1}.convlist__labels{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.main__labels{display:flex;flex-wrap:wrap;gap:6px;padding:6px 16px 0}.labelfilter{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--line)}.labelfilter__chip{cursor:pointer;opacity:.55}.labelfilter__chip.is-active{opacity:1;box-shadow:0 0 0 2px var(--bg),0 0 0 4px currentColor}.labelfilter__clear{font-size:12px}.labelmenu{position:relative;display:inline-flex}.labelmenu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.labelmenu__pop{position:absolute;top:100%;right:0;z-index:21;margin-top:4px;min-width:200px;background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0000002e;padding:6px}.labelmenu__list{list-style:none;margin:0;padding:0;max-height:280px;overflow-y:auto}.labelmenu__row{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;border-radius:8px;padding:6px 8px;cursor:pointer;text-align:left}.labelmenu__row:hover{background:var(--hover, rgba(0, 0, 0, .05))}.labelmenu__check{width:14px;flex:none;color:var(--accent);font-weight:700}.labelmenu__swatch{display:inline-flex;padding:3px 8px;border-radius:10px;font-size:12px;font-weight:600}.labelmenu__empty{padding:6px 8px}.labelmenu__manage{display:block;width:100%;text-align:left;padding:8px;margin-top:4px;border-top:1px solid var(--line)}.lblm__colors{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.lblm__colorpick{width:32px;height:28px;padding:0;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer}.lblm__swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer}.lblm__swatch.is-on{border-color:var(--text)}.lblm__preview{margin-left:auto}.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line)}.filterbar__toggle{font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--muted);cursor:pointer}.filterbar__toggle.is-active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.filterbar__seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.filterbar__segbtn{font-size:12px;padding:4px 10px;border:0;border-left:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer}.filterbar__segbtn:first-child{border-left:0}.filterbar__segbtn.is-active{background:var(--accent);color:var(--accent-ink)}.filterbar__status{font-size:12px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer;margin-left:auto}.tplpicker{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--panel, rgba(0, 0, 0, .02))}.tplpicker__head{display:flex;align-items:center;justify-content:space-between}.tplpicker__select{font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}.tplpicker__vars{display:flex;flex-direction:column;gap:6px}.tplpicker__var{display:flex;flex-direction:column;gap:2px}.tplpicker__varlabel{font-size:11px;color:var(--muted)}.tplpicker__var input{font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}.tplpicker__preview{font-size:13px;white-space:pre-wrap;word-break:break-word;padding:8px 10px;border-radius:8px;background:var(--bubble-in, rgba(0, 0, 0, .05));color:var(--text)}.tplpicker__send{align-self:flex-start;font-size:13px;padding:6px 14px;border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);cursor:pointer}.tplpicker__send:disabled{opacity:.5;cursor:default}.reply__attachbtn.is-active{background:var(--accent);color:var(--accent-ink);border-radius:8px}.reply__closed{padding:10px 12px}@media (max-width: 767px){.layout{grid-template-columns:1fr}.layout .main,.layout.has-selection .sidebar{display:none}.layout.has-selection .main{display:flex}.backbtn{display:inline-flex}.bubble{max-width:85%}.sidebar{border-right:0}}
