* {
  box-sizing:border-box
}
[hidden] {
  display:none!important
}
:root {
  --body-font:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:Consolas,"SFMono-Regular",monospace;
  --radius:12px;
  --transition:160ms ease;
  --success:#9fe3bf;
  --success-bg:#163c32;
  --warning:#f4d196;
  --warning-bg:#423921;
  --error:#ffb4b4;
  --error-bg:#4b252b;
  --control-border:#8fa1aa;
  --input-bg:var(--liha-blue-on-gold);
  --sidebar-bg:var(--liha-blue-deep);
  --sidebar-text:var(--liha-neutral-text)
}
[data-liha-theme=light] {
  --success:#205c3f;
  --success-bg:#e2f1e7;
  --warning:#705010;
  --warning-bg:#faf0d3;
  --error:#9d2937;
  --error-bg:#fce5e8;
  --control-border:#8a989e;
  --input-bg:#fff;
  --liha-surface:#fffaf0
}
html {
  font-family:var(--body-font);
  font-size:16px;
  color-scheme:dark;
  scroll-behavior:smooth
}
[data-liha-theme=light] {
  color-scheme:light
}
body {
  margin:0;
  background:var(--liha-background);
  color:var(--liha-text);
  line-height:1.5
}
button,input,textarea,select {
  font:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button,a {
  touch-action:manipulation
}
button {
  cursor:pointer
}
button:disabled {
  opacity:.5;
  cursor:not-allowed
}
a {
  color:inherit
}
h1,h2,h3,p {
  margin:0
}
h1 {
  font-size:2rem;
  line-height:1.2;
  letter-spacing:-.025em;
  font-weight:700;
  text-wrap:balance
}
h2 {
  font-size:1.15rem;
  line-height:1.4
}
h3 {
  font-size:1rem;
  line-height:1.4
}
p {
  overflow-wrap:anywhere
}
code {
  font-family:var(--mono);
  font-size:.85rem;
  overflow-wrap:anywhere
}
svg.icon {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
.icon-definitions {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.muted,.hint {
  color:var(--liha-text-secondary)
}
.small,.hint {
  font-size:.84rem
}
.hint {
  margin-top:6px;
  line-height:1.6
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.73rem;
  font-weight:700;
  color:var(--liha-accent-text);
  margin-bottom:10px
}
.mono {
  font-family:var(--mono);
  font-size:.83rem;
  overflow-wrap:anywhere
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  transform:translateY(-150%);
  z-index:99;
  background:var(--liha-accent);
  color:var(--liha-text-on-accent);
  padding:12px
}
.skip-link:focus {
  transform:none
}
:focus-visible {
  outline:3px solid var(--liha-focus);
  outline-offset:3px
}
main:focus {
  outline:none
}
.app-shell {
  display:grid;
  grid-template-columns:244px minmax(0,1fr);
  min-height:100dvh
}
.sidebar {
  position:sticky;
  top:0;
  height:100dvh;
  background:var(--sidebar-bg);
  color:var(--sidebar-text);
  padding:30px 18px 20px;
  display:flex;
  flex-direction:column
}
.brand {
  text-decoration:none;
  display:flex;
  flex-direction:column;
  margin:0 16px 42px
}
.brand strong {
  font-size:2rem;
  line-height:1.2;
  letter-spacing:.15em;
  color:var(--liha-gold-primary)
}
.brand span {
  font-size:.84rem;
  letter-spacing:.08em;
  margin-top:6px
}
.sidebar-label {
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#c2d0d8;
  margin:0 16px 12px
}
.navigation {
  display:flex;
  flex-direction:column;
  gap:6px
}
.navigation a {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  padding:12px;
  border-radius:8px;
  color:#e1e9ed;
  text-decoration:none;
  font-size:.91rem;
  transition:background var(--transition),color var(--transition)
}
.navigation a:hover {
  background:var(--liha-blue-primary)
}
.navigation a[aria-current=page] {
  background:var(--liha-gold-primary);
  color:var(--liha-blue-on-gold);
  font-weight:600
}
.navigation span {
  flex:1
}
.navigation b {
  font-size:.75rem;
  font-weight:600;
  background:rgb(255 255 255 / 10%);
  padding:1px 6px;
  border-radius:4px
}
.navigation a[aria-current=page] b {
  background:rgb(21 52 75 / 10%)
}
.sidebar-foot {
  margin-top:auto;
  padding:24px 14px 0;
  border-top:1px solid rgb(238 208 151 / 22%);
  font-size:.8rem
}
.sidebar-foot span {
  display:block;
  font-size:.75rem;
  color:#c2d0d8;
  margin-top:3px
}
.sidebar-foot button {
  margin-top:14px;
  color:var(--sidebar-text)
}
.workspace {
  min-width:0
}
.topbar {
  min-height:82px;
  border-bottom:1px solid var(--liha-line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px 32px;
  background:var(--liha-background)
}
.connection-info,.topbar-actions {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap
}
.topbar-actions {
  gap:8px
}
main {
  max-width:1450px;
  padding:36px 32px 56px;
  margin:0 auto
}
.page-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:28px
}
.page-heading .muted {
  font-size:.95rem;
  max-width:720px;
  margin-top:12px
}
.page-heading>.button {
  margin-top:22px;
  flex-shrink:0
}
.button,.icon-button,.text-button {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:7px;
  border:1px solid transparent;
  text-decoration:none;
  font-weight:600;
  transition:background var(--transition),opacity var(--transition),border-color var(--transition)
}
.button {
  padding:10px 16px;
  font-size:.9rem
}
.icon-button {
  width:44px;
  padding:9px;
  background:transparent;
  color:var(--liha-text);
  border-color:var(--liha-line)
}
.icon-button:hover,.quiet:hover {
  background:var(--liha-surface-raised)
}
.primary {
  background:var(--liha-accent);
  color:var(--liha-text-on-accent)
}
.primary:hover {
  opacity:.87
}
.secondary {
  background:var(--liha-surface-raised);
  border-color:var(--control-border);
  color:var(--liha-text)
}
.quiet {
  background:transparent;
  color:var(--liha-text);
  border-color:transparent
}
.danger-outline {
  background:transparent;
  color:var(--error);
  border-color:var(--error)
}
.danger-outline:hover {
  background:var(--error-bg)
}
.text-button {
  background:transparent;
  color:var(--liha-accent-text);
  padding:4px 8px;
  font-size:.84rem
}
.text-button:hover {
  text-decoration:underline
}
.button:active,.icon-button:active {
  opacity:.75
}
.status {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:5px;
  padding:4px 8px;
  font-size:.76rem;
  line-height:1.5;
  font-weight:600;
  white-space:normal
}
.status.good {
  background:var(--success-bg);
  color:var(--success)
}
.status.warning {
  background:var(--warning-bg);
  color:var(--warning)
}
.status.bad {
  background:var(--error-bg);
  color:var(--error)
}
.status.neutral {
  background:var(--liha-surface-raised);
  color:var(--liha-text)
}
.panel,.list-panel {
  background:var(--liha-surface);
  border:1px solid var(--liha-line);
  border-radius:var(--radius);
  overflow:hidden
}
.setup-panel {
  margin-bottom:24px
}
summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:88px;
  padding:22px 24px
}
summary::-webkit-details-marker {
  display:none
}
summary:after {
  content:"＋";
  font-size:1.3rem;
  margin-left:auto
}
details[open]>summary:after {
  content:"−"
}
summary>.status {
  margin-left:auto
}
summary .muted {
  margin-top:4px
}
.panel-content {
  padding:24px;
  border-top:1px solid var(--liha-line)
}
.form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px
}
.span-two {
  grid-column:1/-1
}
.field {
  min-width:0
}
.field label,.login-form label {
  display:block;
  font-size:.87rem;
  font-weight:600;
  margin-bottom:8px
}
.field input,.field textarea,.field select,.login-form input,.send-form textarea,.dialog-body input,.dialog-body select,.dialog-body textarea {
  width:100%;
  border:1px solid var(--control-border);
  border-radius:6px;
  background:var(--input-bg);
  color:var(--liha-text);
  padding:11px 12px;
  min-height:46px;
  outline-offset:3px
}
.field textarea,.dialog-body textarea {
  resize:vertical;
  line-height:1.6
}
.field input::placeholder,.field textarea::placeholder,.send-form textarea::placeholder {
  color:var(--liha-text-secondary);
  opacity:.8
}
.secret-field {
  display:flex;
  align-items:stretch
}
.secret-field input {
  border-radius:6px 0 0 6px;
  min-width:0
}
.secret-field button {
  min-height:46px;
  min-width:62px;
  border:1px solid var(--control-border);
  border-left:0;
  border-radius:0 6px 6px 0;
  background:var(--liha-surface-raised);
  color:var(--liha-text);
  font-size:.8rem
}
.field-actions,.form-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap
}
.form-footer {
  margin-top:24px;
  border-top:1px solid var(--liha-line);
  padding-top:20px
}
.form-footer .hint {
  margin:0
}
.field-error {
  color:var(--error);
  font-size:.85rem;
  margin-top:10px;
  min-height:0
}
.field-error:empty {
  display:none
}
.webhook-guide {
  border-top:1px solid var(--liha-line);
  padding:24px
}
.step-title {
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:18px 0 12px
}
.step-title:first-child {
  margin-top:0
}
.step-number {
  border:1px solid var(--control-border);
  border-radius:50%;
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  font-size:.8rem;
  color:var(--liha-accent-text)
}
.step-title .hint {
  margin-top:2px
}
.copy-row {
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 12px;
  background:var(--input-bg);
  border:1px solid var(--liha-line);
  border-radius:6px
}
.copy-row code {
  flex:1;
  min-width:0
}
.copy-row .icon-button {
  border:0;
  flex-shrink:0
}
.button-row {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:20px
}
.notice {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 18px;
  border-left:3px solid var(--liha-accent);
  background:var(--liha-surface);
  margin-bottom:24px;
  font-size:.9rem
}
.notice .icon {
  margin-top:2px;
  color:var(--liha-accent-text)
}
.entity-row {
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding:22px 24px;
  border-bottom:1px solid var(--liha-line)
}
.entity-row:last-child {
  border-bottom:0
}
.entity-mark {
  width:42px;
  height:42px;
  border-radius:8px;
  background:var(--input-bg);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  color:var(--liha-accent-text)
}
.entity-main {
  min-width:0;
  flex:1
}
.entity-title {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px
}
.entity-main .muted,.entity-main .mono {
  margin-top:4px
}
.entity-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  max-width:50%
}
.entity-actions .button {
  font-size:.8rem;
  padding:8px 11px
}
.entity-meta {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
  font-size:.82rem
}
.entity-error {
  color:var(--error);
  font-size:.83rem;
  margin-top:8px
}
.switch {
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:44px;
  cursor:pointer;
  font-size:.84rem;
  font-weight:600
}
.switch input {
  appearance:none;
  width:38px;
  height:22px;
  border:1px solid var(--control-border);
  border-radius:12px;
  background:var(--input-bg);
  position:relative;
  cursor:pointer;
  flex-shrink:0;
  margin:0
}
.switch input:after {
  content:"";
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--liha-text-secondary);
  position:absolute;
  top:3px;
  left:3px;
  transition:transform var(--transition)
}
.switch input:checked {
  background:var(--liha-accent);
  border-color:var(--liha-accent)
}
.switch input:checked:after {
  background:var(--liha-text-on-accent);
  transform:translateX(16px)
}
.switch input:disabled {
  opacity:.5;
  cursor:not-allowed
}
.empty-state {
  padding:52px 24px;
  text-align:center
}
.empty-state>.icon {
  width:32px;
  height:32px;
  color:var(--liha-accent-text);
  margin-bottom:14px
}
.empty-state h3 {
  margin-bottom:8px
}
.empty-state p {
  max-width:440px;
  margin:0 auto;
  color:var(--liha-text-secondary);
  font-size:.9rem
}
.empty-state .button {
  margin-top:22px
}
.empty-state.compact {
  padding:34px 18px
}
.subtabs {
  display:flex;
  gap:6px;
  border-bottom:1px solid var(--liha-line);
  margin-bottom:26px
}
.subtabs button {
  border:0;
  border-bottom:3px solid transparent;
  background:transparent;
  color:var(--liha-text-secondary);
  min-height:52px;
  padding:10px 18px;
  font-size:.9rem;
  font-weight:600
}
.subtabs button[aria-selected=true] {
  border-bottom-color:var(--liha-accent);
  color:var(--liha-text)
}
.subtabs span {
  margin-left:6px;
  font-size:.75rem;
  background:var(--liha-surface-raised);
  border-radius:4px;
  padding:2px 5px
}
.card-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px
}
.bot-card {
  background:var(--liha-surface);
  border:1px solid var(--liha-line);
  border-radius:var(--radius);
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:18px
}
.bot-card-header {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start
}
.bot-card p.preview {
  font-size:.9rem;
  line-height:1.6;
  color:var(--liha-text-secondary);
  white-space:pre-wrap;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden
}
.bot-card .entity-actions {
  max-width:none;
  justify-content:flex-start;
  margin-top:auto
}
.bot-details {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  font-size:.8rem;
  color:var(--liha-text-secondary)
}
.inbox-toolbar {
  display:flex;
  gap:16px;
  margin-bottom:20px
}
.inbox-toolbar .field {
  width:240px
}
.inbox-toolbar .search-field {
  flex:1;
  max-width:420px
}
.inbox-layout {
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  min-height:590px
}
.conversation-list {
  max-height:700px;
  overflow-y:auto;
  border-right:1px solid var(--liha-line)
}
.conversation-item {
  display:block;
  width:100%;
  text-align:left;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--liha-line);
  color:var(--liha-text);
  padding:18px;
  cursor:pointer
}
.conversation-item:hover {
  background:var(--liha-surface-raised)
}
.conversation-item[aria-current=true] {
  background:var(--input-bg);
  box-shadow:inset 3px 0 var(--liha-accent)
}
.conversation-item strong {
  font-size:.91rem
}
.conversation-item .small {
  display:block;
  margin-top:4px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.conversation-item time {
  font-size:.74rem;
  color:var(--liha-text-secondary)
}
.conversation-item-top {
  display:flex;
  justify-content:space-between;
  gap:8px
}
.chat-pane {
  display:flex;
  flex-direction:column;
  min-width:0
}
.chat-header {
  padding:20px 24px;
  min-height:88px;
  border-bottom:1px solid var(--liha-line);
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  flex-wrap:wrap
}
.chat-header .hint {
  margin-top:3px
}
.chat-messages {
  flex:1;
  min-height:320px;
  max-height:550px;
  overflow-y:auto;
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:16px
}
.chat-messages>.empty-state {
  margin:auto
}
.message {
  max-width:84%;
  align-self:flex-start
}
.message.outgoing {
  align-self:flex-end
}
.message-label {
  font-size:.75rem;
  color:var(--liha-text-secondary);
  margin-bottom:5px
}
.message-body {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  background:var(--input-bg);
  padding:12px 15px;
  border-radius:10px 10px 10px 2px;
  font-size:.93rem
}
.message.outgoing .message-body {
  background:var(--liha-surface-raised);
  border:1px solid var(--liha-line);
  border-radius:10px 10px 2px 10px
}
.message-footer {
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:5px;
  font-size:.73rem;
  color:var(--liha-text-secondary)
}
.send-form {
  padding:18px 24px;
  border-top:1px solid var(--liha-line)
}
.send-form textarea {
  resize:vertical;
  line-height:1.5;
  min-height:80px
}
.send-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:12px
}
.send-footer .button {
  margin-left:auto;
  flex-shrink:0
}
.metrics {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-bottom:24px
}
.metrics>div {
  background:var(--liha-surface);
  padding:20px 24px;
  border:1px solid var(--liha-line);
  border-radius:10px
}
.metrics span {
  font-size:.84rem;
  color:var(--liha-text-secondary)
}
.metrics strong {
  display:block;
  font-size:1.8rem;
  line-height:1.4;
  font-variant-numeric:tabular-nums
}
.log-row {
  display:grid;
  grid-template-columns:138px 94px minmax(0,1fr);
  gap:16px;
  padding:16px 22px;
  border-bottom:1px solid var(--liha-line);
  font-size:.86rem;
  align-items:start
}
.log-row:last-child {
  border:0
}
.log-row time {
  font-size:.79rem;
  color:var(--liha-text-secondary)
}
.log-row .status {
  justify-self:start
}
.log-row p {
  white-space:pre-wrap;
  line-height:1.6
}
.editor-dialog {
  width:min(680px,calc(100% - 32px));
  max-height:calc(100dvh - 48px);
  padding:0;
  border:1px solid var(--liha-line);
  border-radius:14px;
  background:var(--liha-surface);
  color:var(--liha-text);
  overflow:auto
}
.editor-dialog::backdrop {
  background:rgb(5 19 30 / 75%)
}
.dialog-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:24px;
  border-bottom:1px solid var(--liha-line)
}
.dialog-heading h2 {
  font-size:1.35rem
}
.dialog-heading .hint {
  max-width:500px
}
.dialog-heading .icon-button {
  font-size:1.5rem;
  flex-shrink:0
}
.dialog-body {
  padding:24px
}
.dialog-body .field {
  margin-bottom:20px
}
.dialog-body .field:last-child {
  margin-bottom:0
}
.dialog-footer {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding:18px 24px;
  border-top:1px solid var(--liha-line)
}
.dialog-body>.field-error {
  margin-top:16px
}
.dialog-choices {
  display:flex;
  flex-direction:column;
  gap:10px
}
.scan-page {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-bottom:1px solid var(--liha-line);
  padding:14px 0
}
.scan-page:last-child {
  border:0
}
.test-note {
  background:var(--input-bg);
  padding:14px 16px;
  margin-bottom:20px;
  border-radius:7px;
  font-size:.86rem
}
.test-reply {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  background:var(--input-bg);
  padding:18px;
  border-radius:8px;
  margin-top:20px;
  line-height:1.7
}
.test-meta {
  font-size:.78rem;
  color:var(--liha-text-secondary);
  margin-top:8px
}
.toast {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  max-width:min(540px,calc(100% - 32px));
  background:var(--liha-text);
  color:var(--liha-background);
  padding:14px 20px;
  border-radius:9px;
  font-size:.9rem;
  z-index:100;
  box-shadow:0 6px 24px rgb(0 0 0 / 15%)
}
.toast.error {
  background:var(--error-bg);
  color:var(--error);
  border:1px solid var(--error)
}
.login-screen {
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:34px;
  padding:32px 20px
}
.login-brand {
  display:flex;
  align-items:center;
  gap:18px
}
.login-brand strong {
  font-size:2rem;
  letter-spacing:.15em;
  color:var(--liha-accent-text)
}
.login-brand span {
  font-size:.74rem;
  letter-spacing:.1em;
  color:var(--liha-text-secondary);
  padding-left:18px;
  border-left:1px solid var(--liha-line)
}
.login-form {
  width:min(440px,100%);
  padding:36px;
  background:var(--liha-surface);
  border:1px solid var(--liha-line);
  border-radius:14px
}
.login-form>.muted {
  margin:16px 0 28px;
  font-size:.9rem
}
.login-form>.button {
  width:100%;
  margin-top:24px
}
.login-foot {
  font-size:.8rem;
  color:var(--liha-text-secondary)
}
@media(min-width:1600px) {
  main {
    padding:44px 48px
  }
  .topbar {
    padding-inline:48px
  }
}
@media(max-width:1100px) {
  .app-shell {
    grid-template-columns:218px minmax(0,1fr)
  }
  .sidebar {
    padding-inline:12px
  }
  .topbar {
    padding:16px 24px
  }
  main {
    padding:30px 24px 48px
  }
  .entity-row {
    flex-wrap:wrap
  }
  .entity-actions {
    max-width:none;
    width:100%;
    justify-content:flex-start;
    margin-left:60px
  }
  .card-grid {
    grid-template-columns:1fr
  }
  .bot-card .entity-actions {
    margin-left:0
  }
  .inbox-layout {
    grid-template-columns:250px minmax(0,1fr)
  }
  .last-update {
    display:none
  }
  .topbar .small {
    display:none
  }
}
@media(max-width:800px) {
  .app-shell {
    display:block
  }
  .sidebar {
    position:static;
    height:auto;
    padding:18px 16px 0;
    gap:16px
  }
  .brand {
    margin:0;
    flex-direction:row;
    align-items:center;
    gap:14px
  }
  .brand strong {
    font-size:1.6rem
  }
  .brand span {
    margin:0;
    font-size:.8rem
  }
  .sidebar-label,.sidebar-foot {
    display:none
  }
  .navigation {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:4px
  }
  .navigation a {
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    gap:5px;
    text-align:center;
    padding:10px 3px 12px;
    min-height:76px;
    border-radius:8px 8px 0 0;
    font-size:.73rem;
    line-height:1.25
  }
  .navigation .icon {
    width:21px;
    height:21px
  }
  .navigation b {
    display:none
  }
  .navigation span {
    flex:0
  }
  .topbar {
    min-height:70px;
    padding:12px 18px
  }
  .topbar-actions .button {
    font-size:.81rem;
    padding:8px 10px
  }
  .topbar-actions .icon-button {
    width:40px
  }
  .topbar-actions {
    gap:4px
  }
  .connection-info {
    gap:4px
  }
  .status {
    font-size:.73rem
  }
  main {
    padding:28px 18px 44px
  }
  .page-heading {
    gap:16px;
    flex-wrap:wrap;
    margin-bottom:24px
  }
  .page-heading>.button {
    margin-top:0
  }
  .page-heading h1 {
    font-size:1.75rem
  }
  .page-heading .muted {
    font-size:.9rem
  }
  .form-grid {
    gap:18px
  }
  .entity-row {
    padding:20px
  }
  .inbox-layout {
    grid-template-columns:1fr
  }
  .conversation-list {
    border-right:0;
    border-bottom:1px solid var(--liha-line);
    max-height:240px
  }
  .chat-messages {
    max-height:430px;
    min-height:290px
  }
  .log-row {
    grid-template-columns:120px 80px minmax(0,1fr);
    gap:12px;
    padding:16px
  }
  .sidebar .navigation a:hover {
    background:var(--liha-blue-primary)
  }
  .sidebar .navigation a[aria-current=page] {
    background:var(--liha-gold-primary)
  }
  .metrics>div {
    padding:16px
  }
}
@media(max-width:520px) {
  .form-grid {
    grid-template-columns:1fr
  }
  .span-two {
    grid-column:auto
  }
  .panel-content,.webhook-guide {
    padding:20px
  }
  summary {
    padding:20px;
    gap:8px;
    flex-wrap:wrap
  }
  summary .status {
    margin-left:0
  }
  summary:after {
    margin-left:auto
  }
  .entity-actions {
    margin-left:0
  }
  .entity-row .entity-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    max-width:none;
    justify-content:stretch
  }
  .entity-row .entity-actions .switch {
    grid-column:1/-1;
    min-height:44px;
    justify-self:start
  }
  .entity-row .entity-actions .button {
    min-width:0;
    min-height:44px
  }
  .entity-row {
    gap:12px
  }
  .entity-mark {
    width:36px;
    height:36px
  }
  .entity-actions .button {
    flex:1
  }
  .form-footer {
    align-items:stretch
  }
  .form-footer>.button {
    width:100%
  }
  .button-row>.button {
    flex:1
  }
  .subtabs button {
    padding:10px 12px;
    font-size:.87rem
  }
  .inbox-toolbar {
    flex-direction:column;
    gap:12px
  }
  .inbox-toolbar .field,.inbox-toolbar .search-field {
    width:100%;
    max-width:none
  }
  .chat-header,.chat-messages,.send-form {
    padding:18px
  }
  .message {
    max-width:92%
  }
  .send-footer {
    flex-wrap:wrap
  }
  .metrics {
    gap:8px
  }
  .metrics>div {
    padding:14px 10px
  }
  .metrics span {
    font-size:.76rem
  }
  .metrics strong {
    font-size:1.5rem
  }
  .log-row {
    grid-template-columns:1fr auto;
    gap:8px
  }
  .log-row p {
    grid-column:1/-1
  }
  .dialog-heading,.dialog-body {
    padding:20px
  }
  .dialog-footer {
    padding:16px 20px
  }
  .topbar {
    gap:8px
  }
  .topbar .status {
    max-width:122px
  }
  .topbar-actions .button {
    gap:5px
  }
  .topbar-actions .button .icon {
    width:16px
  }
  .login-form {
    padding:28px 24px
  }
  .scan-page {
    gap:10px
  }
  .field-actions .hint {
    width:100%
  }
  .sidebar {
    padding-inline:12px
  }
  .navigation span {
    overflow-wrap:anywhere
  }
  .toast {
    bottom:calc(16px + env(safe-area-inset-bottom))
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}
@media(max-height:600px) and (min-width:801px) {
  .sidebar {
    height:auto;
    min-height:100dvh;
    position:static
  }
  .sidebar-foot {
    padding-top:16px
  }
  .brand {
    margin-bottom:24px
  }
}
.mobile-only {
  display:none
}
[data-liha-theme=light] {
  --control-border:#71838a
}
@media(max-width:800px) {
  .sidebar {
    position:relative
  }
  .mobile-only {
    display:inline-flex;
    position:absolute;
    right:16px;
    top:15px;
    color:var(--sidebar-text)
  }
  .navigation a {
    font-size:.78rem
  }
  .topbar-actions .icon-button {
    width:44px
  }
  .topbar .status {
    max-width:102px
  }
}
.icon-button[aria-busy=true] .icon {
  animation:busy-turn 1s linear infinite
}
@keyframes busy-turn {
  to {
    transform:rotate(360deg)
  }
}
@media(prefers-reduced-motion:reduce) {
  .icon-button[aria-busy=true] .icon {
    animation:none
  }
}

/* Administration workspace: LIHA brand primitives remain in brand.css. */
:root {
  --radius:12px;
  --chart-receive:var(--liha-gold-primary);
  --chart-send:#8bd5bb;
  --chart-grid:rgb(196 213 224 / 18%);
  --panel-shadow:0 2px 5px rgb(8 29 43 / 3%);
  --liha-text-secondary:#c8d5dd;
  --liha-surface:#19394d;
  --liha-surface-raised:#254a61;
  --control-border:#7f97a7;
}
[data-liha-theme=light] {
  --liha-background:var(--liha-neutral-paper);
  --liha-surface:#fff;
  --liha-surface-raised:#f3f5f5;
  --liha-text-secondary:var(--liha-neutral-light-body);
  --liha-line:#dbe1e3;
  --control-border:#80929d;
  --chart-receive:var(--liha-blue-primary);
  --chart-send:#297660;
  --chart-grid:#e5eaed;
}
h1 {font-size:1.8rem;letter-spacing:-.035em}
h2 {font-size:1.02rem;letter-spacing:-.015em}
.eyebrow {font-size:.69rem;letter-spacing:.11em;margin-bottom:7px;color:var(--liha-text-secondary)}
.app-shell {grid-template-columns:232px minmax(0,1fr)}
.sidebar {padding:28px 14px 20px;background:var(--liha-blue-deep)}
.sidebar-brand {display:flex;align-items:flex-start;justify-content:space-between;margin:0 16px 28px}
.brand {margin:0;gap:0}
.brand strong {font-size:2.1rem;letter-spacing:.085em;color:var(--liha-neutral-text)}
.brand-dot {color:var(--liha-gold-primary)}
.brand span {font-size:.8rem;letter-spacing:.025em;color:#c8d6df;margin-top:6px}
.brand strong .brand-dot {font-size:inherit;letter-spacing:inherit;margin:0}
.navigation {gap:4px}
.navigation .sidebar-label {margin:4px 14px 8px;font-size:.64rem;letter-spacing:.1em;color:#b2c4cf}
.navigation .secondary-label {margin-top:24px}
.navigation a {font-size:.86rem;min-height:46px;padding:11px 14px;border-radius:6px;position:relative;color:#dbe5eb}
.navigation a .icon {width:19px;height:19px;color:#b6c9d4}
.navigation a:hover {background:rgb(255 255 255 / 7%)}
.navigation a[aria-current=page] {background:rgb(238 208 151 / 12%);color:var(--liha-gold-primary);font-weight:600}
.navigation a[aria-current=page]::before {content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:3px;background:var(--liha-gold-primary)}
.navigation a[aria-current=page] .icon {color:var(--liha-gold-primary)}
.sidebar :focus-visible {outline-color:var(--liha-gold-primary)}
.navigation a[aria-current=page] b {background:rgb(238 208 151 / 12%)}
.navigation b {font-size:.7rem;padding:1px 6px;color:inherit;font-variant-numeric:tabular-nums}
.sidebar-foot {display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;margin-top:auto;padding:22px 10px 0;border-color:rgb(225 234 239 / 14%)}
.workspace-avatar {background:rgb(238 208 151 / 14%);color:var(--liha-gold-primary);height:34px;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.sidebar-foot p {font-size:.78rem;font-weight:600}
.sidebar-foot span {font-size:.7rem;color:#bdd0dc}
.sidebar-foot button {grid-column:1/-1;font-size:.78rem;justify-content:flex-start;margin-top:5px;padding:0;min-height:44px;color:#c7d6df}
.drawer-close,.menu-toggle {display:none}
.topbar {min-height:72px;padding:12px 28px;background:var(--liha-surface);gap:16px}
.topbar-context {display:flex;align-items:center;gap:12px;font-size:.84rem;min-width:0}
.topbar-brand,.breadcrumb-separator {color:var(--liha-text-secondary);font-size:.8rem}
.breadcrumb-separator {opacity:.55}
.topbar-context strong {white-space:nowrap;font-size:.84rem}
.connection-info {gap:6px;flex-direction:column;align-items:flex-end;flex-wrap:nowrap;margin-right:8px}
.connection-status {display:inline-flex;align-items:center;gap:6px;font-size:.73rem;line-height:1.25;color:var(--liha-text-secondary);white-space:nowrap}
.connection-status::before {content:"";width:6px;height:6px;border-radius:50%;background:var(--control-border)}
.connection-status.online::before {background:var(--success)}
.connection-status.offline {color:var(--error)}
.connection-status.offline::before {background:var(--error)}
#last-update {font-size:.65rem}
.topbar-actions {flex-wrap:nowrap;gap:6px}
.topbar .icon-button {border-color:transparent;width:44px}
.topbar .danger-outline {margin-left:6px;font-size:.77rem;padding:8px 10px;border-color:var(--liha-line)}
.topbar .danger-outline:disabled {opacity:.6;color:var(--liha-text-secondary)}
main {padding:30px 28px 44px;max-width:1530px}
.page-heading {margin-bottom:24px;align-items:center;gap:24px}
.page-heading .muted {font-size:.88rem;margin-top:8px;max-width:650px;line-height:1.6}
.page-heading>.button {margin-top:0}
.primary {border-color:transparent;box-shadow:none}
.button {font-size:.85rem;padding:10px 14px}
.secondary {background:var(--liha-surface);border-color:var(--liha-line)}
.secondary:hover {border-color:var(--control-border);background:var(--liha-surface-raised)}
.quiet:hover {background:var(--liha-surface-raised)}
.destructive {color:var(--error)}
.panel,.list-panel,.bot-card {box-shadow:var(--panel-shadow)}
.list-panel {overflow:visible}
.notice {border:1px solid var(--liha-line);border-left:3px solid var(--liha-gold-primary);border-radius:8px;font-size:.85rem;padding:14px 16px;margin-bottom:20px}
.notice a {font-weight:600;text-underline-offset:3px}
.entity-row {display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;padding:24px;gap:16px}
.entity-mark {background:var(--liha-surface-raised);color:var(--liha-accent-text);height:42px;width:42px}
.entity-title {gap:8px}
.entity-title h3 {font-size:.96rem}
.entity-title .status {font-size:.68rem;padding:3px 7px}
.entity-main>.small {margin-top:6px;font-size:.79rem}
.entity-actions {width:auto;max-width:none;margin-left:0;justify-content:flex-end;flex-wrap:nowrap;gap:6px}
.entity-actions .button {font-size:.79rem;padding:8px 12px;white-space:nowrap}
.entity-meta {font-size:.78rem;gap:8px 16px;margin-top:8px}
.entity-menu {position:relative;flex-shrink:0}
.entity-menu>summary {padding:0;width:44px;min-height:44px;border:0;color:var(--liha-text-secondary);font-size:1.5rem;list-style:none;display:flex;justify-content:center;border-radius:6px}
.entity-menu>summary::after {content:none}
.entity-menu>summary:hover {background:var(--liha-surface-raised)}
.entity-menu-content {position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:220px;padding:6px;border:1px solid var(--liha-line);border-radius:9px;background:var(--liha-surface);box-shadow:0 10px 25px rgb(6 25 39 / 15%);display:flex;flex-direction:column;gap:2px}
.entity-menu-content .button {justify-content:flex-start;border-radius:5px;min-height:44px;white-space:nowrap}
.page-entity {grid-template-columns:42px minmax(0,1fr)}
.page-entity>.entity-actions {grid-column:2/-1;justify-content:flex-start;padding-top:12px;margin-top:2px;border-top:1px solid var(--liha-line)}
.page-entity .switch {margin-right:auto}
.auto-control {margin-right:auto;flex-shrink:0}
.auto-control .switch {margin-right:0}
.auto-control .hint {font-size:.75rem;margin-top:-2px;font-weight:400}
.switch {font-size:.78rem}
.subtabs {margin-bottom:22px;gap:14px}
.subtabs button {font-size:.86rem;padding:10px 2px;min-height:48px;border-bottom-width:2px}
.subtabs button[aria-selected=true] {border-bottom-color:var(--liha-accent-text)}
.card-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.bot-card {padding:22px;gap:14px;overflow:visible}
.bot-card-header {align-items:center}
.bot-identity {display:flex;gap:12px;align-items:center;min-width:0}
.bot-identity h2 {font-size:1.08rem}
.bot-identity .eyebrow {font-size:.64rem;margin-bottom:3px}
.bot-card-header .status {font-size:.68rem;flex-shrink:0}
.bot-model {padding:8px 10px;background:var(--liha-surface-raised);border-radius:6px;font-size:.76rem}
.bot-card p.preview {font-size:.83rem;-webkit-line-clamp:3;min-height:65px;line-height:1.6}
.bot-details {font-size:.74rem;gap:12px}
.bot-footer {border-top:1px solid var(--liha-line);padding-top:14px;margin-top:auto}
.bot-footer>.hint {font-size:.75rem;margin:0 0 8px}
.bot-card .entity-actions {justify-content:flex-start;flex-wrap:nowrap}
.bot-card .entity-menu {margin-left:auto}
.setup-panel {max-width:1120px}
.setup-panel>summary {min-height:84px}
.form-footer .hint {max-width:680px;font-size:.78rem}
.webhook-guide {background:var(--liha-surface)}
.inbox-layout {min-height:550px;grid-template-columns:290px minmax(0,1fr)}
.inbox-toolbar .field label {font-size:.78rem}
.chat-header h2 {font-size:1rem}
.metrics {gap:12px;margin-bottom:20px}
.metrics>div {padding:16px 20px}
.metrics span {font-size:.8rem}
.metrics strong {font-size:1.6rem}
.log-row {grid-template-columns:140px 90px minmax(0,1fr);font-size:.82rem}
.empty-state {padding:48px 24px}
.empty-state .text-button {margin-top:14px}
.empty-state.compact {padding:32px 20px}
.empty-state.compact h3 {font-size:.9rem}
.empty-state.compact p {font-size:.82rem;max-width:350px}
.dashboard-filters {display:flex;gap:12px;flex-shrink:0;align-self:flex-end}
.dashboard-filters .field {width:174px}
.dashboard-filters .field:first-child {width:190px}
.dashboard-filters label {font-size:.73rem;margin-bottom:6px}
.dashboard-filters select {font-size:.78rem;padding:10px 30px 10px 10px;min-height:44px;border-color:var(--liha-line)}
.dashboard-loading {padding:28px 0;color:var(--liha-text-secondary);font-size:.9rem}
.data-warning {background:var(--warning-bg);color:var(--warning);border:1px solid currentColor;padding:12px 16px;border-radius:8px;font-size:.85rem;margin-bottom:20px}
.kpi-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}
.kpi-card {background:var(--liha-surface);border:1px solid var(--liha-line);border-radius:10px;padding:20px;box-shadow:var(--panel-shadow);min-width:0}
.kpi-label {display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.76rem;font-weight:600;color:var(--liha-text-secondary)}
.kpi-label .icon {width:18px;height:18px;color:var(--liha-accent-text);opacity:.8}
.kpi-card>strong {display:block;font-size:2rem;line-height:1.25;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin:16px 0 9px}
.kpi-card>p {font-size:.72rem;line-height:1.5;color:var(--liha-text-secondary)}
.kpi-card.attention>strong {color:var(--error)}
.overview-grid {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);gap:20px;margin-bottom:22px;align-items:start}
.section-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px}
.section-heading .hint {font-size:.74rem;margin-top:4px}
.section-heading .text-button {font-size:.76rem;padding:4px 0;flex-shrink:0}
.activity-panel .section-heading {align-items:flex-start}
.chart-legend {display:flex;gap:12px;flex-shrink:0;padding-top:3px;font-size:.71rem;color:var(--liha-text-secondary)}
.chart-legend>span {display:flex;gap:5px;align-items:center}
.legend-dot {display:block;width:8px;height:8px;border-radius:50%;background:var(--chart-receive)}
.legend-dot.send {background:var(--chart-send)}
.message-chart {position:relative;padding:8px 20px 10px}
.message-chart>svg {width:100%;height:auto;display:block;min-height:172px}
.chart-line {fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.chart-line.receive {stroke:var(--chart-receive)}
.chart-line.send {stroke:var(--chart-send);stroke-dasharray:5 5}
.chart-point.receive {fill:var(--chart-receive)}
.chart-point.send {fill:var(--chart-send)}
.chart-grid {stroke:var(--chart-grid);stroke-width:1}
.chart-tick {fill:var(--liha-text-secondary);font:11px var(--body-font)}
.chart-empty-note {position:absolute;inset:36px 24px 50px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center;pointer-events:none}
.chart-empty-note strong {font-size:.89rem;line-height:1.4;background:var(--liha-surface);padding:0 6px}
.chart-empty-note span {color:var(--liha-text-secondary);font-size:.74rem;max-width:290px;background:var(--liha-surface);padding:0 6px}
.chart-data {border-top:1px solid var(--liha-line)}
.chart-data>summary {min-height:44px;padding:11px 22px;font-size:.74rem;color:var(--liha-text-secondary);justify-content:flex-start}
.chart-data>summary::after {content:"⌄";font-size:1rem}
.chart-data[open]>summary::after {content:"⌃"}
.readiness-panel>.section-heading {padding-bottom:10px}
.readiness-row {display:flex;gap:10px;align-items:flex-start;padding:10px 22px}
.readiness-icon {height:24px;width:24px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;margin-top:1px}
.readiness-icon .icon {height:13px;width:13px;stroke-width:2.4}
.readiness-icon.ready {background:var(--success-bg);color:var(--success)}
.readiness-icon.waiting {background:var(--liha-surface-raised);color:var(--liha-text-secondary)}
.readiness-row strong {display:block;font-size:.76rem;line-height:1.5}
.readiness-row p {font-size:.72rem;color:var(--liha-text-secondary);margin-top:2px;line-height:1.5}
.readiness-foot {padding:2px 22px 16px}
.readiness-foot .text-button {padding-inline:0;min-height:38px;font-size:.76rem}
.readiness-foot .hint {font-size:.7rem;margin:0;line-height:1.55}
.inventory-summary {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--liha-line);background:var(--liha-surface-raised);padding:16px 10px;gap:4px}
.inventory-label {grid-column:1/-1;text-align:center;font-size:.64rem;color:var(--liha-text-secondary);margin-bottom:8px}
.inventory-summary a {display:flex;flex-direction:column;align-items:center;text-decoration:none;min-height:44px;gap:4px;border-radius:5px}
.inventory-summary a:hover {background:var(--liha-surface)}
.inventory-summary strong {font-size:1.12rem;font-variant-numeric:tabular-nums}
.inventory-summary span {font-size:.64rem;color:var(--liha-text-secondary)}
.monitoring-panel {margin-bottom:22px}
.table-scroll {position:relative;overflow-x:auto;min-width:0;max-width:100%;overscroll-behavior-x:contain}
table {border-collapse:collapse;width:100%;font-size:.77rem}
th {font-weight:600;text-align:left;color:var(--liha-text-secondary)}
.monitoring-table thead,.data-table thead {background:var(--liha-surface-raised)}
.monitoring-table th,.monitoring-table td {padding:14px 20px;border-top:1px solid var(--liha-line);vertical-align:middle}
.monitoring-table th {font-size:.7rem;padding-block:11px;white-space:nowrap}
.monitoring-table td:first-child {min-width:190px}
.monitoring-table td:first-child>strong {display:block;font-size:.81rem}
.monitoring-table td:nth-child(4) {max-width:280px;min-width:200px}
.monitoring-table td:nth-child(4) .setup-needed {font-size:.75rem;color:var(--warning);font-weight:600}
.monitoring-table small {display:block;font-size:.68rem;color:var(--liha-text-secondary);margin-top:4px;line-height:1.5}
.monitoring-table .numeric {text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.monitoring-table .status {font-size:.68rem;white-space:nowrap}
.monitoring-table .text-button {font-size:.74rem;padding:4px 0;white-space:nowrap}
.monitoring-table tbody tr:hover {background:var(--liha-surface-raised)}
.monitoring-table th:last-child,.monitoring-table td:last-child {padding-left:10px}
.data-table th,.data-table td {padding:9px 18px;border-top:1px solid var(--liha-line);font-size:.74rem;font-variant-numeric:tabular-nums}
.overview-bottom {display:grid;grid-template-columns:1fr 1fr;gap:20px}
.overview-bottom .section-heading {border-bottom:1px solid var(--liha-line)}
.recent-conversation {display:flex;width:100%;gap:12px;align-items:center;background:transparent;border:0;border-bottom:1px solid var(--liha-line);text-align:left;color:var(--liha-text);padding:16px 20px;min-height:80px}
.recent-conversation:last-child {border-bottom:0}
.recent-conversation:hover {background:var(--liha-surface-raised)}
.conversation-avatar {display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;background:var(--liha-surface-raised);border:1px solid var(--liha-line);border-radius:50%;font-size:.8rem}
.recent-conversation-main {display:flex;flex-direction:column;min-width:0;flex:1;gap:3px}
.recent-conversation-main strong {font-size:.79rem}
.recent-conversation-main>span {font-size:.76rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--liha-text-secondary)}
.recent-conversation-main small {font-size:.66rem;color:var(--liha-text-secondary)}
.recent-conversation time {font-size:.65rem;color:var(--liha-text-secondary);max-width:88px}
.activity-item {display:flex;gap:12px;padding:16px 22px;border-bottom:1px solid var(--liha-line)}
.activity-item:last-child {border-bottom:0}
.activity-dot {margin-top:6px;height:6px;width:6px;background:var(--liha-text-secondary);border-radius:50%;flex-shrink:0}
.activity-dot.error {background:var(--error)}
.activity-dot.warning {background:var(--warning)}
.activity-item p {font-size:.77rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.activity-item time {font-size:.68rem;color:var(--liha-text-secondary);display:block;margin-top:4px}
.dashboard-caption {font-size:.71rem;line-height:1.6;color:var(--liha-text-secondary);margin-top:18px}
.nav-backdrop {position:fixed;inset:0;z-index:45;border:0;background:rgb(5 23 35 / 65%);padding:0;cursor:default}
@media(min-width:1600px) {main {padding:34px 36px 48px}.topbar {padding-inline:36px}}
@media(max-width:1250px) {
  .topbar-brand,.breadcrumb-separator {display:none}
  .dashboard-filters {gap:8px}.dashboard-filters .field,.dashboard-filters .field:first-child {width:160px}
  .overview-grid {grid-template-columns:minmax(0,1.35fr) minmax(286px,1fr)}
  .kpi-card {padding:18px 16px}.kpi-label {font-size:.71rem;gap:6px}
  .activity-panel .section-heading {flex-wrap:wrap;gap:10px}.chart-legend {padding-top:0}
  .monitoring-table th,.monitoring-table td {padding-inline:16px}
}
@media(max-width:1100px) {
  .app-shell {grid-template-columns:216px minmax(0,1fr)}
  .sidebar {padding-inline:10px}
  main {padding:26px 22px 40px}.topbar {padding-inline:22px}
  .topbar .small {display:block}
  .page-heading {align-items:flex-start;flex-wrap:wrap;gap:18px}
  .dashboard-filters {align-self:auto}
  .overview-grid {grid-template-columns:1fr}
  .readiness-panel {display:grid;grid-template-columns:1fr 1.3fr}
  .readiness-panel>.section-heading {grid-column:1;grid-row:1;align-items:flex-start}
  #integration-readiness {grid-column:2;grid-row:1/3;padding:10px 0}
  .inventory-summary {grid-column:1;grid-row:2;border-top:0;border-radius:0 0 0 12px;background:transparent;align-self:end}
  .kpi-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .kpi-card>strong {font-size:1.8rem;margin:12px 0 7px}
  .entity-row {grid-template-columns:42px minmax(0,1fr);align-items:start}
  .entity-row>.entity-actions {grid-column:2/-1;width:auto;justify-content:flex-start;margin-left:0}
  .card-grid {grid-template-columns:1fr}
  .bot-card .entity-actions {width:auto}
  .overview-bottom {gap:18px}
  .inbox-layout {grid-template-columns:240px minmax(0,1fr)}
}
@media(max-width:800px) {
  .app-shell {display:block}
  .sidebar {position:fixed;top:0;left:0;bottom:0;height:100dvh;width:264px;padding:24px 14px 20px;z-index:50;transform:translateX(-100%);transition:transform 180ms ease;overflow-y:auto;gap:0}
  .nav-open .sidebar {transform:translateX(0)}
  .sidebar-brand {margin:0 12px 28px;align-items:center}
  .brand {flex-direction:column;gap:0;align-items:flex-start}
  .brand strong {font-size:2rem}.brand span {font-size:.8rem;margin-top:5px}
  .navigation {display:flex;flex-direction:column;gap:4px}
  .navigation a {display:flex;flex-direction:row;text-align:left;align-items:center;justify-content:flex-start;padding:11px 14px;min-height:46px;font-size:.86rem;gap:12px;border-radius:6px}
  .navigation span {flex:1;overflow-wrap:normal}.navigation b {display:block}
  .navigation .icon {height:19px;width:19px}
  .navigation .sidebar-label {display:block;margin:4px 14px 8px}
  .navigation .secondary-label {margin-top:24px}
  .sidebar .navigation a:hover {background:rgb(255 255 255 / 7%)}
  .sidebar .navigation a[aria-current=page] {background:rgb(238 208 151 / 12%)}
  .sidebar-foot {display:grid;margin-top:auto;padding-top:20px}
  .drawer-close {display:inline-flex;color:#dbe5eb;border-color:transparent}
  .menu-toggle {display:inline-flex;flex-shrink:0}
  .topbar {position:sticky;top:0;z-index:20;min-height:68px;padding:10px 16px;gap:10px}
  .topbar-context {gap:6px}
  .topbar-context strong {font-size:.82rem}
  .connection-info {display:none}
  .topbar .icon-button {height:44px;width:44px}
  .topbar-actions {gap:2px}
  .topbar .danger-outline {min-width:44px;height:44px;padding:8px;font-size:0;gap:0;margin-left:2px}
  .topbar .danger-outline .icon {height:18px;width:18px}
  main {padding:24px 18px 40px}
  .page-heading h1 {font-size:1.65rem}
  .page-heading .muted {font-size:.84rem;margin-top:8px}
  .page-heading>.button {margin-top:0}
  .kpi-grid {gap:12px}.kpi-label {font-size:.74rem}
  .overview-grid {gap:18px}
  .inbox-layout {grid-template-columns:1fr;min-height:500px}
  .conversation-list {max-height:235px}
  .overview-bottom {grid-template-columns:1fr}
  .entity-row {padding:20px}
  .bot-card {padding:20px}
  .section-heading {padding:18px 20px}
  .monitoring-table {min-width:850px}
  .monitoring-panel .table-scroll {padding-bottom:4px}
  .log-row {grid-template-columns:124px 80px minmax(0,1fr);padding:16px}
  .dashboard-caption {font-size:.7rem}
}
@media(max-width:520px) {
  .topbar {padding:8px 10px;gap:6px}
  .topbar-context {gap:2px}.topbar-context strong {font-size:.78rem}
  .topbar-actions {gap:0}.topbar .icon-button {width:44px}
  main {padding:22px 16px 36px}
  .page-heading {margin-bottom:22px;gap:16px}
  .page-heading .muted {max-width:100%}
  .dashboard-filters {width:100%;gap:10px}
  .dashboard-filters .field,.dashboard-filters .field:first-child {width:auto;flex:1;min-width:0}
  .dashboard-filters select {font-size:.74rem;padding-left:10px;padding-right:18px}
  .kpi-grid {gap:10px;margin-bottom:18px}
  .kpi-card {padding:16px 14px}
  .kpi-label {align-items:flex-start;font-size:.7rem;gap:6px;line-height:1.5}
  .kpi-label .icon {height:16px;width:16px;margin-top:2px}
  .kpi-card>strong {font-size:1.8rem;margin:12px 0 8px}
  .kpi-card>p {font-size:.68rem;line-height:1.55}
  .overview-grid {display:block;margin-bottom:18px}.activity-panel {margin-bottom:18px}
  .readiness-panel {display:block}
  #integration-readiness {padding:0}
  .readiness-panel>.section-heading {padding-bottom:10px}
  .readiness-row {padding:10px 20px}
  .readiness-foot {padding:4px 20px 16px}
  .inventory-summary {background:var(--liha-surface-raised);border-top:1px solid var(--liha-line);border-radius:0;grid-column:auto}
  .section-heading {padding:18px 18px;gap:12px;flex-wrap:wrap;align-items:flex-start}
  .section-heading .text-button {min-height:44px;padding:0;font-size:.74rem}
  .section-heading .hint {font-size:.71rem}
  .activity-panel .section-heading {gap:10px}
  .message-chart {padding:8px 12px 8px}
  .message-chart>svg {min-height:168px}
  .chart-empty-note {inset:32px 20px 46px}
  .chart-empty-note strong {font-size:.81rem}.chart-empty-note span {font-size:.69rem;max-width:240px}
  .chart-data>summary {padding:12px 18px}
  .chart-legend {font-size:.7rem}
  .overview-bottom {gap:18px}.monitoring-panel {margin-bottom:18px}
  .entity-row {padding:20px 18px;grid-template-columns:36px minmax(0,1fr);gap:12px}
  .entity-mark {width:36px;height:36px}
  .entity-row .entity-actions {display:flex;grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap;gap:6px;margin-left:0;max-width:none;width:auto}
  .entity-row .entity-actions .button {flex:none;min-width:0;font-size:.76rem;white-space:normal}
  .entity-row .entity-menu {margin-left:auto}
  .entity-row .entity-menu-content .button {white-space:nowrap}
  .page-entity>.entity-actions {display:flex;grid-column:1/-1;gap:6px}
  .page-entity .switch {width:100%;margin-right:0;grid-column:auto;font-size:.76rem}
  .page-entity .auto-control {width:100%;margin-right:0;margin-bottom:6px}
  .page-entity .entity-actions>.button {flex:1}
  .entity-title {gap:6px}.entity-title .status {font-size:.66rem}
  .entity-meta {font-size:.76rem;gap:5px 12px}
  .entity-menu-content {min-width:210px}
  .bot-card {padding:18px;gap:12px}
  .bot-card-header {gap:8px;align-items:flex-start}
  .bot-identity {gap:10px}.bot-identity h2 {font-size:1rem}
  .bot-card-header .status {max-width:100px;line-height:1.4;font-size:.65rem;text-align:center}
  .bot-card .entity-actions {gap:4px}
  .bot-card .entity-actions .button {font-size:.75rem;padding:8px 10px;flex:none}
  .bot-details {font-size:.72rem;gap:5px 12px}
  .bot-footer>.hint {font-size:.73rem}
  .panel-content,.webhook-guide {padding:20px 18px}
  .setup-panel>summary {padding:20px 18px;gap:10px}.setup-panel>summary>.status {margin-left:0}
  .form-footer {gap:12px}.form-footer>.button {width:100%}
  .button-row>.button {flex:1;min-width:130px}
  .copy-row {padding:6px 10px}.copy-row code {font-size:.75rem}
  .metrics {gap:8px}.metrics>div {padding:14px 10px}.metrics span {font-size:.7rem}
  .log-row {grid-template-columns:1fr auto;gap:8px}
  .log-row>div {grid-column:1/-1}
  .recent-conversation {padding:14px 18px}
  .activity-item {padding:15px 18px}
  .empty-state.compact {padding:30px 18px}
}
@media(prefers-reduced-motion:reduce) {.sidebar {transition:none}}

/* Operational copy must remain readable on a small laptop and phone. */
.sidebar {overflow-y:auto;overscroll-behavior:contain;color-scheme:dark;scrollbar-width:thin}
.sidebar .brand,.sidebar .navigation,.sidebar .sidebar-foot {flex-shrink:0}
.navigation .sidebar-label,.eyebrow,.dashboard-filters label {font-size:.75rem}
.connection-status,.kpi-label,.chart-legend,.chart-data>summary,.dashboard-caption {font-size:.75rem}
.entity-title .status,.bot-card-header .status,.monitoring-table .status {font-size:.75rem}
.bot-identity .eyebrow,.bot-details,.bot-footer>.hint,.inventory-summary span,.inventory-label {font-size:.75rem}
.kpi-card>p,.section-heading .hint,.readiness-row p,.readiness-foot .hint {font-size:.78rem}
.readiness-row strong {font-size:.81rem}
.monitoring-table th,.monitoring-table small,.monitoring-table td:nth-child(4) .setup-needed {font-size:.75rem}
.chart-empty-note strong {font-size:.88rem}.chart-empty-note span {font-size:.77rem}
.recent-conversation-main small,.recent-conversation time,.activity-item time {font-size:.75rem}
.activity-item p {font-size:.81rem}
.section-heading .text-button,.readiness-foot .text-button {font-size:.78rem}
.monitoring-mobile-list {display:none}
.monitoring-mobile-row {padding:18px;border-top:1px solid var(--liha-line)}
.monitoring-mobile-title {display:flex;align-items:center;justify-content:space-between;gap:12px}
.monitoring-mobile-title h3 {font-size:1rem}
.monitoring-mobile-row .hint {font-size:.8rem}
.monitoring-bot {font-size:.85rem;margin-top:12px}
.monitoring-connection {font-size:.8rem;margin-top:8px;color:var(--warning);line-height:1.65}
.monitoring-connection.ready {color:var(--success)}
.monitoring-mobile-footer {display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;font-size:.8rem}
.monitoring-mobile-footer .text-button {font-size:.8rem}
@media(max-width:600px) {
  .monitoring-table {display:none}
  .monitoring-mobile-list {display:block}
}
@media(max-width:520px) {
  .kpi-card>p,.section-heading .hint,.readiness-row p,.readiness-foot .hint {font-size:.78rem}
  .kpi-label,.chart-legend,.entity-title .status,.bot-card-header .status,.bot-details,.bot-footer>.hint {font-size:.75rem}
  .chart-empty-note strong {font-size:.86rem}.chart-empty-note span {font-size:.76rem}
  .dashboard-caption {font-size:.75rem}
}

/* A phone shows either the conversation list or its message detail. */
.inbox-back-row {display:none}
#inbox-back .icon {transform:rotate(180deg)}
@media(max-width:800px) {
  #view-inbox .inbox-layout {display:block;min-height:0}
  #view-inbox .conversation-list {max-height:none;overflow:visible;border:0}
  #view-inbox .chat-pane {display:none}
  #view-inbox.inbox-detail {height:calc(100dvh - 132px);min-height:360px;display:flex;flex-direction:column;gap:12px}
  #view-inbox.inbox-detail>.page-heading,#view-inbox.inbox-detail>.inbox-toolbar {display:none}
  #view-inbox.inbox-detail>.inbox-back-row {display:flex;flex-shrink:0;min-height:44px}
  #inbox-back {justify-content:flex-start;padding:8px 0;font-size:.85rem}
  #view-inbox.inbox-detail .inbox-layout {display:flex;flex:1;min-height:0}
  #view-inbox.inbox-detail .conversation-list {display:none}
  #view-inbox.inbox-detail .chat-pane {display:flex;flex:1;min-height:0}
  #view-inbox.inbox-detail .chat-header {flex-shrink:0;padding:14px 18px;min-height:78px;gap:6px}
  #view-inbox.inbox-detail .chat-header .hint {font-size:.75rem}
  #view-inbox.inbox-detail .chat-messages {min-height:0;max-height:none;flex:1;padding:16px 18px;overscroll-behavior:contain}
  #view-inbox.inbox-detail .send-form {flex-shrink:0;padding:14px 18px}
  #view-inbox.inbox-detail .send-form textarea {min-height:62px;max-height:130px;font-size:.9rem}
  #view-inbox.inbox-detail .send-footer {margin-top:10px}
  #view-inbox.inbox-detail .send-footer .button {min-height:44px}
}
@media(max-width:520px) {
  #view-inbox.inbox-detail {height:calc(100dvh - 126px)}
}
@media(max-width:800px) and (max-height:520px) {
  #view-inbox.inbox-detail {height:auto;min-height:0}
  #view-inbox.inbox-detail .chat-messages {flex:none;min-height:180px;max-height:260px}
}
