/* ComputeMesh neutral theme contract shared by desktop NodeOS and Android. */
:root {
  color-scheme: light;
  --cm-bg: #f5f7fa; --cm-surface: #ffffff; --cm-surface-raised: #ffffff;
  --cm-card: #eef2f6; --cm-card-hover: #e2e8f0; --cm-border: #cbd5e1;
  --cm-border-strong: #94a3b8; --cm-text: #172033; --cm-muted: #526176;
  --cm-accent: #0f6f78; --cm-accent-hover: #0b5961; --cm-accent-soft: #d9eef0;
  --cm-on-accent: #ffffff; --cm-danger: #b42332; --cm-danger-soft: #fde8eb;
  --cm-shadow: 0 16px 40px rgba(15, 23, 42, .12);
}
:root.dark {
  color-scheme: dark;
  --cm-bg: #181a1c; --cm-surface: #202325; --cm-surface-raised: #272a2c;
  --cm-card: #272a2c; --cm-card-hover: #303537; --cm-border: #454b50;
  --cm-border-strong: #687078; --cm-text: #f0f1f2; --cm-muted: #b6bbbf;
  --cm-accent: #a9ccc2; --cm-accent-hover: #bfddd4; --cm-accent-soft: #263d38;
  --cm-on-accent: #17221e; --cm-danger: #e7a3a8; --cm-danger-soft: #3a2226;
  --cm-shadow: 0 16px 40px rgba(0, 0, 0, .32);
}

html, html body, body > div, body > #svelte, main, .chat-screen,
[data-slot="chat-container"], .messages-container, [class*="bg-background"] {
  background: var(--cm-bg) !important; background-color: var(--cm-bg) !important;
  background-image: none !important; color: var(--cm-text) !important;
}
[class*="bg-card"], [class*="bg-popover"], [data-slot="sidebar"],
[data-slot="dialog-content"], [data-slot="dialog-header"], [data-slot="dialog-footer"],
[data-slot="sheet-content"], [data-slot="sheet-header"], [data-slot="sheet-footer"],
[data-slot="popover-content"], [data-slot="dropdown-menu-content"],
[data-slot="dropdown-menu-sub-content"], [data-slot="command"] {
  background: var(--cm-surface) !important; background-color: var(--cm-surface) !important;
  background-image: none !important; border-color: var(--cm-border) !important;
  color: var(--cm-text) !important; box-shadow: var(--cm-shadow) !important;
}
[class*="text-muted-foreground"], [data-slot="dialog-description"],
[data-slot="alert-dialog-description"] { color: var(--cm-muted) !important; }
[class*="border-border"], hr { border-color: var(--cm-border) !important; }
input, textarea, select, [contenteditable="true"] {
  background: var(--cm-surface) !important; border: 1px solid var(--cm-border-strong) !important;
  color: var(--cm-text) !important; box-shadow: none !important;
}
input::placeholder, textarea::placeholder { color: var(--cm-muted) !important; opacity: .88; }
button:not(.bg-destructive):not([class*="destructive"]),
[role="button"]:not(.bg-destructive):not([class*="destructive"]) {
  background-image: none !important; border-color: var(--cm-border) !important; color: var(--cm-text) !important;
}
button:not(:disabled):hover, [role="button"]:not([aria-disabled="true"]):hover,
[role="menuitem"]:not([aria-disabled="true"]):hover { background-color: var(--cm-card-hover) !important; }
[data-slot="alert-dialog-action"], [data-slot="dialog-footer"] button:last-child,
[data-slot="sheet-footer"] button:last-child {
  background: var(--cm-accent) !important; border-color: var(--cm-accent) !important;
  color: var(--cm-on-accent) !important; box-shadow: none !important;
}
[data-slot="alert-dialog-action"].bg-destructive,
[data-slot="alert-dialog-action"][class*="destructive"], button.bg-destructive,
button[class*="destructive"] {
  background: var(--cm-danger) !important; border-color: var(--cm-danger) !important;
  color: #fff !important; box-shadow: none !important;
}
a { color: var(--cm-accent) !important; }
:focus-visible { outline: 3px solid var(--cm-accent) !important; outline-offset: 2px !important; }

#cm-agent-toggle {
  position: fixed; right: 16px; top: max(104px, calc(env(safe-area-inset-top, 0px) + 104px));
  z-index: 38; min-height: 44px; padding: 0 16px; border: 1px solid var(--cm-border-strong);
  border-radius: 999px; background: var(--cm-surface-raised); color: var(--cm-text);
  box-shadow: var(--cm-shadow); font-size: 14px; font-weight: 650; cursor: pointer;
}
#cm-agent-toggle[aria-expanded="true"] { background: var(--cm-accent); color: var(--cm-on-accent); }
#cm-agent-session-panel {
  position: fixed !important; right: 16px !important;
  top: max(160px, calc(env(safe-area-inset-top, 0px) + 160px)) !important;
  z-index: 39 !important; width: min(400px, calc(100vw - 32px)) !important;
  max-height: min(72vh, 680px) !important; box-sizing: border-box !important;
  padding: 18px !important; border: 1px solid var(--cm-border) !important;
  border-radius: 16px !important; background: var(--cm-surface-raised) !important;
  color: var(--cm-text) !important; box-shadow: var(--cm-shadow) !important;
  font-size: 14px !important; line-height: 1.45 !important;
}
#cm-agent-session-panel[hidden] { display: none !important; }
.cm-agent-header { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.cm-agent-heading { flex: 1; min-width: 0; }
.cm-agent-heading > div { display: block; font-size: 17px; line-height: 1.25; }
.cm-agent-heading p { margin: 5px 0 0; color: var(--cm-muted); font-size: 13px; }
.cm-agent-close { width: 40px; height: 40px; border-radius: 10px; font-size: 22px; cursor: pointer; }
#cm-agent-session-panel select, #cm-agent-session-panel textarea {
  display: block; width: 100%; min-height: 44px; background: var(--cm-surface) !important;
  border-color: var(--cm-border-strong) !important; color: var(--cm-text) !important; font-size: 14px !important;
}
#cm-agent-session-panel textarea { min-height: 88px !important; padding: 11px 12px !important; }
#cm-agent-session-panel button { min-height: 42px !important; font-size: 14px !important; border-radius: 10px !important; }
#cm-agent-session-panel button:first-of-type { background: var(--cm-accent) !important; color: var(--cm-on-accent) !important; }

@media (max-width: 640px) {
  #cm-agent-toggle { right: 12px; top: max(72px, calc(env(safe-area-inset-top, 0px) + 72px)); }
  #cm-agent-session-panel { inset: auto 8px 8px 8px !important; width: auto !important; max-height: 78dvh !important; border-radius: 18px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
