/*
 * ModelCheck public visual system.
 *
 * This file is intentionally limited to shared presentation primitives.
 * Page content, business data, permissions, forms and API behavior remain
 * owned by their existing templates and views.
 */
:root {
  --paper: #ffffff;
  --surface: #ffffff;
  --surface-soft: #f8fbff;
  --surface-raised: #ffffff;
  --ink: #173d72;
  --ink-strong: #0b2346;
  --muted: #5a708d;
  --line: #dbe6f2;
  --accent: #1264db;
  --accent-dark: #0844b7;
  --green: #128466;
  --amber: #9a5709;
  --red: #b53535;
  --shadow: 0 12px 34px rgba(27, 76, 137, 0.08);
  --shadow-strong: 0 18px 50px rgba(27, 76, 137, 0.14);
  --radius: 14px;
  --focus-ring: 0 0 0 3px rgba(18, 100, 219, 0.2);
  --public-header-shadow: 0 12px 34px rgba(28, 85, 157, 0.14);
}

.public-site {
  background: var(--paper);
  color: var(--ink-strong);
}

.public-site .site-header {
  border-bottom-color: transparent;
  background: transparent;
  box-shadow: none;
}

.public-site .site-header,
.public-site .site-header .header-inner {
  color: var(--ink-strong);
}

.public-site .brand-mark {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 6px 14px rgba(18, 100, 219, 0.2);
}

.public-site .hero {
  border-bottom-color: var(--line);
  background: #fff;
}

.public-site :is(
  .hero h1,
  .page-head h1,
  .section-heading h2,
  .prose h2,
  .detail-grid h2,
  .form-section h2
) {
  color: var(--ink-strong);
}

.public-site :is(.hero-lead, .page-head p:last-child) {
  color: var(--muted);
}

.public-site .section-tint {
  border-color: var(--line);
  background: var(--surface-soft);
}

.public-site :is(
  .checker-panel,
  .ranking-table-wrap,
  .station-card,
  .directory-card,
  .metric-card,
  .profile-aside,
  .auth-card,
  .entry-card,
  .owner-station,
  .config-status,
  .method-card,
  .report-card
) {
  border-color: var(--line);
  background: var(--surface-raised);
  box-shadow: var(--shadow);
}

.public-site :is(
  .checker-panel:focus-within,
  .ranking-table-wrap:focus-within,
  .auth-card:focus-within
) {
  box-shadow: var(--shadow-strong);
}

.public-site .button {
  border-color: #8db6ff;
  color: var(--accent);
  transition:
    transform 0.16s ease,
    border-color 0.16s ease,
    background-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease;
}

.public-site .button:hover {
  border-color: var(--accent);
  box-shadow: 0 6px 14px rgba(18, 100, 219, 0.1);
}

.public-site .button.primary {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
  box-shadow: 0 7px 16px rgba(18, 100, 219, 0.16);
}

.public-site .button.primary:hover {
  background: var(--accent-dark);
}

.public-site .button.ghost {
  border-color: var(--line);
  background: rgba(255, 255, 255, 0.56);
  color: var(--accent);
}

.public-site .button.ghost:hover {
  background: #edf5ff;
}

.public-site :is(input, select, textarea) {
  border-color: #c7d9f2;
  background: #fff;
  color: var(--ink-strong);
}

.public-site :is(input, select, textarea):focus {
  border-color: var(--accent);
  box-shadow: var(--focus-ring);
}

.public-site .page-head {
  border-bottom-color: var(--line);
  background: #fff;
}

.public-site .ranking-table-wrap {
  overflow: auto;
}

.public-site .ranking-table th {
  background: var(--surface-soft);
  color: var(--muted);
}

.public-site .ranking-table td {
  border-top-color: var(--line);
}

.public-site .ranking-table tbody tr:hover {
  background: #f7fbff;
}

.public-site :is(.station-card:hover, .directory-card:hover) {
  border-color: #8db6ff;
  box-shadow: var(--shadow-strong);
}

.public-site .station-monogram {
  background: #e6f1ff;
  color: var(--accent-dark);
}

.public-site .family-label {
  border-color: #bcd2f8;
  background: #edf5ff;
  color: var(--accent);
}

.public-site :is(.empty-card, .empty-state) {
  border-color: #b9d2f3;
  background: rgba(255, 255, 255, 0.58);
}

.public-site .site-footer {
  border-top-color: var(--line);
  background: #fff;
}

.public-site .footer-grid > div > a {
  color: var(--muted);
}

.public-site .footer-grid > div > a:hover {
  color: var(--accent);
}

.public-site .footer-bottom {
  border-top-color: var(--line);
}

.public-site .text-link {
  color: var(--accent);
}

.public-site .text-link:hover {
  color: var(--accent-dark);
}

.public-site :is(.chip.active, .chip:hover) {
  border-color: var(--accent);
  background: var(--accent);
}

.public-site :is(.flash, .method-note, .precheck-aside, .checker-expect) {
  border-color: var(--line);
  background: rgba(255, 255, 255, 0.68);
}

.public-site .skip-link {
  background: var(--accent-dark);
  box-shadow: 0 8px 18px rgba(8, 63, 196, 0.2);
}

@media (prefers-reduced-motion: reduce) {
  .public-site :is(.button:hover, .station-card:hover, .directory-card:hover) {
    transform: none;
  }
}
