/* ClawCross design tokens and shared primitives (Studio and the message center).
   Pages map their own variables onto these; components below are the shared ones. */
:root {
  --ui-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI",
    "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;

  --ui-canvas: #f5f5f7;
  --ui-surface: #ffffff;
  --ui-surface-2: #f2f2f5;
  --ui-surface-3: #e8e8ed;
  --ui-hover: rgba(0, 0, 0, 0.04);
  --ui-press: rgba(0, 0, 0, 0.08);
  --ui-hairline: rgba(0, 0, 0, 0.08);
  --ui-hairline-strong: rgba(0, 0, 0, 0.14);

  --ui-text: #1d1d1f;
  --ui-text-2: #6e6e73;
  --ui-text-3: #a1a1a6;

  --ui-accent: #0071e3;
  --ui-accent-hover: #0077ed;
  --ui-accent-press: #0062c3;
  --ui-accent-tint: rgba(0, 113, 227, 0.1);
  --ui-accent-ring: rgba(0, 113, 227, 0.32);
  --ui-on-accent: #ffffff;
  --ui-bubble-self: #e3eefc;
  --ui-success: #34c759;
  --ui-danger: #e0352b;
  --ui-danger-tint: rgba(224, 53, 43, 0.08);

  --ui-radius-sm: 8px;
  --ui-radius: 12px;
  --ui-radius-lg: 16px;
  --ui-radius-xl: 22px;

  --ui-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.04), 0 0 0 0.5px rgba(0, 0, 0, 0.04);
  --ui-shadow-2: 0 4px 14px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
  --ui-shadow-pop: 0 18px 50px rgba(0, 0, 0, 0.14), 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 0 0.5px rgba(0, 0, 0, 0.08);

  --ui-material: rgba(255, 255, 255, 0.78);
  --ui-blur: saturate(180%) blur(20px);
  --ui-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ui-icon {
  width: 20px; height: 20px; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round;
}

:where(button, a, summary, select, input, textarea, [role="button"], [tabindex]):focus-visible {
  outline: 3px solid var(--ui-accent-ring);
  outline-offset: 1px;
}

* { scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, 0.2) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.18); border: 3px solid transparent; border-radius: 10px; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: rgba(0, 0, 0, 0.3); }

/* Popover menu: the ⋮ menu, the ＋ menus, Studio's ☰ menu. */
.ui-menu {
  box-sizing: border-box;
  min-width: 220px;
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 72px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: var(--ui-blur);
  backdrop-filter: var(--ui-blur);
  border: none;
  border-radius: 14px;
  box-shadow: var(--ui-shadow-pop);
  color: var(--ui-text);
  font-family: var(--ui-font);
}
.ui-menu-item {
  box-sizing: border-box;
  display: flex; align-items: center; gap: 12px;
  width: 100%; min-height: 40px;
  padding: 8px 12px;
  border: none; border-radius: 9px;
  background: transparent;
  color: var(--ui-text);
  font: inherit; font-size: 15px; font-weight: 400; line-height: 1.3;
  text-align: left; text-decoration: none;
  cursor: pointer;
  transition: background-color 0.12s;
  -webkit-tap-highlight-color: transparent;
}
.ui-menu-item:hover { background: var(--ui-hover); }
.ui-menu-item:active { background: var(--ui-press); }
.ui-menu-item > .ui-icon { color: var(--ui-text-2); }
.ui-menu-item.danger,
.ui-menu-item.danger > .ui-icon { color: var(--ui-danger); }
.ui-menu-item.static { cursor: default; }
.ui-menu-item.static:hover, .ui-menu-item.static:active { background: transparent; }
.ui-menu-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-menu-heading {
  padding: 10px 12px 4px;
  color: var(--ui-text-3);
  font-size: 12px; font-weight: 600; letter-spacing: 0.02em;
}
.ui-menu-sep { height: 0.5px; margin: 6px 12px; background: var(--ui-hairline-strong); }

/* Buttons */
.ui-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 40px; padding: 0 18px;
  border: none; border-radius: 999px;
  font: inherit; font-size: 15px; font-weight: 600;
  cursor: pointer;
  transition: background-color 0.15s, transform 0.12s var(--ui-ease);
}
.ui-btn:active { transform: scale(0.98); }
.ui-btn-primary { background: var(--ui-accent); color: var(--ui-on-accent); }
.ui-btn-primary:hover { background: var(--ui-accent-hover); }
.ui-btn-primary:active { background: var(--ui-accent-press); }
.ui-btn-tonal { background: var(--ui-surface-2); color: var(--ui-text); }
.ui-btn-tonal:hover { background: var(--ui-surface-3); }

.runtime-context-details,.completed-tool-details {max-width:100%;min-width:0;margin:6px 0;font-size:12px;line-height:1.5;border:1px solid currentColor;border-radius:10px;padding:8px 10px;}
.runtime-context-details > summary,.completed-tool-details > summary,.stream-tool-indicator > summary {cursor:pointer;overflow-wrap:anywhere;}
.runtime-context-details pre {white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;margin:10px 0 0;font:12px/1.6 var(--ui-font);}
.runtime-user-input {white-space:pre-wrap;overflow-wrap:anywhere;}
.stream-tool-indicator {max-width:100%;min-width:0;}
