/* Hallmark · macrostructure: Workbench · tone: playful · anchor hue: 95
 * genre: playful · theme: Hum · enrichment: live calculator widget (Tier A)
 * nav: N9 (knobs: CTA=text+arrow, wordmark=sans, padding=tight)
 * footer: Ft2 (knobs: order=credit/links, separator=middot, density=spaced)
 * pre-emit critique: P5 H4 E5 S4 R5 V5 */
@import "base.css";

/* ---------- nav (N9: edge-aligned minimal) ---------- */
.nav-edge {
  max-width: var(--page-max);
  margin-inline: auto;
  padding: var(--space-md) var(--page-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-edge__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  color: var(--color-ink);
  text-decoration: none;
  font-weight: 700;
  letter-spacing: -0.015em;
  white-space: nowrap;
}

.nav-edge__logo {
  width: 26px;
  height: 26px;
}

.nav-edge__cta {
  color: var(--color-ink);
  text-decoration: none;
  font-weight: 600;
  border-bottom: 2px solid transparent;
  transition: color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);
  white-space: nowrap;
}

.nav-edge__cta:hover {
  border-bottom-color: var(--color-accent);
}

/* ---------- page ---------- */
.calc-page {
  max-width: var(--shell);
  margin-inline: auto;
  padding: var(--space-2xl) var(--page-gutter) var(--space-3xl);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2xl);
  align-items: start;
}

.calc-page__title {
  font-size: clamp(2rem, 4vw + 0.5rem, 3.25rem);
  margin: 0;
}

.calc-page__lead {
  font-size: var(--text-lg);
  color: var(--color-ink-soft);
  margin: var(--space-md) 0 0;
}

.calc-page__hint {
  margin: var(--space-sm) 0 0;
}

.calc-feats {
  list-style: none;
  margin: var(--space-xl) 0 0;
  padding: 0;
  display: grid;
}

.calc-feat {
  display: grid;
  gap: var(--space-2xs);
  padding-block: var(--space-md);
  border-top: 1px dashed var(--color-rule-strong);
}

.calc-feat:last-child {
  border-bottom: 1px dashed var(--color-rule-strong);
}

.calc-feat p {
  color: var(--color-ink-soft);
  margin: 0;
}

/* ---------- calculator widget (real UI, no fake chrome) ---------- */
.calc {
  max-width: 400px;
  width: 100%;
  justify-self: center;
  background: var(--color-paper);
  border: 1px solid var(--color-rule);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  padding: var(--space-lg);
}

.calc__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-sm) var(--space-lg);
  border-bottom: 1px dashed var(--color-rule-strong);
  margin-bottom: var(--space-md);
}

.calc__out {
  font-family: var(--font-label);
  font-size: clamp(1.35rem, 5vw, 2.1rem);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  text-align: right;
  min-height: 1.2em;
  overflow-wrap: anywhere;
}

.calc__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-xs);
}

.calc__key {
  min-height: 48px;
  border: 0;
  border-radius: var(--radius-input);
  background: var(--color-paper-2);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: 600;
  cursor: pointer;
  transition: background-color var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}

.calc__key:hover {
  background: var(--color-paper-3);
  transform: translateY(-1px);
}

.calc__key:active {
  transform: translateY(1px);
  background: var(--color-rule);
}

.calc__key[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.calc__key--fn {
  font-size: var(--text-sm);
  background: var(--color-paper-3);
}

.calc__key--fn:hover {
  background: var(--color-rule);
}

.calc__key--op {
  background: var(--tint-cyan);
}

.calc__key--op:hover {
  background: var(--tint-cyan-strong);
}

.calc__key--op:active {
  background: var(--color-accent-2);
}

.calc__key--eq {
  background: var(--color-accent);
  box-shadow: 0 3px 0 0 var(--color-accent-deep);
}

.calc__key--eq:hover {
  background: var(--color-accent);
  box-shadow: 0 5px 0 0 var(--color-accent-deep);
  transform: translateY(-2px);
}

.calc__key--eq:active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 0 var(--color-accent-deep);
}

.calc__key--wide {
  grid-column: span 2;
}

.calc__foot {
  margin: var(--space-md) 0 0;
  text-align: right;
}

/* ---------- footer (Ft2: inline single line) ---------- */
.foot-line {
  max-width: var(--shell);
  margin-inline: auto;
  padding: var(--space-md) var(--page-gutter) var(--space-lg);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-xs) var(--space-lg);
  border-top: 1px solid var(--color-rule);
  color: var(--color-ink-muted);
  font-size: var(--text-sm);
}

.foot-line p {
  margin: 0;
}

.foot-line a {
  color: var(--color-ink-soft);
  text-decoration: none;
  border-bottom: 1px solid var(--color-rule-strong);
}

/* ---------- responsive ---------- */
@media (min-width: 40rem) {
  .calc-page {
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: var(--space-2xl);
  }

  .calc {
    justify-self: end;
  }
}
