:root {
  --accent:var(--green);--surface:var(--solid);--soft:var(--selected);
  color-scheme: light;
  font-family: "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
  font-size: 14px; color: #173a30; background: #f7f8f2;
  --ink: #173a30; --green: #17634b; --on-accent: #fafff8; --line: #cbdcd0; --muted: #496357;
  --glass: #fefff9b8; --solid: #fefff9; --field: #ffffffb3; --selected: #e1ede4; --rim: #ffffffc7;
  --shadow: 0 18px 64px #294b3620; --ease: cubic-bezier(.16, 1, .3, 1);
}
* { box-sizing: border-box; scrollbar-width: thin; scrollbar-color: #7f9d8c transparent; }
body { margin: 0; min-height: 100dvh; background: radial-gradient(ellipse at 92% 2%, #bbddcb 0, transparent 53%), radial-gradient(ellipse at 3% 44%, #cbc5e150 0, transparent 48%), radial-gradient(ellipse at 30% 98%, #acd8c2 0, transparent 62%), #f7f8f2; background-attachment: fixed; }
::selection { background: #a8c9ac; color: #173a30; }
button, input, select, textarea { font: inherit; color: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; border: 1px solid var(--line); background: var(--field); border-radius: 16px; padding: 11px 17px; min-height: 44px; transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms var(--ease); }
button:hover { background: var(--solid); border-color: var(--green); }
button:active { transform: scale(.98); }
button:disabled { opacity: .5; cursor: default; transform: none; }
button.primary { background: var(--green); color: var(--on-accent); border-color: transparent; font-weight: 600; }
button.primary:hover { filter: brightness(1.09); }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
input, textarea, select { width: 100%; border: 1px solid #718d7b; border-radius: 16px; background: var(--field); padding: 12px 14px; caret-color: var(--green); transition: border-color 150ms ease, background 150ms ease; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
input:focus, textarea:focus { background: var(--solid); }
input[type=file] { padding: 6px; font-size: 12px; }
input[type=file]::file-selector-button { font: inherit; color: var(--ink); background: var(--selected); border: 0; border-radius: 10px; padding: 9px 12px; margin-right: 8px; cursor: pointer; }
label { display: grid; gap: 8px; margin-bottom: 20px; font-weight: 600; }
textarea { resize: vertical; min-height: 94px; max-height: 240px; line-height: 1.65; }
h1 { font-size: clamp(24px, 2.7vw, 34px); letter-spacing: -.025em; margin: 0; line-height: 1.35; }
h2 { font-size: 17px; margin: 0 0 10px; }
p { line-height: 1.7; }
small, .muted { color: var(--muted); }
a { color: var(--green); text-underline-offset: 4px; }
.brand-mark img { display: block; border-radius: 13px; }
.brand-name { font-size: 22px; letter-spacing: -.02em; }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.dialog-heading h2 { margin: 0; }
.account-actions { width: min(480px, calc(100vw - 32px)); }
.action-list { display: grid; gap: 10px; margin: 24px 0; }
.action-list button { display: grid; gap: 5px; text-align: left; padding: 16px 18px; }
.action-list small { font-weight: 400; }
button.danger { color: #a01524; }
#account-confirm:empty { display: none; }
#support-avatar { margin-top: 24px; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 700; }
.brand-mark { width: 46px; height: 46px; border-radius: 17px; display: grid; place-items: center; background: var(--selected); color: var(--ink); border: 1px solid var(--rim); }
.brand-mark svg { width: 26px; height: 26px; }
.brand-name { font-size: 21px; letter-spacing: .08em; }
.brand small { display: block; font-size: 11px; font-weight: 400; letter-spacing: .02em; margin-top: 5px; }
.sidebar { width: 216px; position: fixed; inset: 20px auto 20px 20px; border: 1px solid var(--rim); border-radius: 30px; background: var(--glass); backdrop-filter: blur(18px); padding: 24px 16px 16px; display: flex; flex-direction: column; }
.sidebar nav { display: grid; gap: 6px; margin-top: 40px; }
.sidebar nav button { display: flex; align-items: center; gap: 12px; text-align: left; border: 0; background: transparent; padding: 13px 14px; min-height: 50px; white-space: nowrap; }
.sidebar nav button svg { width: 20px; height: 20px; flex: 0 0 20px; }
.sidebar nav button.selected { background: var(--selected); font-weight: 650; color: var(--ink); }
.sidebar nav button:hover:not(.selected) { background: var(--field); }
.sidebar nav b { margin-left: auto; font-size: 11px; font-variant-numeric: tabular-nums; }
.sidebar-bottom { margin-top: auto; padding: 12px 0 0; color: var(--muted); font-size: 12px; }
.sidebar-bottom p { padding: 0 12px; overflow-wrap: anywhere; }
.sidebar-bottom button { font-size: 12px; padding: 10px 12px; }
main { margin-left: 256px; padding: 32px 28px 24px 16px; }
header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 0 4px 24px; min-height: 44px; }
.badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; background: var(--selected); color: var(--ink); border-radius: 100px; padding: 7px 12px; white-space: nowrap; }
#sync-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
.warning { background: #fff0d9; color: #865209; }
.panel, .card { border: 1px solid var(--rim); background: var(--glass); border-radius: 28px; overflow: hidden; }
.workspace { display: grid; grid-template-columns: minmax(215px, 28%) minmax(0, 1fr); height: calc(100dvh - 126px); min-height: 510px; }
.room-list { border-right: 1px solid var(--line); overflow: auto; padding: 8px; }
.list-heading { padding: 16px 16px 12px; }
.list-heading h2 { font-weight: 500; font-size: 13px; color: var(--muted); }
.room { display: flex; gap: 12px; align-items: center; width: 100%; text-align: left; border: 1px solid transparent; border-radius: 20px; padding: 16px 12px; margin-bottom: 5px; background: transparent; }
.room:hover { background: var(--field); border-color: transparent; }
.room.active { background: var(--selected); border-color: transparent; }
.room-avatar { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: var(--solid); color: var(--green); font-size: 17px; font-weight: 650; }
.room-copy { min-width: 0; flex: 1; }
.room-row { display: flex; align-items: center; gap: 4px; }
.room-row > input { width: 18px; height: 18px; flex: 0 0 18px; margin-left: 8px; accent-color: var(--green); }
.list-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin-bottom: 20px; }
.list-toolbar > label { flex: 1 1 260px; max-width: 440px; margin: 0; }
.bulk-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.bulk-actions > span { font-variant-numeric: tabular-nums; color: var(--muted); }
.table-detail { display: block; margin-top: 5px; }
th input[type=checkbox],td input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--green); }
.select-all { display: inline-flex; align-items: center; margin: 0 8px 0 0; font-weight: 400; }
.select-all input { width: 18px; height: 18px; accent-color: var(--green); }
.customer-details { margin-top: 20px; }
.customer-details textarea { min-height: 64px; }
.customer-details .inline-actions { margin-top: 16px; }
.invite-code { font-size: 36px; font-weight: 650; letter-spacing: .12em; color: var(--green); }
.invitation-card { max-width: 620px; }
.chat-heading > div { min-width: 0; overflow-wrap: anywhere; }
.room strong { display: block; margin-bottom: 7px; overflow-wrap: anywhere; line-height: 1.5; }
.room small { display: block; overflow-wrap: anywhere; line-height: 1.5; }
.room .badge { padding: 2px 7px; background: var(--green); color: var(--on-accent); }
.chat { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.chat-heading { padding: 20px 24px 16px; border-bottom: 1px solid var(--line); flex-shrink: 0; position: relative; }
.chat-heading h2 { padding-right: 70px; overflow-wrap: anywhere; }
.chat-heading small { display: block; overflow-wrap: anywhere; }
.chat-heading #transfer { position: absolute; right: 20px; top: 16px; }
.chat-actions { display: flex; gap: 8px; margin-top: 12px; }
#older { margin: 8px auto 0; padding: 5px 14px; min-height: 36px; font-size: 12px; background: transparent; border-color: transparent; }
.messages { padding: 24px; flex: 1; overflow: auto; min-height: 0; overscroll-behavior: contain; }
.message { margin-bottom: 22px; max-width: 84%; width: fit-content; }
.message.role { margin-left: auto; }
.message .body { background: var(--field); border-radius: 4px 20px 20px 20px; padding: 12px 16px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.message.role .body { background: var(--selected); border-radius: 20px 4px 20px 20px; }
.message small { display: block; margin: 7px 2px; line-height: 1.5; font-size: 11px; font-variant-numeric: tabular-nums; }
.message.role small { text-align: right; }
.composer { padding: 16px 24px 20px; border-top: 1px solid var(--line); background: var(--field); flex-shrink: 0; }
.composer label { font-size: 12px; margin-bottom: 8px; }
.composer textarea { background: transparent; min-height: 74px; max-height: 160px; }
.composer-row { display: flex; gap: 12px; align-items: flex-end; margin-top: 10px; }
.composer-row label { margin: 0; min-width: 0; max-width: 340px; font-weight: 400; }
.composer-row button { margin-left: auto; white-space: nowrap; min-width: 76px; }
.empty { padding: 48px 24px; text-align: center; color: var(--muted); margin: auto; line-height: 1.8; }
.table-wrap { overflow: auto; }
table { border-collapse: collapse; width: 100%; font-size: 13px; font-variant-numeric: tabular-nums; }
th { text-align: left; background: var(--field); color: var(--muted); font-weight: 500; white-space: nowrap; }
th, td { padding: 18px 20px; border-bottom: 1px solid var(--line); vertical-align: middle; line-height: 1.6; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: var(--field); }
td { overflow-wrap: anywhere; }
td.code { font-family: ui-monospace, monospace; font-size: 11px; max-width: 260px; }
.toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.card { padding: 28px; margin-bottom: 20px; }
.card form { max-width: 660px; }
.card:has(form) { max-width: 780px; }
.login { width: min(440px, calc(100% - 40px)); margin: 10vh auto; padding: 36px; border: 1px solid var(--rim); border-radius: 36px; background: var(--glass); box-shadow: var(--shadow); backdrop-filter: blur(18px); animation: arrive 420ms var(--ease); }
.login h1 { margin: 36px 0 28px; font-size: 28px; }
.login button { width: 100%; margin-top: 4px; }
#notice { position: fixed; inset: auto auto 24px 50%; margin: 0; border: 0; transform: translateX(-50%); max-width: min(80vw, 600px); overflow-wrap: anywhere; background: var(--green); color: var(--on-accent); padding: 15px 22px; border-radius: 20px; z-index: 20; box-shadow: var(--shadow); line-height: 1.6; }
.body img, .body video, .attachment { display: block; max-width: 100%; max-height: 320px; border-radius: 14px; }
.body audio { max-width: 100%; }
.check { width: auto; margin-right: 8px; }
dialog { color: var(--ink); background: var(--solid); border: 1px solid var(--rim); border-radius: 28px; padding: 28px; width: min(440px, calc(100vw - 32px)); box-shadow: var(--shadow); }
dialog[open] { animation: arrive 240ms var(--ease); }
dialog::backdrop { background: #102d245c; backdrop-filter: blur(6px); }
dialog form > button + button { margin-left: 10px; }
.activity-dialog { width: min(960px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; }
.activity-dialog h2 { margin-bottom: 20px; overflow-wrap: anywhere; }
.activity-dialog th, .activity-dialog td { padding: 16px; }
.activity-dialog td:not(:last-child) { white-space: nowrap; overflow-wrap: normal; }
.activity-dialog td:last-child { min-width: 120px; max-width: 230px; }
.activity-footer { display: flex; justify-content: flex-end; gap: 12px; margin-top: 20px; }
@media (max-width: 600px) {
  .activity-dialog { padding: 20px; }
  .activity-dialog thead { display: none; }
  .activity-dialog tbody, .activity-dialog tr { display: block; }
  .activity-dialog tr { padding: 12px 16px; border-bottom: 1px solid var(--line); }
  .activity-dialog tr:last-child { border-bottom: 0; }
  .activity-dialog td, .activity-dialog td:last-child, .activity-dialog td:not(:last-child) { display: grid; grid-template-columns: 5em minmax(0, 1fr); gap: 12px; padding: 8px 0; min-width: 0; max-width: none; border: 0; white-space: normal; overflow-wrap: anywhere; }
  .activity-dialog td::before { content: attr(data-label); color: var(--muted); }
  .activity-dialog td[colspan] { display: block; }
}
@keyframes arrive { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: none; } }
@media (prefers-color-scheme: dark) {
  :root { color-scheme: dark; color: #f2f6ef; background: #071a15; --ink: #f2f6ef; --green: #9fe5c5; --on-accent: #092c22; --line: #385c4d; --muted: #b5cbbf; --glass: #15382dbd; --solid: #15382d; --field: #214c3cb8; --selected: #214c3c; --rim: #8da89150; --shadow: 0 18px 64px #07120f42; }
  body { background: radial-gradient(ellipse at 92% 2%, #286a50 0, transparent 53%), radial-gradient(ellipse at 3% 44%, #453e7650 0, transparent 48%), radial-gradient(ellipse at 30% 98%, #125044 0, transparent 62%), #071a15; background-attachment: fixed; }
}
@media (max-width: 1024px) {
  .sidebar { width: 190px; inset: 16px auto 16px 16px; padding: 20px 12px 16px; }
  main { margin-left: 222px; padding: 26px 20px 20px 0; }
  .workspace { grid-template-columns: 210px minmax(0, 1fr); }
  .grid { grid-template-columns: 1fr; }
  .chat-heading, .messages, .composer { padding-left: 18px; padding-right: 18px; }
}
@media (max-width: 760px) {
  .sidebar { position: static; width: auto; margin: 12px; padding: 16px; border-radius: 26px; }
  .brand small { display: inline; margin-left: 8px; }
  .sidebar nav { display: flex; overflow-x: auto; margin-top: 20px; gap: 5px; padding: 3px; }
  .sidebar nav button { min-height: 46px; padding: 10px 12px; gap: 8px; }
  .sidebar-bottom { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 10px; }
  .sidebar-bottom p { margin: 0 auto 0 0; padding: 0; }
  main { margin: 0; padding: 12px; }
  header { margin: 0 8px 20px; }
  .workspace { display: flex; flex-direction: column; height: auto; min-height: 600px; }
  .room-list { max-height: 210px; border-right: 0; border-bottom: 1px solid var(--line); flex-shrink: 0; }
  .list-heading { padding: 10px 12px 0; }
  .room { padding: 12px; }
  .chat { min-height: 560px; height: 70dvh; }
  .messages { padding: 18px 14px; }
  .composer { padding: 14px; }
  .composer-row label { max-width: calc(100% - 90px); }
  .message { max-width: 94%; }
  .grid { grid-template-columns: 1fr; }
  .card { padding: 24px; }
  th, td { padding: 14px; min-width: 100px; }
  .login { padding: 28px; margin: 6vh auto; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  button:active { transform: none; }
}
@supports not (backdrop-filter: blur(1px)) { .sidebar, .login { background: var(--solid); } }
[hidden] { display: none !important; }

@media(prefers-color-scheme:dark){button.danger{color:#ffb4b9}body{background:radial-gradient(ellipse at 90% 0%,#236f60 0,transparent 48%),radial-gradient(ellipse at 5% 95%,#123b38 0,transparent 58%),#071a15}}

.support-avatar-preview{width:72px;height:72px;object-fit:cover;border-radius:50%;margin:0 0 20px}
.server-resources{max-width:1000px}.server-resources .section-heading{margin-top:0}.server-resources dl{margin:24px 0}.resource-row{display:grid;grid-template-columns:160px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.resource-row dt{font-weight:600}.resource-row dd{margin:0;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-variant-numeric:tabular-nums}.resource-row dd strong{font-size:22px;min-width:80px}.resource-row progress{width:100%;height:6px;appearance:none;border:0;border-radius:4px;overflow:hidden;background:var(--selected)}.resource-row progress::-webkit-progress-bar{background:var(--selected)}.resource-row progress::-webkit-progress-value{background:var(--green)}.resource-row progress::-moz-progress-bar{background:var(--green)}.service-states{display:flex;flex-wrap:wrap;gap:20px 28px;margin:28px 0}.service-states>span{display:flex;align-items:center;gap:8px}.service-states small{color:var(--muted)}.service-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.service-dot.up{background:var(--green)}.service-dot.down{background:#b24737}@media(max-width:600px){.resource-row{grid-template-columns:1fr;gap:12px}.service-states{gap:16px}}
.people-picker{max-height:340px;overflow:auto;overscroll-behavior:contain}
.people-picker>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.people-picker span{flex:1;min-width:0;overflow-wrap:anywhere}.people-picker small{display:block;opacity:.65;margin-top:4px}
.people-picker label,.group-options label,.section-heading label{display:flex;align-items:center;gap:8px;margin:0}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent,#08765e);flex-shrink:0}
.section-heading,.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 16px}
.group-dialog{width:min(760px,calc(100vw - 32px));max-height:88dvh;overflow:auto;padding:28px}
.dialog-heading{margin-top:0}.dialog-heading h2{margin:0}.dialog-heading button{min-width:44px;font-size:24px}
.group-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.group-options label{justify-content:space-between;padding:12px 0}
.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.dialog-footer{margin-top:24px;display:flex;justify-content:flex-end}
.group-dialog section,.group-dialog form{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:20px}
@media(max-width:760px){.group-options{grid-template-columns:1fr}.people-picker>div{flex-wrap:wrap}.group-dialog{padding:20px}.people-picker .inline-actions{width:100%}}

/* The login has one focal animation; the form stays still and immediately usable. */
.login { position: relative; width: 100%; min-height: 100dvh; margin: 0; padding: clamp(24px, 6vw, 96px); display: grid; grid-template-columns: minmax(0,1.4fr) minmax(320px,.8fr); align-items: center; gap: 6vw; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; animation: none; }
.login-sea { position: absolute; inset: 0 auto 0 0; width: 78%; margin: 0; overflow: hidden; pointer-events: none; mask-image: linear-gradient(90deg, black 45%, transparent 100%); }
#login-wave { width: 100%; height: 100%; max-height: none; display: block; object-fit: cover; }
.login-panel { position: relative; grid-column: 2; max-width: 420px; width: 100%; padding: 30px; background: var(--glass); border-radius: 24px; backdrop-filter: blur(14px); }
.login-panel h1 { margin-top: 28px; }
.login[hidden] { display: none; }
@media(max-width: 760px) {
  .login { display: flex; align-items: end; justify-content: center; padding: 22px; }
  .login-sea { inset: 0 0 auto; width: 100%; height: 55dvh; mask-image: linear-gradient(black 60%,transparent); }
  .login-panel { margin-top: 30vh; padding: 24px; }
}

.invitation-stats{display:grid;grid-template-columns:minmax(7em,1fr) auto;gap:10px 24px;max-width:360px;margin:24px 0 0;font-variant-numeric:tabular-nums}.invitation-stats dd{margin:0;text-align:end;font-weight:600}

.sidebar nav{min-height:0;overflow:auto;align-content:start;flex:1;margin-top:28px}
.sidebar-bottom{flex:none}
.room{position:relative;gap:10px;padding-inline:10px}
.room-time{font-size:11px;color:var(--muted);align-self:flex-start;padding-top:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.room-last-message{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px}
.chat-person{min-width:0;flex:1;overflow-wrap:anywhere}
.chat-heading{display:flex;align-items:flex-start;gap:10px}
.chat-heading h2{padding-right:0}
.chat-heading #transfer{position:static;flex:none}
.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;min-width:44px;padding:10px;border:0;background:transparent;border-radius:13px;flex:none}
.icon-button svg{width:24px;height:24px;display:block}
.desk-back{display:none}
.desk-composer{padding:12px 16px max(12px,env(safe-area-inset-bottom));border:0;background:var(--glass)}
.desk-compose-row{display:flex;align-items:flex-end;gap:6px}
.desk-composer textarea{flex:1;min-width:0;min-height:46px;height:46px;max-height:130px;resize:none;background:var(--field);padding:10px 14px;line-height:24px}
#attachment-preview{display:flex;align-items:center;gap:12px;padding:0 8px 12px;overflow:hidden}
#attachment-preview img{width:68px;height:68px;object-fit:cover;border-radius:10px}
#attachment-preview span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.composer-emoji{flex:none;max-height:min(340px,40dvh);overflow:auto;overscroll-behavior:contain;background:var(--solid)}
.composer-emoji em-emoji-picker{width:100%;height:min(340px,40dvh);--border-radius:0;--font-family:inherit}
.message-translation:not(:empty){margin-top:10px;padding-top:8px;border-top:1px solid var(--line);white-space:pre-wrap;color:var(--ink);line-height:1.6}
.translation-retry{min-height:36px;padding:4px 0;border:0;background:transparent;font-size:12px;color:var(--muted)}
.translation-settings{width:min(420px,calc(100vw - 24px))}
.translation-settings .dialog-heading{margin-bottom:24px}
.translation-settings .dialog-heading button{padding:10px;border:0;background:transparent}
.translation-settings svg{width:22px;height:22px;display:block}
.desk-switch{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px}
.desk-switch input{width:22px;height:22px;accent-color:var(--green)}
.translation-config,.translation-usage{max-width:680px}
.translation-usage{margin-top:20px}
.translation-usage dl>div{display:flex;justify-content:space-between;gap:24px;padding:12px 0;border-bottom:1px solid var(--line)}
.translation-usage dd{margin:0;font-variant-numeric:tabular-nums}
@media(max-width:760px){
  .sidebar nav{margin-top:16px}
  .workspace{min-height:calc(100dvh - 310px);height:calc(100dvh - 310px)}
  .room-list{max-height:none;flex:1;min-height:0;border-bottom:0}
  .workspace>.chat{display:none;min-height:0;height:100%}
  .workspace.conversation-open{height:calc(100dvh - 100px);min-height:360px}
  .workspace.conversation-open>.room-list{display:none}
  .workspace.conversation-open>.chat{display:flex;flex:1}
  body:has(.conversation-open) .sidebar{display:none}
  .desk-back{display:inline-grid}
  .desk-composer{padding-inline:8px}
  .desk-compose-row{gap:2px}
  .desk-compose-row .icon-button{width:40px;min-width:40px}
  .chat-heading small{font-size:11px}
  .chat-heading{padding:12px 8px}
  #transfer{padding:8px;font-size:12px;min-width:44px}
}

/* One compact navigation drawer serves both administrator and employee on phones. */
.mobile-navigation{display:none}
header .page-heading{flex:1;min-width:0}
#navigation-scrim{position:fixed;inset:0;width:100%;height:100%;border:0;border-radius:0;background:#00160f66;backdrop-filter:blur(5px);z-index:39}
@media(max-width:760px){
  .mobile-navigation{display:inline-grid}
  body.navigation-open{overflow:hidden}
  .sidebar,body:has(.conversation-open) .sidebar{display:flex;position:fixed;inset:0 auto 0 0;margin:0;width:min(320px,88vw);height:100dvh;border-radius:0 24px 24px 0;padding:26px 18px max(22px,env(safe-area-inset-bottom));z-index:40;background:var(--solid);transform:translateX(-105%);visibility:hidden;transition:transform .24s cubic-bezier(.2,.8,.2,1),visibility .24s}
  body.navigation-open .sidebar{transform:translateX(0);visibility:visible}
  .sidebar .brand{padding-right:36px}
  .sidebar .brand small{display:block;margin:3px 0 0}
  #navigation-close{position:absolute;top:24px;right:10px}
  .sidebar nav{display:grid;grid-template-columns:1fr;overflow-y:auto;overflow-x:hidden;margin-top:26px;gap:5px;padding:0}
  .sidebar nav button{width:100%;min-height:46px;padding:11px 13px}
  .sidebar-bottom{padding-top:18px;display:flex}
  main{padding:12px}
  header{gap:10px;margin:0 0 14px}
  header h1{font-size:22px}
  .workspace,.workspace.conversation-open{height:calc(100dvh - 88px);min-height:360px}
}
