/* M30 public shell aliases the shared botanical academic palette. */
:root {
  --m30-public-navy: var(--primary, #173F32);
  --m30-public-blue: var(--primary-light, #286C53);
  --m30-public-teal: var(--accent-light, #4D8970);
  --m30-public-bg: var(--bg, #F7F9F6);
  --m30-public-surface: var(--bg-card, #FFFFFF);
  --m30-public-text: var(--text-primary, #23312A);
  --m30-public-muted: var(--text-muted, #66746D);
  --m30-public-border: var(--border, #DEE7DF);
}
html { background: var(--m30-public-bg); }
body {
  color: var(--m30-public-text);
  background: var(--m30-public-bg);
  font-family: "Inter", "Noto Sans SC", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;
}
.platform-header { border-bottom-color: var(--m30-public-border); }
.header-inner { max-width: var(--content-max, 1280px); padding-block: 12px; }
.brand { color: var(--m30-public-navy); }
.brand small { color: var(--m30-public-muted); letter-spacing: .12em; }
.platform-header nav a { color: var(--m30-public-muted); }
.platform-header nav a:hover,
.platform-header nav a[aria-current] { color: var(--m30-public-navy); border-bottom-color: var(--m30-public-teal); }
.nav-login { border-color: var(--m30-public-border); color: var(--m30-public-navy) !important; }
main { max-width: 1280px; }
.page-hero { max-width: 980px; }
.eyebrow { color: var(--m30-public-teal); letter-spacing: .12em; }
h1, h2, h3 { color: var(--m30-public-navy); letter-spacing: 0; }
.lead, .card p, .note, figcaption { color: var(--m30-public-muted); }
.button { border-color: var(--m30-public-border); border-radius: 7px; color: var(--m30-public-navy); }
.button.primary { background: var(--m30-public-navy); border-color: var(--m30-public-navy); color: #FFFFFF; }
.button.primary:hover { background: var(--m30-public-blue); border-color: var(--m30-public-blue); }
.card, .method-figure, .resource-list li, details {
  border-color: var(--m30-public-border);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(23, 59, 92, .05);
}
.steps span { border-left-color: var(--m30-public-teal); background: var(--m30-public-surface); }
.callout { background: var(--primary-soft, #EDF4EE); border: 1px solid var(--m30-public-border); border-radius: 8px; }
.site-footer { max-width: var(--content-max, 1280px); border-top-color: var(--m30-public-border); color: var(--m30-public-muted); }
.site-footer strong { color: var(--m30-public-navy); }
/* M31: consistent scientific reading surfaces across all public pages. */
.platform-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.97); }
.platform-header nav { gap: 6px; }
.platform-header nav a { border-radius: 6px; padding-inline: 10px; }
.page-hero { padding-block: clamp(44px, 7vw, 88px); }
.page-hero .lead { max-width: 760px; line-height: 1.8; }
.section-heading { max-width: 900px; }
.card h2, .card h3, .method-figure h2, .method-figure h3 { line-height: 1.35; }
.table-wrap, .figure-wrap, .scientific-figure { overflow-x: auto; }
table { min-width: 640px; }
.output-metadata, main section:has(> table) { max-width: 100%; overflow-x: auto; }
button, .button, input, select, textarea { min-height: 38px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(24,124,132,.28); outline-offset: 2px; }
@media (max-width: 767px) {
  .header-inner { padding-inline: 18px; }
  .menu-button { display: block !important; flex: 0 0 auto; border-color: var(--m30-public-border); color: var(--m30-public-navy); }
  .platform-header nav a { border-bottom: 0; }
  .page-hero { padding-block: 36px 48px; }
  .page-hero h1 { font-size: clamp(27px, 7.7vw, 32px); line-height: 1.3; overflow-wrap: anywhere; }
  .page-hero .eyebrow { max-width: 100%; overflow-wrap: anywhere; letter-spacing: .08em; }
  .actions > .button { width: 100%; max-width: 100%; margin-inline: 0; justify-content: center; }
  .steps { overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
