/* Fonts come from qk-tokens.css, which every page linking this sheet also
   links, first. The duplicate @font-face pair was removed 2026-08-15 —
   qk-tokens.css is the single source site-wide. */
.qk-calculator-page,
.qk-simulator-page,
.qk-stub-page,
.qk-legal-page {
  --qk-font-body: var(--font);
  --qk-font-display: var(--font);
  --qk-font-mono: var(--mono);
  font-family: var(--qk-font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.qk-calculator-page button,
.qk-calculator-page input,
.qk-calculator-page select,
.qk-simulator-page button,
.qk-simulator-page input,
.qk-simulator-page select,
.qk-stub-page button,
.qk-stub-page input,
.qk-stub-page select,
.qk-legal-page button,
.qk-legal-page input,
.qk-legal-page select {
  font-family: inherit;
}

.qk-calculator-page :focus-visible,
.qk-simulator-page :focus-visible,
.qk-stub-page :focus-visible,
.qk-legal-page :focus-visible {
  outline: 2px solid var(--accent2);
  outline-offset: 3px;
}

.qk-calculator-page .railnav,
.qk-simulator-page .railnav,
.qk-stub-page .railnav,
.qk-legal-page .railnav {
  background: var(--surface);
  border-right-color: var(--line);
  font-family: var(--qk-font-body);
}

.qk-calculator-page .railnav .dsec,
.qk-simulator-page .railnav .dsec,
.qk-stub-page .railnav .dsec,
.qk-legal-page .railnav .dsec {
  font-family: var(--qk-font-mono);
  letter-spacing: 0;
}

.qk-calculator-page .railnav .rail-scroll > a,
.qk-calculator-page .railnav .rail-login,
.qk-simulator-page .railnav .rail-scroll > a,
.qk-simulator-page .railnav .rail-login,
.qk-stub-page .railnav .rail-scroll > a,
.qk-stub-page .railnav .rail-login,
.qk-legal-page .railnav .rail-scroll > a,
.qk-legal-page .railnav .rail-login {
  border-radius: var(--r);
}

/* Dense calculator: preserve the engine and improve only the operator surface. */
.qk-calculator-page {
  --bg-body: var(--bg);
  --bg-surface: var(--surface);
  --bg-surface-2: var(--surface2);
  --text-main: var(--text);
  --text-muted: var(--muted);
  --border-color: var(--line);
  --primary: var(--accent);
  --primary-h: var(--accent2);
  --success: var(--up-hi);
  font-size: var(--t-body);
  line-height: 1.5;
}

.qk-calculator-page #app {
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
}

.qk-calculator-page .actionbar,
.qk-calculator-page .grp,
.qk-calculator-page .panel,
.qk-calculator-page .privacy,
.qk-calculator-page .dropzone,
.qk-calculator-page .compliance,
.qk-calculator-page .card,
.qk-calculator-page .summary-cell,
.qk-calculator-page .attempt-scroll {
  border-radius: var(--r);
}

.qk-calculator-page .actionbar {
  padding: 11px 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
}

.qk-calculator-page .actionbar .brand {
  margin: 0;
  font-family: var(--qk-font-display);
  font-size: var(--t-h2);
  letter-spacing: 0;
}

.qk-calculator-page .grp > summary {
  min-height: 42px;
  padding-block: 9px;
  font-size: var(--t-body);
}

.qk-calculator-page .grp-body label {
  font-size: var(--t-small);
}

.qk-calculator-page input[type="number"],
.qk-calculator-page input[type="text"],
.qk-calculator-page select {
  min-height: 34px;
  border-radius: var(--r-sm);
  font-family: var(--qk-font-mono);
}

.qk-calculator-page button.run,
.qk-calculator-page button.preset {
  min-height: 34px;
  border-radius: var(--r-sm);
}

.qk-calculator-page .privacy {
  align-items: flex-start;
}

.qk-calculator-page .privacy-mark {
  flex: none;
  margin-top: 2px;
  padding: 3px 6px;
  border: 1px solid rgba(74, 222, 128, 0.45);
  border-radius: var(--r-sm);
  color: var(--accent2);
  font: 600 var(--t-label)/1.2 var(--qk-font-mono);
}

/* Simulator: keep the inputs dense and make the mobile shell intentional. */
.qk-simulator-page h1 {
  font-family: var(--qk-font-display);
  letter-spacing: 0;
}

.qk-simulator-page .card,
.qk-simulator-page .metric,
.qk-simulator-page .banner,
.qk-simulator-page .verdict,
.qk-simulator-page .btn,
.qk-simulator-page .seg,
.qk-simulator-page input,
.qk-simulator-page select {
  border-radius: var(--r);
}

.qk-simulator-page .metric .v,
.qk-simulator-page table,
.qk-simulator-page input,
.qk-simulator-page select {
  font-family: var(--qk-font-mono);
}

/* Placeholder tools should read like an operator roadmap, not a campaign page. */
.qk-stub-page .blob {
  display: none;
}

.qk-stub-page .stub-hero {
  padding: 64px 0 42px;
  text-align: left;
}

.qk-stub-page .stub-hero .rail {
  align-items: flex-start;
  gap: 16px;
  max-width: 940px;
}

.qk-stub-page .stub-hero h1,
.qk-stub-page .stub-hero h1 .grad {
  max-width: 900px;
  margin: 0;
  background: none;
  color: var(--text);
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  font-size: var(--t-hero);
  line-height: 1.15;
  letter-spacing: 0;
}

.qk-stub-page .stub-hero h1 .grad {
  color: var(--accent2);
}

.qk-stub-page .stub-hero .lede {
  max-width: 72ch;
  font-size: var(--t-prose);
  line-height: 1.6;
}

.qk-stub-page .ico-hero {
  width: 52px;
  height: 52px;
  border-radius: var(--r);
}

.qk-stub-page .ico-hero svg {
  width: 26px;
  height: 26px;
}

.qk-stub-page .eyebrow,
.qk-stub-page .soon-pill,
.qk-stub-page .btn {
  border-radius: var(--r-sm);
  letter-spacing: 0;
}

.qk-stub-page .btn-primary,
.qk-stub-page .btn-primary:hover {
  box-shadow: none;
}

.qk-stub-page .cta-row {
  justify-content: flex-start;
}

.qk-stub-page .panel {
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.qk-stub-page .panel::before {
  display: none;
}

.qk-stub-page .feat {
  border-radius: var(--r);
  box-shadow: none;
}

/* Legal pages retain the long-form layout but collapse to a quiet mobile header. */
.qk-legal-page {
  --qk-r-card: var(--r);
}

.qk-legal-page .legal-doc h1,
.qk-legal-page .legal-doc h2,
.qk-legal-page .legal-doc h3 {
  font-family: var(--qk-font-display);
  letter-spacing: 0;
}

.qk-legal-page .legal-doc code {
  font-family: var(--qk-font-mono);
}

@media (max-width: 899px) {
  .qk-simulator-page .nav {
    min-height: 58px;
    flex-wrap: nowrap;
    gap: 12px;
    padding: 10px 14px;
  }

  .qk-simulator-page .nav > a:not([href="/login.html"]),
  .qk-simulator-page .nav > span:not(.wm) {
    display: none;
  }

  .qk-simulator-page .nav > a[href="/login.html"] {
    margin-left: auto !important;
  }

  .qk-legal-page .nav .rail {
    gap: 12px;
    padding-inline: 14px;
  }

  .qk-legal-page .nav .wordmark > span:last-child,
  .qk-legal-page .nav nav[aria-label="Primary"],
  .qk-legal-page .nav-right .nav-links a:not(.active) {
    display: none;
  }

  .qk-legal-page .nav-right {
    margin-left: auto;
  }
}

@media (max-width: 767px) {
  .qk-stub-page .stub-hero {
    padding: 42px 0 30px;
  }

  .qk-stub-page .stub-hero .lede {
    font-size: var(--t-body);
  }
}
