/*
  OpenBook quick calculator pre-V3 bridge.

  Status: review draft only. This file is linked to a small pilot group of
  production quick calculators, but it is not yet a broad or permanent V3
  standard. It captures common patterns proven in recent UI/UX V3 calculator
  updates so they can be tested before any wider migration.

  Intended load order, when piloted:
  quick-calculator.css -> quick-calculator-v2.css -> quick-calculator-pre-v3.css
  -> app-local CSS for exceptions.
*/

body.quick-ui-v2 {
  --quick-v3-line: #b8d2ca;
  --quick-v3-line-strong: #9fbdb4;
  --quick-v3-accent: #0b756b;
  --quick-v3-accent-strong: #004f47;
  --quick-v3-surface: #f8fbfa;
  --quick-v3-answer-surface: #f5faf7;
  --quick-v3-text: #293d35;
  --quick-v3-muted: #566960;
  --quick-v3-placeholder: #7a8e86;
  --quick-v3-control-line: #8fb1a6;
  --quick-v3-shadow: 0 12px 30px rgba(33, 49, 43, 0.08);
  --quick-v3-radius: 8px;
  --quick-v3-inner-radius: 6px;
}

body.quick-ui-v2 :where(h1, h2, h3, h4, p, span, label, input, select, button, table, th, td, li, .eyebrow, .quick-label, .quick-note) {
  font-family: inherit;
}

body.quick-ui-v2 .quick-calculator-shell {
  --quick-shell-width: 960px;
  gap: 18px;
}

body.quick-ui-v2 .quick-calculator-grid {
  gap: 18px;
}

body.quick-ui-v2 .quick-card {
  border-color: var(--quick-v3-line);
  border-radius: var(--quick-v3-radius);
  box-shadow: var(--quick-v3-shadow);
}

body.quick-ui-v2 .quick-card--input {
  background: var(--quick-v3-surface);
}

body.quick-ui-v2 .quick-card--input > [data-quick-title],
body.quick-ui-v2 .quick-card--input > [data-quick-description]:empty,
body.quick-ui-v2 [data-quick-note]:empty {
  display: none;
}

body.quick-ui-v2 .quick-card--input > [data-quick-description] {
  max-width: none;
  margin-bottom: 14px;
  color: var(--quick-v3-text);
  font-size: 1.02rem;
  font-weight: 520;
  line-height: 1.48;
}

body.quick-ui-v2 .quick-field-group--two-up {
  gap: 12px 16px;
}

body.quick-ui-v2 .quick-field {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 4px 0 10px;
}

body.quick-ui-v2 .quick-field--group {
  padding-bottom: 2px;
}

body.quick-ui-v2 .quick-field__row {
  gap: 7px;
}

body.quick-ui-v2 .quick-label {
  color: #0d4e48;
  font-size: 0.94rem;
  font-weight: 760;
}

body.quick-ui-v2 .quick-helper {
  display: block;
  max-width: none;
  color: var(--quick-v3-muted);
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.42;
}

body.quick-ui-v2 .quick-control {
  min-height: 40px;
  border: 0;
  border-bottom: 3px solid var(--quick-v3-control-line);
  border-radius: 0;
  background: transparent;
  padding: 0 0 1px;
}

body.quick-ui-v2 .quick-control input,
body.quick-ui-v2 .quick-control select {
  box-sizing: border-box;
  min-height: 38px;
  font-size: 1.02rem;
}

body.quick-ui-v2 .quick-control input {
  padding-inline: 2px 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

body.quick-ui-v2 .quick-control select {
  min-height: 40px;
  padding-inline: 2px 28px;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  font-weight: 400;
}

body.quick-ui-v2 .quick-control:focus-within {
  border-color: var(--quick-v3-accent);
  box-shadow: none;
  background: rgba(18, 105, 95, 0.04);
}

body.quick-ui-v2 .quick-control input::placeholder {
  color: var(--quick-v3-placeholder);
  font-weight: 500;
  opacity: 1;
}

body.quick-ui-v2 .quick-prefix,
body.quick-ui-v2 .quick-suffix {
  color: #40564e;
  font-weight: 750;
}

body.quick-ui-v2 .quick-result-grid:empty {
  display: none;
}

/*
  Generic V3 answer hooks for future migration. Current app-local files often
  use app-specific classes such as savings-goal-primary-result or
  cagr-primary-result. New or migrated apps can use quick-primary-result.
*/
body.quick-ui-v2 .quick-primary-result,
body.quick-ui-v2 .quick-result-prose[class$="-primary-result"] {
  grid-column: 1 / -1;
  border-left: 5px solid var(--quick-v3-accent);
  background: var(--quick-v3-answer-surface);
}

body.quick-ui-v2 .quick-primary-result {
  padding: 16px 18px;
}

body.quick-ui-v2 .quick-primary-result :where(h3, span),
body.quick-ui-v2 .quick-result-prose[class$="-primary-result"] :where(h3, span) {
  margin-bottom: 8px;
  color: #4f615a;
  font-size: 0.82rem;
  font-weight: 780;
  letter-spacing: 0;
  text-transform: uppercase;
}

body.quick-ui-v2 .quick-primary-result p,
body.quick-ui-v2 .quick-result-prose[class$="-primary-result"] p,
body.quick-ui-v2 .quick-card--result .quick-note,
body.quick-ui-v2 [data-quick-note] {
  color: var(--quick-v3-text);
  font-size: 1.02rem;
  line-height: 1.55;
}

body.quick-ui-v2 .quick-primary-result strong,
body.quick-ui-v2 .quick-result-prose[class$="-primary-result"] strong,
body.quick-ui-v2 .quick-card--result .quick-note strong,
body.quick-ui-v2 [data-quick-note] strong {
  color: #001f23;
  font-weight: 780;
}

body.quick-ui-v2 .quick-card--result .quick-note {
  margin-top: 0;
  border-left: 5px solid var(--quick-v3-accent);
  background: var(--quick-v3-answer-surface);
  padding: 12px 14px;
}

body.quick-ui-v2 .quick-result-item {
  border-radius: var(--quick-v3-inner-radius);
  box-shadow: none;
}

body.quick-ui-v2 .quick-disclosure-section {
  border-radius: var(--quick-v3-inner-radius);
}

body.quick-ui-v2 .quick-table th,
body.quick-ui-v2 .quick-table td {
  font-size: 1rem;
  line-height: 1.38;
}

body.quick-ui-v2 .quick-table th {
  letter-spacing: 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

body.quick-ui-v2 .quick-table td {
  vertical-align: top;
}

body.quick-ui-v2 .quick-formula {
  margin: 2px 0 4px;
  padding: 6px 0 8px;
}

body.quick-ui-v2 .quick-formula__equation {
  font-size: clamp(1.04rem, 1.9vw, 1.24rem);
}

@supports not selector(:has(*)) {
  body.quick-ui-v2 .quick-control {
    border-bottom: 3px solid var(--quick-v3-control-line);
  }
}

@media (max-width: 640px) {
  body.quick-ui-v2 .quick-calculator-shell {
    gap: 14px;
  }

  body.quick-ui-v2 .quick-card {
    padding: 14px;
  }

  body.quick-ui-v2 .quick-field-group--two-up {
    gap: 10px;
  }

  body.quick-ui-v2 .quick-field {
    padding: 9px 0;
  }

  body.quick-ui-v2 .quick-field__row {
    gap: 8px;
  }

  body.quick-ui-v2 .quick-label {
    font-size: 1rem;
    line-height: 1.3;
  }

  body.quick-ui-v2 .quick-helper {
    font-size: 0.92rem;
    line-height: 1.42;
  }

  body.quick-ui-v2 .quick-control {
    min-height: 42px;
  }

  body.quick-ui-v2 .quick-control input,
  body.quick-ui-v2 .quick-control select {
    min-height: 40px;
    font-size: 1.02rem;
  }

  body.quick-ui-v2 .quick-control select {
    font-size: 0.98rem;
  }

  body.quick-ui-v2 .quick-primary-result {
    padding: 14px;
  }
}
