
/* Mobile navigation drawer */
#nav-toggle { display: none; align-items: center; justify-content: center;
  width: 38px; height: 38px; margin-right: 12px; flex: none;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px;
  color: var(--text-0); font-size: 17px; cursor: pointer; }
#nav-backdrop { display: none; }
@media (max-width: 860px) {
  #app { grid-template-columns: 1fr; }
  .sidebar { position: fixed; top: 0; left: 0; bottom: 0; width: 236px; max-width: 80vw;
    z-index: 60; transform: translateX(-100%); transition: transform .25s ease;
    box-shadow: 0 0 44px rgba(0,0,0,.55); }
  #app.nav-open .sidebar { transform: translateX(0); }
  #nav-backdrop { display: block; position: fixed; inset: 0; z-index: 55;
    background: rgba(0,0,0,.45); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
  #app.nav-open #nav-backdrop { opacity: 1; pointer-events: auto; }
  #nav-toggle { display: inline-flex; }
  .topbar { padding: 14px 16px; }
  .page-title { font-size: 18px; }
  .topbar-search input { width: 130px; }
}
.ai-sov-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  padding: 6px 12px;
  border-radius: 999px;
  color: var(--ok, #16a34a);
  background: color-mix(in srgb, var(--ok, #16a34a) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--ok, #16a34a) 40%, transparent);
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--ok, #16a34a) 50%, transparent);
  animation: ai-sov-pulse 2.6s ease-in-out infinite;
  text-decoration: none;
  cursor: pointer;
  transition: transform .12s ease;
}
.ai-sov-badge:hover { transform: translateY(-1px); text-decoration: none; }
.ai-sov-badge:focus-visible { outline: 2px solid var(--ok, #16a34a); outline-offset: 2px; }
@keyframes ai-sov-pulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--ok, #16a34a) 45%, transparent); }
  50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--ok, #16a34a) 0%, transparent); }
}
@media (prefers-reduced-motion: reduce) { .ai-sov-badge { animation: none; } }

.ai-chart-card { width: 100%; }
.ai-chart-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.ai-chart-title { font-weight: 700; font-size: 13px; }
.ai-chart-badge {
  font-size: 11px; font-weight: 600; white-space: nowrap;
  color: var(--brand, #4f7cff);
  background: color-mix(in srgb, var(--brand, #4f7cff) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--brand, #4f7cff) 40%, transparent);
  padding: 3px 9px; border-radius: 999px;
}
.ai-chart-foot { margin-top: 8px; font-size: 12px; opacity: 0.75; }
.ai-chart-syncing {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; padding: 18px 4px;
  color: var(--brand, #4f7cff);
}
.ai-chart-syncing::before {
  content: ""; width: 14px; height: 14px; border-radius: 50%;
  border: 2px solid currentColor; border-top-color: transparent;
  animation: ai-spin 0.7s linear infinite;
}
@keyframes ai-spin { to { transform: rotate(360deg); } }

