atagen

malice

public
Star0
Watch0
f12c7de2a3ab83d8b3f716f519bb7fcdee39fe58
2
ssh://brewery@pls.lobotomise.me:33/atagen/malice.git

Blame: web/src/app.css

df3c0f2b3da4atagen2026-10-22 13:07 UTC1
:root,
df3c0f2b3da4atagen2026-10-22 13:07 UTC2
:root[data-theme='dark'] {
973f8fbdaf80atagen2026-09-28 09:10 UTC3
  --bg: #14151c;
973f8fbdaf80atagen2026-09-28 09:10 UTC4
  --bg-soft: #1b1d27;
973f8fbdaf80atagen2026-09-28 09:10 UTC5
  --panel: #1e2029;
973f8fbdaf80atagen2026-09-28 09:10 UTC6
  --panel-2: #232634;
df3c0f2b3da4atagen2026-10-22 13:07 UTC7
  --rail-bg: #101117;
973f8fbdaf80atagen2026-09-28 09:10 UTC8
  --border: #2e3142;
973f8fbdaf80atagen2026-09-28 09:10 UTC9
  --text: #e6e8f0;
973f8fbdaf80atagen2026-09-28 09:10 UTC10
  --muted: #9aa0b4;
973f8fbdaf80atagen2026-09-28 09:10 UTC11
  --accent: #5865f2;
df3c0f2b3da4atagen2026-10-22 13:07 UTC12
  --accent-2: #7c5cff;
df3c0f2b3da4atagen2026-10-22 13:07 UTC13
  --glow: #1c2440;
df3c0f2b3da4atagen2026-10-22 13:07 UTC14
  --hover: rgba(255, 255, 255, 0.06);
df3c0f2b3da4atagen2026-10-22 13:07 UTC15
  --hover-faint: rgba(255, 255, 255, 0.018);
df3c0f2b3da4atagen2026-10-22 13:07 UTC16
  --name-lightness: 72%;
df3c0f2b3da4atagen2026-10-22 13:07 UTC17
  --ok: #3fb97f;
df3c0f2b3da4atagen2026-10-22 13:07 UTC18
  --ok-text: #9fe3c3;
973f8fbdaf80atagen2026-09-28 09:10 UTC19
  --danger: #f26d6d;
df3c0f2b3da4atagen2026-10-22 13:07 UTC20
  --danger-bg: #3a1d22;
df3c0f2b3da4atagen2026-10-22 13:07 UTC21
  --danger-border: #6b2a33;
df3c0f2b3da4atagen2026-10-22 13:07 UTC22
  --danger-text: #ffc9ce;
973f8fbdaf80atagen2026-09-28 09:10 UTC23
  --warn: #e8b25a;
df3c0f2b3da4atagen2026-10-22 13:07 UTC24
  --warn-bg: #33300f;
df3c0f2b3da4atagen2026-10-22 13:07 UTC25
  --warn-border: #5c551f;
df3c0f2b3da4atagen2026-10-22 13:07 UTC26
  --warn-text: #ecd98a;
973f8fbdaf80atagen2026-09-28 09:10 UTC27
  color-scheme: dark;
973f8fbdaf80atagen2026-09-28 09:10 UTC28
}
973f8fbdaf80atagen2026-09-28 09:10 UTC29
df3c0f2b3da4atagen2026-10-22 13:07 UTC30
:root[data-theme='black'] {
df3c0f2b3da4atagen2026-10-22 13:07 UTC31
  --bg: #000;
df3c0f2b3da4atagen2026-10-22 13:07 UTC32
  --bg-soft: #0b0b0e;
df3c0f2b3da4atagen2026-10-22 13:07 UTC33
  --panel: #08080a;
df3c0f2b3da4atagen2026-10-22 13:07 UTC34
  --panel-2: #141418;
df3c0f2b3da4atagen2026-10-22 13:07 UTC35
  --rail-bg: #000;
df3c0f2b3da4atagen2026-10-22 13:07 UTC36
  --border: #222228;
df3c0f2b3da4atagen2026-10-22 13:07 UTC37
  --glow: #0d1020;
df3c0f2b3da4atagen2026-10-22 13:07 UTC38
  --hover: rgba(255, 255, 255, 0.07);
df3c0f2b3da4atagen2026-10-22 13:07 UTC39
  --hover-faint: rgba(255, 255, 255, 0.025);
df3c0f2b3da4atagen2026-10-22 13:07 UTC40
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC41
df3c0f2b3da4atagen2026-10-22 13:07 UTC42
:root[data-theme='nord'] {
df3c0f2b3da4atagen2026-10-22 13:07 UTC43
  --bg: #2e3440;
df3c0f2b3da4atagen2026-10-22 13:07 UTC44
  --bg-soft: #353c4a;
df3c0f2b3da4atagen2026-10-22 13:07 UTC45
  --panel: #3b4252;
df3c0f2b3da4atagen2026-10-22 13:07 UTC46
  --panel-2: #434c5e;
df3c0f2b3da4atagen2026-10-22 13:07 UTC47
  --rail-bg: #282d38;
df3c0f2b3da4atagen2026-10-22 13:07 UTC48
  --border: #4c566a;
df3c0f2b3da4atagen2026-10-22 13:07 UTC49
  --text: #eceff4;
df3c0f2b3da4atagen2026-10-22 13:07 UTC50
  --muted: #a3acbf;
df3c0f2b3da4atagen2026-10-22 13:07 UTC51
  --accent: #5e81ac;
df3c0f2b3da4atagen2026-10-22 13:07 UTC52
  --accent-2: #88c0d0;
df3c0f2b3da4atagen2026-10-22 13:07 UTC53
  --glow: #3b4a66;
df3c0f2b3da4atagen2026-10-22 13:07 UTC54
  --ok: #a3be8c;
df3c0f2b3da4atagen2026-10-22 13:07 UTC55
  --ok-text: #d3e5c3;
df3c0f2b3da4atagen2026-10-22 13:07 UTC56
  --danger: #bf616a;
df3c0f2b3da4atagen2026-10-22 13:07 UTC57
  --danger-bg: #4a3439;
df3c0f2b3da4atagen2026-10-22 13:07 UTC58
  --danger-border: #7a4850;
df3c0f2b3da4atagen2026-10-22 13:07 UTC59
  --danger-text: #f2c9cd;
df3c0f2b3da4atagen2026-10-22 13:07 UTC60
  --warn: #ebcb8b;
df3c0f2b3da4atagen2026-10-22 13:07 UTC61
  --warn-bg: #4a4536;
df3c0f2b3da4atagen2026-10-22 13:07 UTC62
  --warn-border: #7a6d4a;
df3c0f2b3da4atagen2026-10-22 13:07 UTC63
  --warn-text: #f3e2bd;
df3c0f2b3da4atagen2026-10-22 13:07 UTC64
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC65
df3c0f2b3da4atagen2026-10-22 13:07 UTC66
:root[data-theme='light'] {
df3c0f2b3da4atagen2026-10-22 13:07 UTC67
  --bg: #f7f7fa;
df3c0f2b3da4atagen2026-10-22 13:07 UTC68
  --bg-soft: #eef0f4;
df3c0f2b3da4atagen2026-10-22 13:07 UTC69
  --panel: #ffffff;
df3c0f2b3da4atagen2026-10-22 13:07 UTC70
  --panel-2: #e9ebf1;
df3c0f2b3da4atagen2026-10-22 13:07 UTC71
  --rail-bg: #e3e5ec;
df3c0f2b3da4atagen2026-10-22 13:07 UTC72
  --border: #d5d8e1;
df3c0f2b3da4atagen2026-10-22 13:07 UTC73
  --text: #1d2030;
df3c0f2b3da4atagen2026-10-22 13:07 UTC74
  --muted: #5e6478;
df3c0f2b3da4atagen2026-10-22 13:07 UTC75
  --accent: #4f5bd5;
df3c0f2b3da4atagen2026-10-22 13:07 UTC76
  --accent-2: #7c5cff;
df3c0f2b3da4atagen2026-10-22 13:07 UTC77
  --glow: #dfe4ff;
df3c0f2b3da4atagen2026-10-22 13:07 UTC78
  --hover: rgba(0, 0, 0, 0.05);
df3c0f2b3da4atagen2026-10-22 13:07 UTC79
  --hover-faint: rgba(0, 0, 0, 0.025);
df3c0f2b3da4atagen2026-10-22 13:07 UTC80
  --name-lightness: 38%;
df3c0f2b3da4atagen2026-10-22 13:07 UTC81
  --ok: #23955f;
df3c0f2b3da4atagen2026-10-22 13:07 UTC82
  --ok-text: #17663f;
df3c0f2b3da4atagen2026-10-22 13:07 UTC83
  --danger: #d43c3c;
df3c0f2b3da4atagen2026-10-22 13:07 UTC84
  --danger-bg: #fde8e9;
df3c0f2b3da4atagen2026-10-22 13:07 UTC85
  --danger-border: #f2b3b8;
df3c0f2b3da4atagen2026-10-22 13:07 UTC86
  --danger-text: #8c1d26;
df3c0f2b3da4atagen2026-10-22 13:07 UTC87
  --warn: #b7791f;
df3c0f2b3da4atagen2026-10-22 13:07 UTC88
  --warn-bg: #fdf3d8;
df3c0f2b3da4atagen2026-10-22 13:07 UTC89
  --warn-border: #ecd28c;
df3c0f2b3da4atagen2026-10-22 13:07 UTC90
  --warn-text: #6b4a0b;
df3c0f2b3da4atagen2026-10-22 13:07 UTC91
  color-scheme: light;
df3c0f2b3da4atagen2026-10-22 13:07 UTC92
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC93
973f8fbdaf80atagen2026-09-28 09:10 UTC94
* { box-sizing: border-box; }
973f8fbdaf80atagen2026-09-28 09:10 UTC95
973f8fbdaf80atagen2026-09-28 09:10 UTC96
html, body, #app {
973f8fbdaf80atagen2026-09-28 09:10 UTC97
  margin: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC98
  min-height: 100dvh;
973f8fbdaf80atagen2026-09-28 09:10 UTC99
}
973f8fbdaf80atagen2026-09-28 09:10 UTC100
973f8fbdaf80atagen2026-09-28 09:10 UTC101
body {
973f8fbdaf80atagen2026-09-28 09:10 UTC102
  background: var(--bg);
973f8fbdaf80atagen2026-09-28 09:10 UTC103
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC104
  font: 14px/1.45 system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
973f8fbdaf80atagen2026-09-28 09:10 UTC105
}
973f8fbdaf80atagen2026-09-28 09:10 UTC106
973f8fbdaf80atagen2026-09-28 09:10 UTC107
button { font: inherit; }
973f8fbdaf80atagen2026-09-28 09:10 UTC108
input, textarea { font: inherit; }
973f8fbdaf80atagen2026-09-28 09:10 UTC109
973f8fbdaf80atagen2026-09-28 09:10 UTC110
.visually-hidden {
973f8fbdaf80atagen2026-09-28 09:10 UTC111
  position: absolute;
973f8fbdaf80atagen2026-09-28 09:10 UTC112
  width: 1px; height: 1px;
973f8fbdaf80atagen2026-09-28 09:10 UTC113
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC114
  clip: rect(0 0 0 0);
973f8fbdaf80atagen2026-09-28 09:10 UTC115
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC116
}
973f8fbdaf80atagen2026-09-28 09:10 UTC117
973f8fbdaf80atagen2026-09-28 09:10 UTC118
.splash {
973f8fbdaf80atagen2026-09-28 09:10 UTC119
  min-height: 100dvh;
973f8fbdaf80atagen2026-09-28 09:10 UTC120
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC121
  flex-direction: column;
973f8fbdaf80atagen2026-09-28 09:10 UTC122
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC123
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC124
  justify-content: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC125
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC126
}
973f8fbdaf80atagen2026-09-28 09:10 UTC127
.splash-mark {
973f8fbdaf80atagen2026-09-28 09:10 UTC128
  width: 52px; height: 52px;
973f8fbdaf80atagen2026-09-28 09:10 UTC129
  border-radius: 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC130
  display: grid; place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC131
  font-size: 26px; font-weight: 800; color: #fff;
df3c0f2b3da4atagen2026-10-22 13:07 UTC132
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
973f8fbdaf80atagen2026-09-28 09:10 UTC133
}
973f8fbdaf80atagen2026-09-28 09:10 UTC134
973f8fbdaf80atagen2026-09-28 09:10 UTC135
.app {
973f8fbdaf80atagen2026-09-28 09:10 UTC136
  display: grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC137
  grid-template-columns: 68px 300px 1fr;
973f8fbdaf80atagen2026-09-28 09:10 UTC138
  height: 100dvh;
973f8fbdaf80atagen2026-09-28 09:10 UTC139
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC140
}
973f8fbdaf80atagen2026-09-28 09:10 UTC141
.app:has(.members) { grid-template-columns: 68px 300px 1fr 260px; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC142
.app.nav-folded { grid-template-columns: 1fr; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC143
.app.nav-folded:has(.members) { grid-template-columns: 1fr 260px; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC144
.app.nav-folded > .rail, .app.nav-folded > .sidebar { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC145
973f8fbdaf80atagen2026-09-28 09:10 UTC146
/* ——— Rail ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC147
.rail {
df3c0f2b3da4atagen2026-10-22 13:07 UTC148
  background: var(--rail-bg);
973f8fbdaf80atagen2026-09-28 09:10 UTC149
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC150
  flex-direction: column;
973f8fbdaf80atagen2026-09-28 09:10 UTC151
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC152
  gap: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC153
  padding: 12px 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC154
  overflow-y: auto;
973f8fbdaf80atagen2026-09-28 09:10 UTC155
}
973f8fbdaf80atagen2026-09-28 09:10 UTC156
.rail-sep { width: 32px; height: 2px; border-radius: 2px; background: var(--border); }
973f8fbdaf80atagen2026-09-28 09:10 UTC157
.rail-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC158
  width: 46px; height: 46px;
973f8fbdaf80atagen2026-09-28 09:10 UTC159
  border-radius: 50%;
973f8fbdaf80atagen2026-09-28 09:10 UTC160
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC161
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC162
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC163
  font-size: 19px;
973f8fbdaf80atagen2026-09-28 09:10 UTC164
  font-weight: 700;
973f8fbdaf80atagen2026-09-28 09:10 UTC165
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC166
  transition: border-radius 0.15s, background 0.15s;
973f8fbdaf80atagen2026-09-28 09:10 UTC167
  display: grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC168
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC169
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC170
  padding: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC171
}
973f8fbdaf80atagen2026-09-28 09:10 UTC172
.rail-btn:hover { border-radius: 16px; background: var(--accent); color: #fff; }
973f8fbdaf80atagen2026-09-28 09:10 UTC173
.rail-btn.active { border-radius: 16px; background: var(--accent); color: #fff; }
973f8fbdaf80atagen2026-09-28 09:10 UTC174
.rail-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
cf23dbf4e77catagen2026-10-23 06:36 UTC175
.rail-space { border-radius: 14px; }
cf23dbf4e77catagen2026-10-23 06:36 UTC176
.rail-space:hover, .rail-space.active { background: var(--panel-2); }
cf23dbf4e77catagen2026-10-23 06:36 UTC177
.rail-space.active { box-shadow: 0 0 0 2px var(--rail-bg), 0 0 0 4px var(--accent); }
cf23dbf4e77catagen2026-10-23 06:36 UTC178
.rail .rail-space .mxc-avatar, .rail .rail-space .mxc-fallback { width: 100% !important; height: 100% !important; border-radius: inherit; }
973f8fbdaf80atagen2026-09-28 09:10 UTC179
.rail-avatar { width: 100%; height: 100%; object-fit: cover; display: block; }
973f8fbdaf80atagen2026-09-28 09:10 UTC180
.rail-add { color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC181
.rail-add:hover { color: #fff; }
973f8fbdaf80atagen2026-09-28 09:10 UTC182
.space-context {
973f8fbdaf80atagen2026-09-28 09:10 UTC183
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC184
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC185
  gap: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC186
  padding: 10px 8px 4px;
973f8fbdaf80atagen2026-09-28 09:10 UTC187
}
973f8fbdaf80atagen2026-09-28 09:10 UTC188
.space-context-text { display: flex; flex-direction: column; min-width: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC189
.space-context-text strong { font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
973f8fbdaf80atagen2026-09-28 09:10 UTC190
.space-context-text span { font-size: 11.5px; color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC191
.sec-banner {
973f8fbdaf80atagen2026-09-28 09:10 UTC192
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC193
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC194
  gap: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC195
  margin: 10px 16px 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC196
  padding: 8px 12px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC197
  background: color-mix(in srgb, var(--accent) 14%, transparent);
973f8fbdaf80atagen2026-09-28 09:10 UTC198
  border: 1px solid var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC199
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC200
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC201
  font-size: 12.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC202
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC203
.sec-banner.warn { background: var(--warn-bg); border-color: var(--warn-border); color: var(--warn-text); }
973f8fbdaf80atagen2026-09-28 09:10 UTC204
.sec-banner button {
973f8fbdaf80atagen2026-09-28 09:10 UTC205
  margin-left: auto;
973f8fbdaf80atagen2026-09-28 09:10 UTC206
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC207
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC208
  border: 1px solid currentColor;
973f8fbdaf80atagen2026-09-28 09:10 UTC209
  border-radius: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC210
  color: inherit;
973f8fbdaf80atagen2026-09-28 09:10 UTC211
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC212
  padding: 3px 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC213
  font-size: 12.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC214
}
973f8fbdaf80atagen2026-09-28 09:10 UTC215
.composer-note { margin: 0; padding: 0 16px 10px; font-size: 11.5px; color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC216
.head-room { display: flex; align-items: center; gap: 12px; min-width: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC217
.head-room-text { min-width: 0; flex: 1; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC218
.conn-banner.error { background: var(--danger-bg); border-color: var(--danger-border); color: var(--danger-text); }
973f8fbdaf80atagen2026-09-28 09:10 UTC219
/* ——— Sidebar ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC220
.sidebar {
973f8fbdaf80atagen2026-09-28 09:10 UTC221
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC222
  border-right: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC223
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC224
  flex-direction: column;
973f8fbdaf80atagen2026-09-28 09:10 UTC225
  min-height: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC226
}
973f8fbdaf80atagen2026-09-28 09:10 UTC227
.side-search {
973f8fbdaf80atagen2026-09-28 09:10 UTC228
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC229
  gap: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC230
  padding: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC231
  border-bottom: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC232
}
973f8fbdaf80atagen2026-09-28 09:10 UTC233
.side-search input {
973f8fbdaf80atagen2026-09-28 09:10 UTC234
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC235
  min-width: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC236
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC237
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC238
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC239
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC240
  padding: 7px 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC241
}
973f8fbdaf80atagen2026-09-28 09:10 UTC242
.side-search input:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC243
.side-scroll { flex: 1; overflow-y: auto; padding: 8px; min-height: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC244
.side-h {
973f8fbdaf80atagen2026-09-28 09:10 UTC245
  font-size: 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC246
  text-transform: uppercase;
973f8fbdaf80atagen2026-09-28 09:10 UTC247
  letter-spacing: 0.08em;
973f8fbdaf80atagen2026-09-28 09:10 UTC248
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC249
  margin: 12px 6px 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC250
}
973f8fbdaf80atagen2026-09-28 09:10 UTC251
.side-h:first-child { margin-top: 4px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC252
.room-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC253
.room-row {
973f8fbdaf80atagen2026-09-28 09:10 UTC254
  width: 100%;
973f8fbdaf80atagen2026-09-28 09:10 UTC255
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC256
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC257
  gap: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC258
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC259
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC260
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC261
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC262
  padding: 7px 9px;
973f8fbdaf80atagen2026-09-28 09:10 UTC263
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC264
  text-align: left;
973f8fbdaf80atagen2026-09-28 09:10 UTC265
  font-size: 13.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC266
}
973f8fbdaf80atagen2026-09-28 09:10 UTC267
.room-row:hover { background: var(--panel-2); }
df3c0f2b3da4atagen2026-10-22 13:07 UTC268
.room-row.active { background: color-mix(in srgb, var(--accent) 20%, transparent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC269
.room-row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC270
.room-hash { color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC271
.room-name {
973f8fbdaf80atagen2026-09-28 09:10 UTC272
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC273
  min-width: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC274
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC275
  text-overflow: ellipsis;
973f8fbdaf80atagen2026-09-28 09:10 UTC276
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC277
}
973f8fbdaf80atagen2026-09-28 09:10 UTC278
.badge {
973f8fbdaf80atagen2026-09-28 09:10 UTC279
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC280
  min-width: 20px;
973f8fbdaf80atagen2026-09-28 09:10 UTC281
  height: 20px;
973f8fbdaf80atagen2026-09-28 09:10 UTC282
  padding: 0 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC283
  border-radius: 999px;
973f8fbdaf80atagen2026-09-28 09:10 UTC284
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC285
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC286
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC287
  font-size: 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC288
  font-weight: 700;
973f8fbdaf80atagen2026-09-28 09:10 UTC289
  display: inline-grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC290
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC291
}
973f8fbdaf80atagen2026-09-28 09:10 UTC292
.badge.mention { background: var(--accent); border-color: var(--accent); color: #fff; }
973f8fbdaf80atagen2026-09-28 09:10 UTC293
.invite-join {
973f8fbdaf80atagen2026-09-28 09:10 UTC294
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC295
  background: var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC296
  color: #fff;
973f8fbdaf80atagen2026-09-28 09:10 UTC297
  border-radius: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC298
  padding: 2px 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC299
  font-size: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC300
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC301
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC302
}
973f8fbdaf80atagen2026-09-28 09:10 UTC303
.side-note { color: var(--muted); font-size: 13px; padding: 8px 6px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC304
.side-cta { display: flex; gap: 8px; padding: 0 6px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC305
.side-cta button {
973f8fbdaf80atagen2026-09-28 09:10 UTC306
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC307
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC308
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC309
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC310
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC311
  padding: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC312
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC313
}
973f8fbdaf80atagen2026-09-28 09:10 UTC314
.side-cta button:hover { border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC315
.side-footer {
973f8fbdaf80atagen2026-09-28 09:10 UTC316
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC317
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC318
  gap: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC319
  padding: 10px 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC320
  border-top: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC321
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC322
}
973f8fbdaf80atagen2026-09-28 09:10 UTC323
.me { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC324
.me-avatar {
973f8fbdaf80atagen2026-09-28 09:10 UTC325
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC326
  width: 30px; height: 30px;
973f8fbdaf80atagen2026-09-28 09:10 UTC327
  border-radius: 50%;
973f8fbdaf80atagen2026-09-28 09:10 UTC328
  background: var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC329
  color: #fff;
973f8fbdaf80atagen2026-09-28 09:10 UTC330
  font-weight: 700;
973f8fbdaf80atagen2026-09-28 09:10 UTC331
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC332
  display: inline-grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC333
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC334
}
973f8fbdaf80atagen2026-09-28 09:10 UTC335
.me-id {
973f8fbdaf80atagen2026-09-28 09:10 UTC336
  min-width: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC337
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC338
  text-overflow: ellipsis;
973f8fbdaf80atagen2026-09-28 09:10 UTC339
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC340
  font-size: 12.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC341
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC342
}
973f8fbdaf80atagen2026-09-28 09:10 UTC343
.icon-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC344
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC345
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC346
  border: 1px solid transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC347
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC348
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC349
  font-size: 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC350
  padding: 5px 9px;
973f8fbdaf80atagen2026-09-28 09:10 UTC351
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC352
}
973f8fbdaf80atagen2026-09-28 09:10 UTC353
.icon-btn:hover:not(:disabled) { background: var(--panel-2); color: var(--text); }
973f8fbdaf80atagen2026-09-28 09:10 UTC354
.icon-btn:disabled { opacity: 0.4; cursor: default; }
973f8fbdaf80atagen2026-09-28 09:10 UTC355
.scrim { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC356
973f8fbdaf80atagen2026-09-28 09:10 UTC357
/* ——— Chat ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC358
.chat { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--bg); }
973f8fbdaf80atagen2026-09-28 09:10 UTC359
.empty {
973f8fbdaf80atagen2026-09-28 09:10 UTC360
  margin: auto;
973f8fbdaf80atagen2026-09-28 09:10 UTC361
  text-align: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC362
  padding: 24px;
973f8fbdaf80atagen2026-09-28 09:10 UTC363
  max-width: 420px;
973f8fbdaf80atagen2026-09-28 09:10 UTC364
}
973f8fbdaf80atagen2026-09-28 09:10 UTC365
.empty-mark { font-size: 44px; color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC366
.empty h1 { font-size: 22px; margin: 8px 0 4px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC367
.empty p { color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC368
.empty-cta { display: flex; gap: 10px; justify-content: center; margin: 16px 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC369
.conn-line { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC370
973f8fbdaf80atagen2026-09-28 09:10 UTC371
.chat-head {
973f8fbdaf80atagen2026-09-28 09:10 UTC372
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC373
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC374
  gap: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC375
  padding: 10px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC376
  border-bottom: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC377
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC378
  min-height: 62px;
973f8fbdaf80atagen2026-09-28 09:10 UTC379
}
973f8fbdaf80atagen2026-09-28 09:10 UTC380
.head-title { flex: 1; min-width: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC381
.head-title h1 {
973f8fbdaf80atagen2026-09-28 09:10 UTC382
  margin: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC383
  font-size: 15.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC384
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC385
  text-overflow: ellipsis;
973f8fbdaf80atagen2026-09-28 09:10 UTC386
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC387
}
973f8fbdaf80atagen2026-09-28 09:10 UTC388
.head-meta { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC389
.pill {
973f8fbdaf80atagen2026-09-28 09:10 UTC390
  font-size: 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC391
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC392
  border-radius: 999px;
973f8fbdaf80atagen2026-09-28 09:10 UTC393
  padding: 0 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC394
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC395
}
973f8fbdaf80atagen2026-09-28 09:10 UTC396
.conn { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC397
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--muted); display: inline-block; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC398
.dot-online { background: var(--ok); }
973f8fbdaf80atagen2026-09-28 09:10 UTC399
.dot-busy { background: var(--warn); }
973f8fbdaf80atagen2026-09-28 09:10 UTC400
.dot-off { background: var(--danger); }
973f8fbdaf80atagen2026-09-28 09:10 UTC401
.head-actions { display: flex; align-items: center; gap: 8px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC402
973f8fbdaf80atagen2026-09-28 09:10 UTC403
.primary-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC404
  background: var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC405
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC406
  color: #fff;
973f8fbdaf80atagen2026-09-28 09:10 UTC407
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC408
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC409
  padding: 8px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC410
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC411
  font-size: 13.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC412
}
973f8fbdaf80atagen2026-09-28 09:10 UTC413
.primary-btn:hover:not(:disabled) { filter: brightness(1.1); }
973f8fbdaf80atagen2026-09-28 09:10 UTC414
.primary-btn:disabled { opacity: 0.55; cursor: default; }
973f8fbdaf80atagen2026-09-28 09:10 UTC415
.primary-btn.wide { width: 100%; margin-top: 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC416
.ghost-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC417
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC418
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC419
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC420
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC421
  padding: 7px 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC422
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC423
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC424
}
973f8fbdaf80atagen2026-09-28 09:10 UTC425
.ghost-btn:hover:not(:disabled) { border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC426
.ghost-btn:disabled { opacity: 0.55; cursor: wait; }
973f8fbdaf80atagen2026-09-28 09:10 UTC427
.ghost-btn.danger { color: var(--danger); }
973f8fbdaf80atagen2026-09-28 09:10 UTC428
.ghost-btn.danger:hover:not(:disabled) { border-color: var(--danger); }
973f8fbdaf80atagen2026-09-28 09:10 UTC429
973f8fbdaf80atagen2026-09-28 09:10 UTC430
.banners { display: flex; flex-direction: column; gap: 6px; padding: 10px 16px 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC431
.banner {
973f8fbdaf80atagen2026-09-28 09:10 UTC432
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC433
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC434
  gap: 10px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC435
  background: var(--danger-bg);
df3c0f2b3da4atagen2026-10-22 13:07 UTC436
  border: 1px solid var(--danger-border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC437
  color: var(--danger-text);
973f8fbdaf80atagen2026-09-28 09:10 UTC438
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC439
  padding: 8px 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC440
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC441
}
973f8fbdaf80atagen2026-09-28 09:10 UTC442
.banner span { flex: 1; }
973f8fbdaf80atagen2026-09-28 09:10 UTC443
.banner button {
973f8fbdaf80atagen2026-09-28 09:10 UTC444
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC445
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC446
  color: inherit;
973f8fbdaf80atagen2026-09-28 09:10 UTC447
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC448
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC449
  padding: 2px 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC450
}
973f8fbdaf80atagen2026-09-28 09:10 UTC451
.conn-banner {
973f8fbdaf80atagen2026-09-28 09:10 UTC452
  margin: 10px 16px 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC453
  padding: 7px 12px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC454
  background: var(--warn-bg);
df3c0f2b3da4atagen2026-10-22 13:07 UTC455
  border: 1px solid var(--warn-border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC456
  color: var(--warn-text);
973f8fbdaf80atagen2026-09-28 09:10 UTC457
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC458
  font-size: 12.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC459
}
973f8fbdaf80atagen2026-09-28 09:10 UTC460
973f8fbdaf80atagen2026-09-28 09:10 UTC461
.timeline {
973f8fbdaf80atagen2026-09-28 09:10 UTC462
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC463
  overflow-y: auto;
973f8fbdaf80atagen2026-09-28 09:10 UTC464
  padding: 12px 20px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC465
  min-height: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC466
}
973f8fbdaf80atagen2026-09-28 09:10 UTC467
.timeline-top { display: flex; justify-content: center; padding: 4px 0 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC468
.start-note { text-align: center; color: var(--muted); font-size: 12.5px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC469
.timeline-empty { text-align: center; padding: 32px 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC470
.day-row {
973f8fbdaf80atagen2026-09-28 09:10 UTC471
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC472
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC473
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC474
  margin: 14px 0 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC475
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC476
  font-size: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC477
}
973f8fbdaf80atagen2026-09-28 09:10 UTC478
.day-row::before, .day-row::after {
973f8fbdaf80atagen2026-09-28 09:10 UTC479
  content: '';
973f8fbdaf80atagen2026-09-28 09:10 UTC480
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC481
  height: 1px;
973f8fbdaf80atagen2026-09-28 09:10 UTC482
  background: var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC483
}
973f8fbdaf80atagen2026-09-28 09:10 UTC484
.new-row {
973f8fbdaf80atagen2026-09-28 09:10 UTC485
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC486
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC487
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC488
  margin: 8px 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC489
  color: var(--danger);
973f8fbdaf80atagen2026-09-28 09:10 UTC490
  font-size: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC491
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC492
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC493
.new-row::before, .new-row::after { content: ''; flex: 1; height: 1px; background: var(--danger-border); }
973f8fbdaf80atagen2026-09-28 09:10 UTC494
.unknown-note { color: var(--muted); font-size: 12.5px; font-style: italic; }
973f8fbdaf80atagen2026-09-28 09:10 UTC495
.pending-actions {
973f8fbdaf80atagen2026-09-28 09:10 UTC496
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC497
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC498
  gap: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC499
  margin: -4px 0 6px 44px;
973f8fbdaf80atagen2026-09-28 09:10 UTC500
}
973f8fbdaf80atagen2026-09-28 09:10 UTC501
.pending-error { color: var(--danger); font-size: 12px; flex: 1; min-width: 0; overflow-wrap: anywhere; }
973f8fbdaf80atagen2026-09-28 09:10 UTC502
973f8fbdaf80atagen2026-09-28 09:10 UTC503
.composer {
973f8fbdaf80atagen2026-09-28 09:10 UTC504
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC505
  gap: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC506
  align-items: flex-end;
973f8fbdaf80atagen2026-09-28 09:10 UTC507
  padding: 12px 16px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC508
  border-top: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC509
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC510
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC511
.reply-bar {
df3c0f2b3da4atagen2026-10-22 13:07 UTC512
  display: flex;
df3c0f2b3da4atagen2026-10-22 13:07 UTC513
  align-items: center;
df3c0f2b3da4atagen2026-10-22 13:07 UTC514
  gap: 8px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC515
  padding: 6px 16px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC516
  border-top: 1px solid var(--border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC517
  border-left: 3px solid var(--accent);
df3c0f2b3da4atagen2026-10-22 13:07 UTC518
  background: var(--panel);
df3c0f2b3da4atagen2026-10-22 13:07 UTC519
  font-size: 12.5px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC520
  color: var(--muted);
df3c0f2b3da4atagen2026-10-22 13:07 UTC521
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC522
.reply-bar strong { color: var(--text); font-weight: 650; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC523
.reply-bar-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC524
.reply-bar-text { margin-left: 6px; }
cf23dbf4e77catagen2026-10-23 06:36 UTC525
.composer.replying, .composer.staging, .reply-bar + .staged { border-top: none; }
cf23dbf4e77catagen2026-10-23 06:36 UTC526
.composer { position: relative; }
cf23dbf4e77catagen2026-10-23 06:36 UTC527
.mention-finder {
cf23dbf4e77catagen2026-10-23 06:36 UTC528
  position: absolute;
cf23dbf4e77catagen2026-10-23 06:36 UTC529
  left: 16px;
cf23dbf4e77catagen2026-10-23 06:36 UTC530
  right: 16px;
cf23dbf4e77catagen2026-10-23 06:36 UTC531
  bottom: calc(100% + 4px);
cf23dbf4e77catagen2026-10-23 06:36 UTC532
  z-index: 20;
cf23dbf4e77catagen2026-10-23 06:36 UTC533
  max-width: 420px;
cf23dbf4e77catagen2026-10-23 06:36 UTC534
  margin: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC535
  padding: 4px;
cf23dbf4e77catagen2026-10-23 06:36 UTC536
  list-style: none;
cf23dbf4e77catagen2026-10-23 06:36 UTC537
  border: 1px solid var(--border);
cf23dbf4e77catagen2026-10-23 06:36 UTC538
  border-radius: 10px;
cf23dbf4e77catagen2026-10-23 06:36 UTC539
  background: var(--panel-2);
cf23dbf4e77catagen2026-10-23 06:36 UTC540
  box-shadow: 0 8px 24px rgb(0 0 0 / 0.3);
cf23dbf4e77catagen2026-10-23 06:36 UTC541
}
cf23dbf4e77catagen2026-10-23 06:36 UTC542
.mention-finder li {
cf23dbf4e77catagen2026-10-23 06:36 UTC543
  display: flex;
cf23dbf4e77catagen2026-10-23 06:36 UTC544
  align-items: center;
cf23dbf4e77catagen2026-10-23 06:36 UTC545
  gap: 8px;
cf23dbf4e77catagen2026-10-23 06:36 UTC546
  padding: 5px 8px;
cf23dbf4e77catagen2026-10-23 06:36 UTC547
  border-radius: 6px;
cf23dbf4e77catagen2026-10-23 06:36 UTC548
  cursor: pointer;
cf23dbf4e77catagen2026-10-23 06:36 UTC549
  font-size: 13px;
cf23dbf4e77catagen2026-10-23 06:36 UTC550
}
cf23dbf4e77catagen2026-10-23 06:36 UTC551
.mention-finder li.active { background: color-mix(in srgb, var(--accent) 22%, transparent); }
cf23dbf4e77catagen2026-10-23 06:36 UTC552
.mention-name { font-weight: 600; white-space: nowrap; }
cf23dbf4e77catagen2026-10-23 06:36 UTC553
.mention-id { min-width: 0; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
cf23dbf4e77catagen2026-10-23 06:36 UTC554
.staged {
cf23dbf4e77catagen2026-10-23 06:36 UTC555
  display: flex;
cf23dbf4e77catagen2026-10-23 06:36 UTC556
  flex-wrap: wrap;
cf23dbf4e77catagen2026-10-23 06:36 UTC557
  gap: 8px;
cf23dbf4e77catagen2026-10-23 06:36 UTC558
  margin: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC559
  padding: 10px 16px 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC560
  list-style: none;
cf23dbf4e77catagen2026-10-23 06:36 UTC561
  border-top: 1px solid var(--border);
cf23dbf4e77catagen2026-10-23 06:36 UTC562
  background: var(--panel);
cf23dbf4e77catagen2026-10-23 06:36 UTC563
}
cf23dbf4e77catagen2026-10-23 06:36 UTC564
.staged-item {
cf23dbf4e77catagen2026-10-23 06:36 UTC565
  position: relative;
cf23dbf4e77catagen2026-10-23 06:36 UTC566
  display: grid;
cf23dbf4e77catagen2026-10-23 06:36 UTC567
  place-items: center;
cf23dbf4e77catagen2026-10-23 06:36 UTC568
  width: 84px;
cf23dbf4e77catagen2026-10-23 06:36 UTC569
  height: 84px;
cf23dbf4e77catagen2026-10-23 06:36 UTC570
  border: 1px solid var(--border);
cf23dbf4e77catagen2026-10-23 06:36 UTC571
  border-radius: 10px;
cf23dbf4e77catagen2026-10-23 06:36 UTC572
  background: var(--bg-soft);
cf23dbf4e77catagen2026-10-23 06:36 UTC573
  overflow: hidden;
cf23dbf4e77catagen2026-10-23 06:36 UTC574
}
cf23dbf4e77catagen2026-10-23 06:36 UTC575
.staged-item img { width: 100%; height: 100%; object-fit: cover; }
cf23dbf4e77catagen2026-10-23 06:36 UTC576
.staged-name { padding: 6px; font-size: 11.5px; color: var(--muted); overflow-wrap: anywhere; text-align: center; }
cf23dbf4e77catagen2026-10-23 06:36 UTC577
.staged-remove {
cf23dbf4e77catagen2026-10-23 06:36 UTC578
  position: absolute;
cf23dbf4e77catagen2026-10-23 06:36 UTC579
  top: 4px;
cf23dbf4e77catagen2026-10-23 06:36 UTC580
  right: 4px;
cf23dbf4e77catagen2026-10-23 06:36 UTC581
  width: 22px;
cf23dbf4e77catagen2026-10-23 06:36 UTC582
  height: 22px;
cf23dbf4e77catagen2026-10-23 06:36 UTC583
  min-width: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC584
  padding: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC585
  border-radius: 50%;
cf23dbf4e77catagen2026-10-23 06:36 UTC586
  background: var(--panel);
cf23dbf4e77catagen2026-10-23 06:36 UTC587
  font-size: 11px;
cf23dbf4e77catagen2026-10-23 06:36 UTC588
}
973f8fbdaf80atagen2026-09-28 09:10 UTC589
.composer textarea {
973f8fbdaf80atagen2026-09-28 09:10 UTC590
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC591
  resize: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC592
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC593
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC594
  border-radius: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC595
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC596
  padding: 10px 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC597
  min-height: 40px;
973f8fbdaf80atagen2026-09-28 09:10 UTC598
  max-height: 160px;
973f8fbdaf80atagen2026-09-28 09:10 UTC599
  line-height: 1.4;
973f8fbdaf80atagen2026-09-28 09:10 UTC600
}
973f8fbdaf80atagen2026-09-28 09:10 UTC601
.composer textarea:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC602
.join-bar {
973f8fbdaf80atagen2026-09-28 09:10 UTC603
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC604
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC605
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC606
  padding: 12px 16px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC607
  border-top: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC608
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC609
}
973f8fbdaf80atagen2026-09-28 09:10 UTC610
.join-bar p { margin: 0; color: var(--muted); font-size: 13px; flex: 1; }
973f8fbdaf80atagen2026-09-28 09:10 UTC611
973f8fbdaf80atagen2026-09-28 09:10 UTC612
/* ——— Members ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC613
.members {
973f8fbdaf80atagen2026-09-28 09:10 UTC614
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC615
  border-left: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC616
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC617
  flex-direction: column;
973f8fbdaf80atagen2026-09-28 09:10 UTC618
  min-height: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC619
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC620
}
973f8fbdaf80atagen2026-09-28 09:10 UTC621
.members-head {
973f8fbdaf80atagen2026-09-28 09:10 UTC622
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC623
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC624
  justify-content: space-between;
973f8fbdaf80atagen2026-09-28 09:10 UTC625
  padding: 12px 12px 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC626
}
973f8fbdaf80atagen2026-09-28 09:10 UTC627
.members-head h2 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC628
.member-list { list-style: none; margin: 0; padding: 0 8px 12px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC629
.member { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 8px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC630
.member:hover { background: var(--panel-2); }
973f8fbdaf80atagen2026-09-28 09:10 UTC631
.member-names { min-width: 0; display: flex; flex-direction: column; }
973f8fbdaf80atagen2026-09-28 09:10 UTC632
.member-name { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
973f8fbdaf80atagen2026-09-28 09:10 UTC633
.member-id { font-size: 11px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
973f8fbdaf80atagen2026-09-28 09:10 UTC634
973f8fbdaf80atagen2026-09-28 09:10 UTC635
/* ——— Modal ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC636
.modal-wrap {
973f8fbdaf80atagen2026-09-28 09:10 UTC637
  position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC638
  inset: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC639
  background: rgba(0, 0, 0, 0.6);
973f8fbdaf80atagen2026-09-28 09:10 UTC640
  display: grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC641
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC642
  padding: 20px;
973f8fbdaf80atagen2026-09-28 09:10 UTC643
  z-index: 50;
973f8fbdaf80atagen2026-09-28 09:10 UTC644
}
973f8fbdaf80atagen2026-09-28 09:10 UTC645
.modal {
973f8fbdaf80atagen2026-09-28 09:10 UTC646
  width: min(420px, 100%);
973f8fbdaf80atagen2026-09-28 09:10 UTC647
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC648
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC649
  border-radius: 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC650
  padding: 18px;
973f8fbdaf80atagen2026-09-28 09:10 UTC651
}
973f8fbdaf80atagen2026-09-28 09:10 UTC652
.modal-tabs { display: flex; gap: 4px; margin-bottom: 14px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC653
.modal-tabs button[role='tab'] {
973f8fbdaf80atagen2026-09-28 09:10 UTC654
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC655
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC656
  border-bottom: 2px solid transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC657
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC658
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC659
  padding: 8px 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC660
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC661
  font-size: 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC662
}
973f8fbdaf80atagen2026-09-28 09:10 UTC663
.modal-tabs button[role='tab'].active { color: var(--text); border-bottom-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC664
.modal-x { margin-left: auto; }
973f8fbdaf80atagen2026-09-28 09:10 UTC665
.modal .field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--muted); margin-bottom: 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC666
.modal .field input {
973f8fbdaf80atagen2026-09-28 09:10 UTC667
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC668
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC669
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC670
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC671
  padding: 9px 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC672
  font-size: 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC673
}
973f8fbdaf80atagen2026-09-28 09:10 UTC674
.modal .field input:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC675
973f8fbdaf80atagen2026-09-28 09:10 UTC676
.only-mobile { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC677
973f8fbdaf80atagen2026-09-28 09:10 UTC678
@media (max-width: 1100px) {
df3c0f2b3da4atagen2026-10-22 13:07 UTC679
  .app, .app:has(.members), .app.nav-folded, .app.nav-folded:has(.members) { grid-template-columns: 60px 1fr; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC680
  .app.nav-folded > .rail, .app.nav-folded > .sidebar { display: flex; }
973f8fbdaf80atagen2026-09-28 09:10 UTC681
  .sidebar {
973f8fbdaf80atagen2026-09-28 09:10 UTC682
    position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC683
    top: 0; bottom: 0; left: 60px;
973f8fbdaf80atagen2026-09-28 09:10 UTC684
    width: min(320px, 85vw);
973f8fbdaf80atagen2026-09-28 09:10 UTC685
    z-index: 40;
973f8fbdaf80atagen2026-09-28 09:10 UTC686
    transform: translateX(calc(-100% - 60px));
973f8fbdaf80atagen2026-09-28 09:10 UTC687
    transition: transform 0.18s ease;
973f8fbdaf80atagen2026-09-28 09:10 UTC688
    box-shadow: 8px 0 32px rgba(0, 0, 0, 0.5);
973f8fbdaf80atagen2026-09-28 09:10 UTC689
  }
973f8fbdaf80atagen2026-09-28 09:10 UTC690
  .sidebar.open { transform: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC691
  .scrim {
973f8fbdaf80atagen2026-09-28 09:10 UTC692
    display: block;
973f8fbdaf80atagen2026-09-28 09:10 UTC693
    position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC694
    inset: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC695
    left: 60px;
973f8fbdaf80atagen2026-09-28 09:10 UTC696
    background: rgba(0, 0, 0, 0.55);
973f8fbdaf80atagen2026-09-28 09:10 UTC697
    border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC698
    z-index: 30;
973f8fbdaf80atagen2026-09-28 09:10 UTC699
    cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC700
  }
973f8fbdaf80atagen2026-09-28 09:10 UTC701
  .members {
973f8fbdaf80atagen2026-09-28 09:10 UTC702
    position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC703
    top: 0; bottom: 0; right: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC704
    width: min(300px, 85vw);
973f8fbdaf80atagen2026-09-28 09:10 UTC705
    z-index: 40;
973f8fbdaf80atagen2026-09-28 09:10 UTC706
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.5);
973f8fbdaf80atagen2026-09-28 09:10 UTC707
  }
973f8fbdaf80atagen2026-09-28 09:10 UTC708
  .only-mobile { display: inline-block; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC709
  .only-desktop { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC710
  .head-actions .ghost-btn { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC711
  .timeline { padding: 10px 12px 14px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC712
  .chat-head { padding: 8px 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC713
  .composer { padding: 10px 12px 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC714
}
973f8fbdaf80atagen2026-09-28 09:10 UTC715
973f8fbdaf80atagen2026-09-28 09:10 UTC716
@media (max-width: 640px) {
df3c0f2b3da4atagen2026-10-22 13:07 UTC717
  .app, .app:has(.members), .app.nav-folded, .app.nav-folded:has(.members) { grid-template-columns: 52px 1fr; }
973f8fbdaf80atagen2026-09-28 09:10 UTC718
  .sidebar { left: 52px; transform: translateX(calc(-100% - 52px)); }
973f8fbdaf80atagen2026-09-28 09:10 UTC719
  .scrim { left: 52px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC720
  .rail-btn { width: 40px; height: 40px; font-size: 16px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC721
  .empty-cta { flex-direction: column; }
973f8fbdaf80atagen2026-09-28 09:10 UTC722
}