:root {
  --assistant-bg: #080d18;
  --assistant-surface: #111d35;
  --assistant-text: #edf2ff;
  --assistant-muted: #8b9dc3;
  --assistant-border: rgba(99, 130, 200, .28);
  --assistant-accent: #4f8ef7;
  --assistant-overlay: rgba(5, 9, 18, .58);
}

[data-theme='light'] {
  --assistant-bg: #f6f8fc;
  --assistant-surface: #fff;
  --assistant-text: #15213a;
  --assistant-muted: #596985;
  --assistant-border: rgba(35, 55, 90, .2);
  --assistant-accent: #316fd5;
  --assistant-overlay: rgba(21, 33, 58, .25);
}

#axian-assistant-root[hidden] { display: none; }
/* Layers: mobile nav 50, assistant backdrop 100, shell 110/launcher 120,
   critical modals 200, legacy chat 9990 (mutually exclusive), toasts 9999. */
.assistant-backdrop { position: fixed; inset: 0; z-index: 100; visibility: hidden; opacity: 0; background: var(--assistant-overlay); transition: opacity .2s ease, visibility .2s; }
.assistant-backdrop.is-open { visibility: visible; opacity: 1; }
.assistant-launcher {
  position: fixed; right: 24px; bottom: 24px; z-index: 120;
  width: 54px; height: 54px; border: 1px solid rgba(124, 176, 255, .55);
  border-radius: 50%; background: linear-gradient(135deg, var(--assistant-accent), #9e86ff);
  color: #fff; box-shadow: 0 12px 34px rgba(0, 0, 0, .42); cursor: pointer;
  font: 700 1.35rem var(--f-head, sans-serif);
}
.assistant-panel {
  position: fixed; inset: 0 0 0 auto; z-index: 110; display: flex;
  width: min(430px, 100vw); height: 100dvh; max-height: 100vh; flex-direction: column; color: var(--assistant-text);
  background: var(--assistant-bg); border-left: 1px solid var(--assistant-border);
  box-shadow: -16px 0 48px rgba(0, 0, 0, .38); transform: translateX(105%);
  visibility: hidden; transition: transform .2s ease, visibility .2s;
}
.assistant-panel.is-open { transform: translateX(0); visibility: visible; }
.assistant-header { display: flex; align-items: center; justify-content: space-between; padding: 18px; border-bottom: 1px solid var(--assistant-border); }
.assistant-header strong { display: block; font: 700 1rem var(--f-head, sans-serif); }
.assistant-status { display: block; margin-top: 3px; color: var(--assistant-muted); font-size: .72rem; }
.assistant-header-actions { display: flex; gap: 6px; }
.assistant-header-actions button { width: 34px; height: 34px; border: 0; border-radius: 8px; color: var(--assistant-muted); background: transparent; cursor: pointer; font-size: 1.2rem; }
.assistant-header-actions button:hover { background: var(--assistant-surface); color: var(--assistant-text); }
.assistant-messages { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.assistant-message { max-width: 88%; padding: 10px 12px; border-radius: 12px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.45; }
.assistant-message-user { align-self: flex-end; color: #fff; background: var(--assistant-accent); border-bottom-right-radius: 3px; }
.assistant-message-assistant, .assistant-message-system { align-self: flex-start; background: var(--assistant-surface); border: 1px solid var(--assistant-border); border-bottom-left-radius: 3px; }
.assistant-message-system { color: var(--assistant-muted); }
.assistant-composer { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 14px 16px max(14px, env(safe-area-inset-bottom)); border-top: 1px solid var(--assistant-border); background: var(--assistant-surface); }
.assistant-composer textarea { grid-column: 1; min-height: 42px; max-height: 120px; resize: none; padding: 10px 12px; color: var(--assistant-text); background: var(--assistant-bg); border: 1px solid var(--assistant-border); border-radius: 10px; font: inherit; }
.assistant-send { grid-column: 2; width: 42px; height: 42px; align-self: end; border: 0; border-radius: 10px; color: #fff; background: var(--assistant-accent); cursor: pointer; }
.assistant-retry, .assistant-cancel { grid-column: 1; justify-self: start; min-height: 44px; padding: 8px 12px; border: 1px solid var(--assistant-border); border-radius: 8px; color: var(--assistant-text); background: transparent; cursor: pointer; }
.assistant-cancel { color: var(--assistant-muted); }
.assistant-retry[hidden], .assistant-cancel[hidden] { display: none; }
.assistant-counter { grid-column: 1; min-height: 1em; color: var(--assistant-muted); text-align: right; font-size: .68rem; }
.assistant-composer textarea:disabled, .assistant-send:disabled { cursor: not-allowed; opacity: .55; }
.assistant-launcher:focus-visible, .assistant-header-actions button:focus-visible, .assistant-composer textarea:focus-visible, .assistant-send:focus-visible, .assistant-retry:focus-visible, .assistant-cancel:focus-visible { outline: 3px solid rgba(124, 176, 255, .65); outline-offset: 2px; }
.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; }

@media (max-width: 768px) {
  .assistant-panel { width: 100%; height: 100dvh; padding-top: env(safe-area-inset-top); }
  .assistant-launcher { right: 16px; bottom: calc(82px + env(safe-area-inset-bottom)); }
  .assistant-composer textarea { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .assistant-panel { transition: none; } }
