atagen

malice

public
Star0
Watch0
787cdbbf0721a1b004712020969dadaa42f35e32
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
.head-room { display: flex; align-items: center; gap: 12px; min-width: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC216
.head-room-text { min-width: 0; flex: 1; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC217
.conn-banner.error { background: var(--danger-bg); border-color: var(--danger-border); color: var(--danger-text); }
973f8fbdaf80atagen2026-09-28 09:10 UTC218
/* ——— Sidebar ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC219
.sidebar {
973f8fbdaf80atagen2026-09-28 09:10 UTC220
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC221
  border-right: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC222
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC223
  flex-direction: column;
973f8fbdaf80atagen2026-09-28 09:10 UTC224
  min-height: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC225
}
973f8fbdaf80atagen2026-09-28 09:10 UTC226
.side-search {
973f8fbdaf80atagen2026-09-28 09:10 UTC227
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC228
  gap: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC229
  padding: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC230
  border-bottom: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC231
}
973f8fbdaf80atagen2026-09-28 09:10 UTC232
.side-search input {
973f8fbdaf80atagen2026-09-28 09:10 UTC233
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC234
  min-width: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC235
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC236
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC237
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC238
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC239
  padding: 7px 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC240
}
973f8fbdaf80atagen2026-09-28 09:10 UTC241
.side-search input:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC242
.side-scroll { flex: 1; overflow-y: auto; padding: 8px; min-height: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC243
.side-h {
973f8fbdaf80atagen2026-09-28 09:10 UTC244
  font-size: 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC245
  text-transform: uppercase;
973f8fbdaf80atagen2026-09-28 09:10 UTC246
  letter-spacing: 0.08em;
973f8fbdaf80atagen2026-09-28 09:10 UTC247
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC248
  margin: 12px 6px 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC249
}
973f8fbdaf80atagen2026-09-28 09:10 UTC250
.side-h:first-child { margin-top: 4px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC251
.room-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC252
.room-row {
973f8fbdaf80atagen2026-09-28 09:10 UTC253
  width: 100%;
973f8fbdaf80atagen2026-09-28 09:10 UTC254
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC255
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC256
  gap: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC257
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC258
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC259
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC260
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC261
  padding: 7px 9px;
973f8fbdaf80atagen2026-09-28 09:10 UTC262
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC263
  text-align: left;
973f8fbdaf80atagen2026-09-28 09:10 UTC264
  font-size: 13.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC265
}
973f8fbdaf80atagen2026-09-28 09:10 UTC266
.room-row:hover { background: var(--panel-2); }
df3c0f2b3da4atagen2026-10-22 13:07 UTC267
.room-row.active { background: color-mix(in srgb, var(--accent) 20%, transparent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC268
.room-row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC269
.room-hash { color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC270
.room-name {
973f8fbdaf80atagen2026-09-28 09:10 UTC271
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC272
  min-width: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC273
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC274
  text-overflow: ellipsis;
973f8fbdaf80atagen2026-09-28 09:10 UTC275
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC276
}
973f8fbdaf80atagen2026-09-28 09:10 UTC277
.badge {
973f8fbdaf80atagen2026-09-28 09:10 UTC278
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC279
  min-width: 20px;
973f8fbdaf80atagen2026-09-28 09:10 UTC280
  height: 20px;
973f8fbdaf80atagen2026-09-28 09:10 UTC281
  padding: 0 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC282
  border-radius: 999px;
973f8fbdaf80atagen2026-09-28 09:10 UTC283
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC284
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC285
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC286
  font-size: 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC287
  font-weight: 700;
973f8fbdaf80atagen2026-09-28 09:10 UTC288
  display: inline-grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC289
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC290
}
973f8fbdaf80atagen2026-09-28 09:10 UTC291
.badge.mention { background: var(--accent); border-color: var(--accent); color: #fff; }
973f8fbdaf80atagen2026-09-28 09:10 UTC292
.invite-join {
973f8fbdaf80atagen2026-09-28 09:10 UTC293
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC294
  background: var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC295
  color: #fff;
973f8fbdaf80atagen2026-09-28 09:10 UTC296
  border-radius: 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC297
  padding: 2px 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC298
  font-size: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC299
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC300
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC301
}
973f8fbdaf80atagen2026-09-28 09:10 UTC302
.side-note { color: var(--muted); font-size: 13px; padding: 8px 6px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC303
.side-cta { display: flex; gap: 8px; padding: 0 6px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC304
.side-cta button {
973f8fbdaf80atagen2026-09-28 09:10 UTC305
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC306
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC307
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC308
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC309
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC310
  padding: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC311
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC312
}
973f8fbdaf80atagen2026-09-28 09:10 UTC313
.side-cta button:hover { border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC314
.side-footer {
973f8fbdaf80atagen2026-09-28 09:10 UTC315
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC316
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC317
  gap: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC318
  padding: 10px 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC319
  border-top: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC320
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC321
}
973f8fbdaf80atagen2026-09-28 09:10 UTC322
.me { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC323
.me-avatar {
973f8fbdaf80atagen2026-09-28 09:10 UTC324
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC325
  width: 30px; height: 30px;
973f8fbdaf80atagen2026-09-28 09:10 UTC326
  border-radius: 50%;
973f8fbdaf80atagen2026-09-28 09:10 UTC327
  background: var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC328
  color: #fff;
973f8fbdaf80atagen2026-09-28 09:10 UTC329
  font-weight: 700;
973f8fbdaf80atagen2026-09-28 09:10 UTC330
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC331
  display: inline-grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC332
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC333
}
973f8fbdaf80atagen2026-09-28 09:10 UTC334
.me-id {
973f8fbdaf80atagen2026-09-28 09:10 UTC335
  min-width: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC336
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC337
  text-overflow: ellipsis;
973f8fbdaf80atagen2026-09-28 09:10 UTC338
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC339
  font-size: 12.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC340
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC341
}
973f8fbdaf80atagen2026-09-28 09:10 UTC342
.icon-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC343
  flex: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC344
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC345
  border: 1px solid transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC346
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC347
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC348
  font-size: 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC349
  padding: 5px 9px;
973f8fbdaf80atagen2026-09-28 09:10 UTC350
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC351
}
973f8fbdaf80atagen2026-09-28 09:10 UTC352
.icon-btn:hover:not(:disabled) { background: var(--panel-2); color: var(--text); }
973f8fbdaf80atagen2026-09-28 09:10 UTC353
.icon-btn:disabled { opacity: 0.4; cursor: default; }
973f8fbdaf80atagen2026-09-28 09:10 UTC354
.scrim { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC355
973f8fbdaf80atagen2026-09-28 09:10 UTC356
/* ——— Chat ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC357
.chat { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: var(--bg); }
973f8fbdaf80atagen2026-09-28 09:10 UTC358
.empty {
973f8fbdaf80atagen2026-09-28 09:10 UTC359
  margin: auto;
973f8fbdaf80atagen2026-09-28 09:10 UTC360
  text-align: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC361
  padding: 24px;
973f8fbdaf80atagen2026-09-28 09:10 UTC362
  max-width: 420px;
973f8fbdaf80atagen2026-09-28 09:10 UTC363
}
973f8fbdaf80atagen2026-09-28 09:10 UTC364
.empty-mark { font-size: 44px; color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC365
.empty h1 { font-size: 22px; margin: 8px 0 4px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC366
.empty p { color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC367
.empty-cta { display: flex; gap: 10px; justify-content: center; margin: 16px 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC368
.conn-line { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC369
973f8fbdaf80atagen2026-09-28 09:10 UTC370
.chat-head {
973f8fbdaf80atagen2026-09-28 09:10 UTC371
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC372
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC373
  gap: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC374
  padding: 10px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC375
  border-bottom: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC376
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC377
  min-height: 62px;
973f8fbdaf80atagen2026-09-28 09:10 UTC378
}
973f8fbdaf80atagen2026-09-28 09:10 UTC379
.head-title { flex: 1; min-width: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC380
.head-title h1 {
973f8fbdaf80atagen2026-09-28 09:10 UTC381
  margin: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC382
  font-size: 15.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC383
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC384
  text-overflow: ellipsis;
973f8fbdaf80atagen2026-09-28 09:10 UTC385
  white-space: nowrap;
973f8fbdaf80atagen2026-09-28 09:10 UTC386
}
973f8fbdaf80atagen2026-09-28 09:10 UTC387
.head-meta { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC388
.pill {
973f8fbdaf80atagen2026-09-28 09:10 UTC389
  font-size: 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC390
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC391
  border-radius: 999px;
973f8fbdaf80atagen2026-09-28 09:10 UTC392
  padding: 0 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC393
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC394
}
973f8fbdaf80atagen2026-09-28 09:10 UTC395
.conn { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
973f8fbdaf80atagen2026-09-28 09:10 UTC396
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--muted); display: inline-block; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC397
.dot-online { background: var(--ok); }
973f8fbdaf80atagen2026-09-28 09:10 UTC398
.dot-busy { background: var(--warn); }
973f8fbdaf80atagen2026-09-28 09:10 UTC399
.dot-off { background: var(--danger); }
973f8fbdaf80atagen2026-09-28 09:10 UTC400
.head-actions { display: flex; align-items: center; gap: 8px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC401
973f8fbdaf80atagen2026-09-28 09:10 UTC402
.primary-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC403
  background: var(--accent);
973f8fbdaf80atagen2026-09-28 09:10 UTC404
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC405
  color: #fff;
973f8fbdaf80atagen2026-09-28 09:10 UTC406
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC407
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC408
  padding: 8px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC409
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC410
  font-size: 13.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC411
}
973f8fbdaf80atagen2026-09-28 09:10 UTC412
.primary-btn:hover:not(:disabled) { filter: brightness(1.1); }
973f8fbdaf80atagen2026-09-28 09:10 UTC413
.primary-btn:disabled { opacity: 0.55; cursor: default; }
973f8fbdaf80atagen2026-09-28 09:10 UTC414
.primary-btn.wide { width: 100%; margin-top: 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC415
.ghost-btn {
973f8fbdaf80atagen2026-09-28 09:10 UTC416
  background: var(--panel-2);
973f8fbdaf80atagen2026-09-28 09:10 UTC417
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC418
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC419
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC420
  padding: 7px 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC421
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC422
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC423
}
973f8fbdaf80atagen2026-09-28 09:10 UTC424
.ghost-btn:hover:not(:disabled) { border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC425
.ghost-btn:disabled { opacity: 0.55; cursor: wait; }
973f8fbdaf80atagen2026-09-28 09:10 UTC426
.ghost-btn.danger { color: var(--danger); }
973f8fbdaf80atagen2026-09-28 09:10 UTC427
.ghost-btn.danger:hover:not(:disabled) { border-color: var(--danger); }
973f8fbdaf80atagen2026-09-28 09:10 UTC428
973f8fbdaf80atagen2026-09-28 09:10 UTC429
.banners { display: flex; flex-direction: column; gap: 6px; padding: 10px 16px 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC430
.banner {
973f8fbdaf80atagen2026-09-28 09:10 UTC431
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC432
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC433
  gap: 10px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC434
  background: var(--danger-bg);
df3c0f2b3da4atagen2026-10-22 13:07 UTC435
  border: 1px solid var(--danger-border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC436
  color: var(--danger-text);
973f8fbdaf80atagen2026-09-28 09:10 UTC437
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC438
  padding: 8px 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC439
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC440
}
973f8fbdaf80atagen2026-09-28 09:10 UTC441
.banner span { flex: 1; }
973f8fbdaf80atagen2026-09-28 09:10 UTC442
.banner button {
973f8fbdaf80atagen2026-09-28 09:10 UTC443
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC444
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC445
  color: inherit;
973f8fbdaf80atagen2026-09-28 09:10 UTC446
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC447
  font-size: 13px;
973f8fbdaf80atagen2026-09-28 09:10 UTC448
  padding: 2px 6px;
973f8fbdaf80atagen2026-09-28 09:10 UTC449
}
973f8fbdaf80atagen2026-09-28 09:10 UTC450
.conn-banner {
973f8fbdaf80atagen2026-09-28 09:10 UTC451
  margin: 10px 16px 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC452
  padding: 7px 12px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC453
  background: var(--warn-bg);
df3c0f2b3da4atagen2026-10-22 13:07 UTC454
  border: 1px solid var(--warn-border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC455
  color: var(--warn-text);
973f8fbdaf80atagen2026-09-28 09:10 UTC456
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC457
  font-size: 12.5px;
973f8fbdaf80atagen2026-09-28 09:10 UTC458
}
973f8fbdaf80atagen2026-09-28 09:10 UTC459
973f8fbdaf80atagen2026-09-28 09:10 UTC460
.timeline {
973f8fbdaf80atagen2026-09-28 09:10 UTC461
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC462
  overflow-y: auto;
973f8fbdaf80atagen2026-09-28 09:10 UTC463
  padding: 12px 20px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC464
  min-height: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC465
}
973f8fbdaf80atagen2026-09-28 09:10 UTC466
.timeline-top { display: flex; justify-content: center; padding: 4px 0 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC467
.start-note { text-align: center; color: var(--muted); font-size: 12.5px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC468
.timeline-empty { text-align: center; padding: 32px 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC469
.day-row {
973f8fbdaf80atagen2026-09-28 09:10 UTC470
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC471
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC472
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC473
  margin: 14px 0 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC474
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC475
  font-size: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC476
}
973f8fbdaf80atagen2026-09-28 09:10 UTC477
.day-row::before, .day-row::after {
973f8fbdaf80atagen2026-09-28 09:10 UTC478
  content: '';
973f8fbdaf80atagen2026-09-28 09:10 UTC479
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC480
  height: 1px;
973f8fbdaf80atagen2026-09-28 09:10 UTC481
  background: var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC482
}
973f8fbdaf80atagen2026-09-28 09:10 UTC483
.new-row {
973f8fbdaf80atagen2026-09-28 09:10 UTC484
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC485
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC486
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC487
  margin: 8px 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC488
  color: var(--danger);
973f8fbdaf80atagen2026-09-28 09:10 UTC489
  font-size: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC490
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC491
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC492
.new-row::before, .new-row::after { content: ''; flex: 1; height: 1px; background: var(--danger-border); }
973f8fbdaf80atagen2026-09-28 09:10 UTC493
.unknown-note { color: var(--muted); font-size: 12.5px; font-style: italic; }
973f8fbdaf80atagen2026-09-28 09:10 UTC494
.pending-actions {
973f8fbdaf80atagen2026-09-28 09:10 UTC495
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC496
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC497
  gap: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC498
  margin: -4px 0 6px 44px;
973f8fbdaf80atagen2026-09-28 09:10 UTC499
}
973f8fbdaf80atagen2026-09-28 09:10 UTC500
.pending-error { color: var(--danger); font-size: 12px; flex: 1; min-width: 0; overflow-wrap: anywhere; }
973f8fbdaf80atagen2026-09-28 09:10 UTC501
973f8fbdaf80atagen2026-09-28 09:10 UTC502
.composer {
973f8fbdaf80atagen2026-09-28 09:10 UTC503
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC504
  gap: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC505
  align-items: flex-end;
973f8fbdaf80atagen2026-09-28 09:10 UTC506
  padding: 12px 16px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC507
  border-top: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC508
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC509
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC510
.reply-bar {
df3c0f2b3da4atagen2026-10-22 13:07 UTC511
  display: flex;
df3c0f2b3da4atagen2026-10-22 13:07 UTC512
  align-items: center;
df3c0f2b3da4atagen2026-10-22 13:07 UTC513
  gap: 8px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC514
  padding: 6px 16px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC515
  border-top: 1px solid var(--border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC516
  border-left: 3px solid var(--accent);
df3c0f2b3da4atagen2026-10-22 13:07 UTC517
  background: var(--panel);
df3c0f2b3da4atagen2026-10-22 13:07 UTC518
  font-size: 12.5px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC519
  color: var(--muted);
df3c0f2b3da4atagen2026-10-22 13:07 UTC520
}
df3c0f2b3da4atagen2026-10-22 13:07 UTC521
.reply-bar strong { color: var(--text); font-weight: 650; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC522
.reply-bar-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC523
.reply-bar-text { margin-left: 6px; }
cf23dbf4e77catagen2026-10-23 06:36 UTC524
.composer.replying, .composer.staging, .reply-bar + .staged { border-top: none; }
cf23dbf4e77catagen2026-10-23 06:36 UTC525
.composer { position: relative; }
cf23dbf4e77catagen2026-10-23 06:36 UTC526
.mention-finder {
cf23dbf4e77catagen2026-10-23 06:36 UTC527
  position: absolute;
cf23dbf4e77catagen2026-10-23 06:36 UTC528
  left: 16px;
cf23dbf4e77catagen2026-10-23 06:36 UTC529
  right: 16px;
cf23dbf4e77catagen2026-10-23 06:36 UTC530
  bottom: calc(100% + 4px);
cf23dbf4e77catagen2026-10-23 06:36 UTC531
  z-index: 20;
cf23dbf4e77catagen2026-10-23 06:36 UTC532
  max-width: 420px;
cf23dbf4e77catagen2026-10-23 06:36 UTC533
  margin: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC534
  padding: 4px;
cf23dbf4e77catagen2026-10-23 06:36 UTC535
  list-style: none;
cf23dbf4e77catagen2026-10-23 06:36 UTC536
  border: 1px solid var(--border);
cf23dbf4e77catagen2026-10-23 06:36 UTC537
  border-radius: 10px;
cf23dbf4e77catagen2026-10-23 06:36 UTC538
  background: var(--panel-2);
cf23dbf4e77catagen2026-10-23 06:36 UTC539
  box-shadow: 0 8px 24px rgb(0 0 0 / 0.3);
cf23dbf4e77catagen2026-10-23 06:36 UTC540
}
cf23dbf4e77catagen2026-10-23 06:36 UTC541
.mention-finder li {
cf23dbf4e77catagen2026-10-23 06:36 UTC542
  display: flex;
cf23dbf4e77catagen2026-10-23 06:36 UTC543
  align-items: center;
cf23dbf4e77catagen2026-10-23 06:36 UTC544
  gap: 8px;
cf23dbf4e77catagen2026-10-23 06:36 UTC545
  padding: 5px 8px;
cf23dbf4e77catagen2026-10-23 06:36 UTC546
  border-radius: 6px;
cf23dbf4e77catagen2026-10-23 06:36 UTC547
  cursor: pointer;
cf23dbf4e77catagen2026-10-23 06:36 UTC548
  font-size: 13px;
cf23dbf4e77catagen2026-10-23 06:36 UTC549
}
cf23dbf4e77catagen2026-10-23 06:36 UTC550
.mention-finder li.active { background: color-mix(in srgb, var(--accent) 22%, transparent); }
cf23dbf4e77catagen2026-10-23 06:36 UTC551
.mention-name { font-weight: 600; white-space: nowrap; }
cf23dbf4e77catagen2026-10-23 06:36 UTC552
.mention-id { min-width: 0; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
cf23dbf4e77catagen2026-10-23 06:36 UTC553
.staged {
cf23dbf4e77catagen2026-10-23 06:36 UTC554
  display: flex;
cf23dbf4e77catagen2026-10-23 06:36 UTC555
  flex-wrap: wrap;
cf23dbf4e77catagen2026-10-23 06:36 UTC556
  gap: 8px;
cf23dbf4e77catagen2026-10-23 06:36 UTC557
  margin: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC558
  padding: 10px 16px 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC559
  list-style: none;
cf23dbf4e77catagen2026-10-23 06:36 UTC560
  border-top: 1px solid var(--border);
cf23dbf4e77catagen2026-10-23 06:36 UTC561
  background: var(--panel);
cf23dbf4e77catagen2026-10-23 06:36 UTC562
}
cf23dbf4e77catagen2026-10-23 06:36 UTC563
.staged-item {
cf23dbf4e77catagen2026-10-23 06:36 UTC564
  position: relative;
cf23dbf4e77catagen2026-10-23 06:36 UTC565
  display: grid;
cf23dbf4e77catagen2026-10-23 06:36 UTC566
  place-items: center;
cf23dbf4e77catagen2026-10-23 06:36 UTC567
  width: 84px;
cf23dbf4e77catagen2026-10-23 06:36 UTC568
  height: 84px;
cf23dbf4e77catagen2026-10-23 06:36 UTC569
  border: 1px solid var(--border);
cf23dbf4e77catagen2026-10-23 06:36 UTC570
  border-radius: 10px;
cf23dbf4e77catagen2026-10-23 06:36 UTC571
  background: var(--bg-soft);
cf23dbf4e77catagen2026-10-23 06:36 UTC572
  overflow: hidden;
cf23dbf4e77catagen2026-10-23 06:36 UTC573
}
cf23dbf4e77catagen2026-10-23 06:36 UTC574
.staged-item img { width: 100%; height: 100%; object-fit: cover; }
cf23dbf4e77catagen2026-10-23 06:36 UTC575
.staged-name { padding: 6px; font-size: 11.5px; color: var(--muted); overflow-wrap: anywhere; text-align: center; }
cf23dbf4e77catagen2026-10-23 06:36 UTC576
.staged-remove {
cf23dbf4e77catagen2026-10-23 06:36 UTC577
  position: absolute;
cf23dbf4e77catagen2026-10-23 06:36 UTC578
  top: 4px;
cf23dbf4e77catagen2026-10-23 06:36 UTC579
  right: 4px;
cf23dbf4e77catagen2026-10-23 06:36 UTC580
  width: 22px;
cf23dbf4e77catagen2026-10-23 06:36 UTC581
  height: 22px;
cf23dbf4e77catagen2026-10-23 06:36 UTC582
  min-width: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC583
  padding: 0;
cf23dbf4e77catagen2026-10-23 06:36 UTC584
  border-radius: 50%;
cf23dbf4e77catagen2026-10-23 06:36 UTC585
  background: var(--panel);
cf23dbf4e77catagen2026-10-23 06:36 UTC586
  font-size: 11px;
cf23dbf4e77catagen2026-10-23 06:36 UTC587
}
973f8fbdaf80atagen2026-09-28 09:10 UTC588
.composer textarea {
973f8fbdaf80atagen2026-09-28 09:10 UTC589
  flex: 1;
973f8fbdaf80atagen2026-09-28 09:10 UTC590
  resize: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC591
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC592
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC593
  border-radius: 10px;
973f8fbdaf80atagen2026-09-28 09:10 UTC594
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC595
  padding: 10px 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC596
  min-height: 40px;
973f8fbdaf80atagen2026-09-28 09:10 UTC597
  max-height: 160px;
973f8fbdaf80atagen2026-09-28 09:10 UTC598
  line-height: 1.4;
973f8fbdaf80atagen2026-09-28 09:10 UTC599
}
973f8fbdaf80atagen2026-09-28 09:10 UTC600
.composer textarea:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC601
.join-bar {
973f8fbdaf80atagen2026-09-28 09:10 UTC602
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC603
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC604
  gap: 12px;
973f8fbdaf80atagen2026-09-28 09:10 UTC605
  padding: 12px 16px 16px;
973f8fbdaf80atagen2026-09-28 09:10 UTC606
  border-top: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC607
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC608
}
973f8fbdaf80atagen2026-09-28 09:10 UTC609
.join-bar p { margin: 0; color: var(--muted); font-size: 13px; flex: 1; }
973f8fbdaf80atagen2026-09-28 09:10 UTC610
973f8fbdaf80atagen2026-09-28 09:10 UTC611
/* ——— Members ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC612
.members {
973f8fbdaf80atagen2026-09-28 09:10 UTC613
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC614
  border-left: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC615
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC616
  flex-direction: column;
973f8fbdaf80atagen2026-09-28 09:10 UTC617
  min-height: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC618
  overflow: hidden;
973f8fbdaf80atagen2026-09-28 09:10 UTC619
}
973f8fbdaf80atagen2026-09-28 09:10 UTC620
.members-head {
973f8fbdaf80atagen2026-09-28 09:10 UTC621
  display: flex;
973f8fbdaf80atagen2026-09-28 09:10 UTC622
  align-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC623
  justify-content: space-between;
973f8fbdaf80atagen2026-09-28 09:10 UTC624
  padding: 12px 12px 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC625
}
973f8fbdaf80atagen2026-09-28 09:10 UTC626
.members-head h2 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin: 0; }
973f8fbdaf80atagen2026-09-28 09:10 UTC627
.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 UTC628
.member { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 8px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC629
.member:hover { background: var(--panel-2); }
973f8fbdaf80atagen2026-09-28 09:10 UTC630
.member-names { min-width: 0; display: flex; flex-direction: column; }
973f8fbdaf80atagen2026-09-28 09:10 UTC631
.member-name { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
973f8fbdaf80atagen2026-09-28 09:10 UTC632
.member-id { font-size: 11px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
973f8fbdaf80atagen2026-09-28 09:10 UTC633
973f8fbdaf80atagen2026-09-28 09:10 UTC634
/* ——— Modal ——— */
973f8fbdaf80atagen2026-09-28 09:10 UTC635
.modal-wrap {
973f8fbdaf80atagen2026-09-28 09:10 UTC636
  position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC637
  inset: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC638
  background: rgba(0, 0, 0, 0.6);
973f8fbdaf80atagen2026-09-28 09:10 UTC639
  display: grid;
973f8fbdaf80atagen2026-09-28 09:10 UTC640
  place-items: center;
973f8fbdaf80atagen2026-09-28 09:10 UTC641
  padding: 20px;
973f8fbdaf80atagen2026-09-28 09:10 UTC642
  z-index: 50;
973f8fbdaf80atagen2026-09-28 09:10 UTC643
}
973f8fbdaf80atagen2026-09-28 09:10 UTC644
.modal {
973f8fbdaf80atagen2026-09-28 09:10 UTC645
  width: min(420px, 100%);
973f8fbdaf80atagen2026-09-28 09:10 UTC646
  background: var(--panel);
973f8fbdaf80atagen2026-09-28 09:10 UTC647
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC648
  border-radius: 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC649
  padding: 18px;
973f8fbdaf80atagen2026-09-28 09:10 UTC650
}
973f8fbdaf80atagen2026-09-28 09:10 UTC651
.modal-tabs { display: flex; gap: 4px; margin-bottom: 14px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC652
.modal-tabs button[role='tab'] {
973f8fbdaf80atagen2026-09-28 09:10 UTC653
  background: transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC654
  border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC655
  border-bottom: 2px solid transparent;
973f8fbdaf80atagen2026-09-28 09:10 UTC656
  color: var(--muted);
973f8fbdaf80atagen2026-09-28 09:10 UTC657
  font-weight: 600;
973f8fbdaf80atagen2026-09-28 09:10 UTC658
  padding: 8px 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC659
  cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC660
  font-size: 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC661
}
973f8fbdaf80atagen2026-09-28 09:10 UTC662
.modal-tabs button[role='tab'].active { color: var(--text); border-bottom-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC663
.modal-x { margin-left: auto; }
973f8fbdaf80atagen2026-09-28 09:10 UTC664
.modal .field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--muted); margin-bottom: 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC665
.modal .field input {
973f8fbdaf80atagen2026-09-28 09:10 UTC666
  background: var(--bg-soft);
973f8fbdaf80atagen2026-09-28 09:10 UTC667
  border: 1px solid var(--border);
973f8fbdaf80atagen2026-09-28 09:10 UTC668
  border-radius: 8px;
973f8fbdaf80atagen2026-09-28 09:10 UTC669
  color: var(--text);
973f8fbdaf80atagen2026-09-28 09:10 UTC670
  padding: 9px 11px;
973f8fbdaf80atagen2026-09-28 09:10 UTC671
  font-size: 14px;
973f8fbdaf80atagen2026-09-28 09:10 UTC672
}
973f8fbdaf80atagen2026-09-28 09:10 UTC673
.modal .field input:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
973f8fbdaf80atagen2026-09-28 09:10 UTC674
973f8fbdaf80atagen2026-09-28 09:10 UTC675
.only-mobile { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC676
973f8fbdaf80atagen2026-09-28 09:10 UTC677
@media (max-width: 1100px) {
df3c0f2b3da4atagen2026-10-22 13:07 UTC678
  .app, .app:has(.members), .app.nav-folded, .app.nav-folded:has(.members) { grid-template-columns: 60px 1fr; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC679
  .app.nav-folded > .rail, .app.nav-folded > .sidebar { display: flex; }
973f8fbdaf80atagen2026-09-28 09:10 UTC680
  .sidebar {
973f8fbdaf80atagen2026-09-28 09:10 UTC681
    position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC682
    top: 0; bottom: 0; left: 60px;
973f8fbdaf80atagen2026-09-28 09:10 UTC683
    width: min(320px, 85vw);
973f8fbdaf80atagen2026-09-28 09:10 UTC684
    z-index: 40;
973f8fbdaf80atagen2026-09-28 09:10 UTC685
    transform: translateX(calc(-100% - 60px));
973f8fbdaf80atagen2026-09-28 09:10 UTC686
    transition: transform 0.18s ease;
973f8fbdaf80atagen2026-09-28 09:10 UTC687
    box-shadow: 8px 0 32px rgba(0, 0, 0, 0.5);
973f8fbdaf80atagen2026-09-28 09:10 UTC688
  }
973f8fbdaf80atagen2026-09-28 09:10 UTC689
  .sidebar.open { transform: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC690
  .scrim {
973f8fbdaf80atagen2026-09-28 09:10 UTC691
    display: block;
973f8fbdaf80atagen2026-09-28 09:10 UTC692
    position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC693
    inset: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC694
    left: 60px;
973f8fbdaf80atagen2026-09-28 09:10 UTC695
    background: rgba(0, 0, 0, 0.55);
973f8fbdaf80atagen2026-09-28 09:10 UTC696
    border: none;
973f8fbdaf80atagen2026-09-28 09:10 UTC697
    z-index: 30;
973f8fbdaf80atagen2026-09-28 09:10 UTC698
    cursor: pointer;
973f8fbdaf80atagen2026-09-28 09:10 UTC699
  }
973f8fbdaf80atagen2026-09-28 09:10 UTC700
  .members {
973f8fbdaf80atagen2026-09-28 09:10 UTC701
    position: fixed;
973f8fbdaf80atagen2026-09-28 09:10 UTC702
    top: 0; bottom: 0; right: 0;
973f8fbdaf80atagen2026-09-28 09:10 UTC703
    width: min(300px, 85vw);
973f8fbdaf80atagen2026-09-28 09:10 UTC704
    z-index: 40;
973f8fbdaf80atagen2026-09-28 09:10 UTC705
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.5);
973f8fbdaf80atagen2026-09-28 09:10 UTC706
  }
973f8fbdaf80atagen2026-09-28 09:10 UTC707
  .only-mobile { display: inline-block; }
df3c0f2b3da4atagen2026-10-22 13:07 UTC708
  .only-desktop { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC709
  .head-actions .ghost-btn { display: none; }
973f8fbdaf80atagen2026-09-28 09:10 UTC710
  .timeline { padding: 10px 12px 14px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC711
  .chat-head { padding: 8px 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC712
  .composer { padding: 10px 12px 12px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC713
}
973f8fbdaf80atagen2026-09-28 09:10 UTC714
973f8fbdaf80atagen2026-09-28 09:10 UTC715
@media (max-width: 640px) {
df3c0f2b3da4atagen2026-10-22 13:07 UTC716
  .app, .app:has(.members), .app.nav-folded, .app.nav-folded:has(.members) { grid-template-columns: 52px 1fr; }
973f8fbdaf80atagen2026-09-28 09:10 UTC717
  .sidebar { left: 52px; transform: translateX(calc(-100% - 52px)); }
973f8fbdaf80atagen2026-09-28 09:10 UTC718
  .scrim { left: 52px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC719
  .rail-btn { width: 40px; height: 40px; font-size: 16px; }
973f8fbdaf80atagen2026-09-28 09:10 UTC720
  .empty-cta { flex-direction: column; }
973f8fbdaf80atagen2026-09-28 09:10 UTC721
}