/* LMXFORGE v20 additions: author byline, related-links boxes, calculator toolbar, waitlist form, print layout */

.calc-byline,
.article-meta .article-author {
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--forge-muted);
}
.calc-byline { margin: 0.25rem 0 1rem; }

/* ---- Related links box (articles <-> calculators) ---- */
.v20-related {
  margin: 2.5rem 0;
  padding: 1.25rem 1.5rem;
  background: var(--forge-surface);
  border: 0.5px solid var(--forge-border);
  border-radius: 6px;
}
.v20-related-label {
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--forge-accent);
  margin-bottom: 0.85rem;
}
.v20-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.75rem;
}
.v20-related-card {
  display: block;
  padding: 0.85rem 1rem;
  background: var(--forge-surface2);
  border: 0.5px solid var(--forge-border);
  border-radius: 4px;
  text-decoration: none;
  transition: border-color 0.15s;
}
.v20-related-card:hover { border-color: rgba(245, 158, 11, 0.45); }
.v20-related-card strong {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--forge-text);
  line-height: 1.4;
  margin-bottom: 0.3rem;
}
.v20-related-card span {
  display: block;
  font-size: 12px;
  color: var(--forge-muted);
  line-height: 1.55;
}
.v20-related-card em {
  display: block;
  margin-top: 0.5rem;
  font-style: normal;
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  color: var(--forge-accent);
}

/* ---- Calculator toolbar ---- */
.v20-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin: 1.25rem 0 0.5rem;
}
.v20-btn {
  background: transparent;
  border: 0.5px solid var(--forge-border-hover, rgba(255, 255, 255, 0.14));
  color: var(--forge-accent);
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.1em;
  padding: 8px 16px;
  border-radius: 3px;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
.v20-btn:hover { border-color: var(--forge-accent); }
.v20-btn:focus-visible { outline: 2px solid var(--forge-accent); outline-offset: 2px; }
.v20-status {
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: #4ade80;
}
.v20-status.is-error { color: #f87171; }

.v20-linkbox {
  flex: 1 1 260px;
  min-width: 0;
  padding: 8px 10px;
  background: var(--forge-surface2);
  border: 0.5px solid var(--forge-border-hover, rgba(255, 255, 255, 0.14));
  border-radius: 3px;
  color: var(--forge-text);
  font-family: var(--font-mono, monospace);
  font-size: 11px;
}

/* ---- Waitlist form (product pages) ---- */
.v20-waitlist { margin: 1.25rem 0 0.75rem; }
.v20-waitlist-label {
  font-family: var(--font-mono, monospace);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--forge-accent);
  margin-bottom: 0.6rem;
}
.v20-waitlist-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.v20-waitlist input[type="email"] {
  flex: 1 1 240px;
  min-width: 0;
  padding: 10px 12px;
  background: var(--forge-surface2);
  border: 0.5px solid var(--forge-border-hover, rgba(255, 255, 255, 0.14));
  border-radius: 3px;
  color: var(--forge-text);
  font-family: var(--font);
  font-size: 13px;
  outline: none;
}
.v20-waitlist input[type="email"]:focus { border-color: var(--forge-accent); }
.v20-waitlist button[type="submit"] {
  background: var(--forge-accent);
  color: #0e0e0f;
  border: none;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 10px 20px;
  border-radius: 3px;
  cursor: pointer;
}
.v20-waitlist button[type="submit"][disabled] { opacity: 0.6; cursor: default; }
.v20-waitlist-note {
  margin-top: 0.5rem;
  font-size: 11px;
  color: var(--forge-muted);
}
.v20-waitlist-note a { color: var(--forge-muted); }
.v20-waitlist-msg {
  display: none;
  margin-top: 0.6rem;
  font-family: var(--font-mono, monospace);
  font-size: 11px;
  letter-spacing: 0.08em;
}
.v20-waitlist-msg.is-ok { display: block; color: #4ade80; }
.v20-waitlist-msg.is-error { display: block; color: #f87171; }
.v20-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- Print-only header (hidden on screen) ---- */
.v20-print-head { display: none; }

/* ---- Print layout: clean, light, one calculation per page ---- */
@media print {
  :root {
    --forge-bg: #fff; --forge-surface: #fff; --forge-surface2: #fff;
    --forge-text: #111; --forge-muted: #333; --forge-label: #333;
    --forge-border: #999; --forge-accent: #111; --forge-subtle: #ccc;
  }
  html, body { background: #fff !important; color: #111 !important; }
  nav, #nav-mobile, .search-modal-overlay, footer,
  .calc-product-teaser, .calc-back, .calc-page-header,
  .v20-toolbar, .v20-related, .v20-linkbox, .calc-btn, .cg-remove, #add-group-btn,
  button[onclick^="addRow"], button[onclick^="removeRow"],
  .calc-standard-toggle button:not(.active) { display: none !important; }
  .v20-print-head {
    display: block;
    margin: 0 0 1rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #111;
    font-family: Arial, Helvetica, sans-serif;
    color: #111;
  }
  .v20-print-head .ph-brand { font-size: 11px; letter-spacing: 0.12em; font-weight: 700; }
  .v20-print-head .ph-title { font-size: 20px; font-weight: 700; margin: 0.2rem 0; }
  .v20-print-head .ph-meta { font-size: 10px; word-break: break-all; }
  .calc-panel, .calc-result-box, .calc-page-header, .page-inner {
    background: #fff !important;
    box-shadow: none !important;
    border-color: #999 !important;
    max-width: none !important;
  }
  .calc-result-box { break-inside: avoid; }
  input, select, textarea {
    background: #fff !important;
    color: #111 !important;
    border: 1px solid #999 !important;
  }
  .calc-result-box *, .calc-panel * { color: #111 !important; }
  .calc-standard-toggle { border: none !important; background: none !important; }
  .calc-standard-toggle button.active {
    background: #fff !important; color: #111 !important;
    border: 1.5px solid #111 !important; font-weight: 700 !important; padding: 4px 14px !important;
  }
  a { color: #111 !important; text-decoration: none !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  @page { margin: 14mm; }
}
