/* Alex Lab shared visual foundation. Tool-specific styles may keep their own accent. */
:root {
  --ink: #172033;
  --muted: #667085;
  --line: #e3eaf5;
  --paper: #f6f9fd;
  --surface: #ffffff;
  --accent: #2563eb;
  --accent-soft: #e8f0ff;
  --night: #1e3a8a;
  --warm: #f5efe6;
  --lab-ink: #202635;
  --lab-muted: #6c7484;
  --lab-line: #e5e8ef;
  --lab-paper: #fbfcfe;
  --lab-accent: #4257c8;
  --lab-accent-soft: #edf0ff;
  --lab-radius-sm: 12px;
  --lab-radius-md: 18px;
  --lab-shadow: 0 12px 30px rgba(32, 38, 53, 0.08);
}

html { text-rendering: optimizeLegibility; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", system-ui, sans-serif; font-size: 16px; }
a { color: inherit; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(66, 87, 200, 0.3);
  outline-offset: 2px;
}

.site-nav { padding: 1rem 0; border-bottom: 1px solid rgba(230, 232, 238, .75); border-color: rgba(37, 99, 235, .1); background: rgba(255, 255, 255, .9); backdrop-filter: blur(12px); }
.site-nav-inner { display: flex; align-items: center; max-width: 1120px; gap: 1.8rem; }
.brand { font-weight: 800; letter-spacing: -.05em; font-size: 1.1rem; text-decoration: none; white-space: nowrap; }
.brand-dot { color: var(--accent); }
.site-links { display: flex; gap: 1.35rem; margin-left: auto; }
.site-links a, .profile-link { color: #667085; font-size: .84rem; text-decoration: none; white-space: nowrap; }
.site-links a:hover, .profile-link:hover { color: var(--ink); }

footer { padding: 2.2rem 0 1.5rem; color: #96939a; font-size: .78rem; }
.footer-inner { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1.5rem; }

.feedback-entry {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1050;
}

.feedback-entry-button {
  min-height: 34px;
  padding: .35rem .7rem;
  border: 1px solid var(--lab-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  color: var(--lab-muted);
  font-size: .78rem;
  box-shadow: 0 4px 14px rgba(32, 38, 53, .08);
}

.feedback-entry-button:hover { border-color: #cbd2df; color: var(--lab-ink); }

@media (max-width: 768px) {
  .feedback-entry { right: 14px; bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
  .site-nav-inner { flex-wrap: wrap; gap: .8rem; }
  .site-links { order: 3; width: 100%; overflow: auto; margin-left: 0; gap: 1rem; }
  .footer-inner { display: block; }
  .footer-inner span { display: block; margin-top: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
