/* Scoped editorial calculator. No site-wide selectors or animation changes. */
[data-proposal-cost] { min-width: 0; }
[data-proposal-cost] [hidden] { display: none !important; }
[data-proposal-cost] .jpp-controls { margin: 28px 0; padding: clamp(14px, 3vw, 26px); border: 1px solid #edc13655; border-radius: 18px; background: #101220; color: #f0ece0; }
[data-proposal-cost] .jpp-controls p,
[data-proposal-cost] .jpp-controls li { font-style: normal; }
[data-proposal-cost] .jpp-shared { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin: 24px 0 30px; }
[data-proposal-cost] .jpp-proposals,
[data-proposal-cost] .jpp-output-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
[data-proposal-cost] .jpp-proposal { min-width: 0; margin: 0; padding: 18px; border: 1px solid #edc13644; border-radius: 14px; }
[data-proposal-cost] legend { padding: 0 9px; color: #f0ece0; font: 500 27px/1.3 var(--serif, Georgia, serif); }
[data-proposal-cost] .jpp-group { margin: 0; padding: 20px 0; border-top: 1px solid #f0ece02c; }
[data-proposal-cost] .jpp-group:first-of-type { border-top: 0; padding-top: 8px; }
[data-proposal-cost] h4 { margin: 0 0 17px; color: #f0ece0; font: 500 23px/1.3 var(--serif, Georgia, serif); }
[data-proposal-cost] h5 { margin: 24px 0 10px; color: #f0ece0; font: 600 15px/1.5 var(--sans, sans-serif); }
[data-proposal-cost] .jpp-field,
[data-proposal-cost] .jpp-group-body { min-width: 0; }
[data-proposal-cost] .jpp-field + .jpp-field { margin-top: 18px; }
[data-proposal-cost] .jpp-shared > .jpp-field { margin-top: 0; }
[data-proposal-cost] .jpp-dependent,
[data-proposal-cost] .jpp-schedule { margin-top: 18px; }
[data-proposal-cost] label { display: block; margin: 0 0 9px; color: #f0ece0; font: 600 14px/1.5 var(--sans, sans-serif); }
[data-proposal-cost] input,
[data-proposal-cost] select { display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 48px; border: 1px solid #edc13677; border-radius: 10px; padding: 11px; background: #080912; color: #f0ece0; font: 400 16px/1.5 var(--sans, sans-serif); }
[data-proposal-cost] .jpp-help,
[data-proposal-cost] .jpp-status,
[data-proposal-cost] .jpp-method-limit { margin: 10px 0 0; color: #bcb9c7; font: 400 13px/1.7 var(--sans, sans-serif); }
[data-proposal-cost] .jpp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
[data-proposal-cost] button { box-sizing: border-box; min-height: 48px; max-width: 100%; border: 1px solid #edc13688; border-radius: 10px; padding: 11px 16px; background: transparent; color: #f0ece0; font: 600 14px/1.5 var(--sans, sans-serif); cursor: pointer; white-space: normal; }
[data-proposal-cost] button:hover { border-color: #edc136; background: #edc13616; }
[data-proposal-cost] button.jpp-review { background: #edc136; color: #101220; }
[data-proposal-cost] :is(input, select, button, summary):focus-visible,
[data-proposal-cost] :is(.jpp-error, .jpp-results):focus { outline: 2px solid #edc136; outline-offset: 3px; }
[data-proposal-cost] [aria-invalid="true"] { border-color: #ffb9aa; }
[data-proposal-cost] .jpp-error { margin-top: 24px; padding: 16px; border: 1px solid #ffb9aa; border-radius: 10px; overflow-wrap: anywhere; }
[data-proposal-cost] .jpp-error p,
[data-proposal-cost] .jpp-error li,
[data-proposal-cost] .jpp-error a { color: #ffcec3; font-size: 14px; line-height: 1.7; }
[data-proposal-cost] .jpp-error a { text-decoration: underline; }
[data-proposal-cost] .jpp-error a:focus-visible { outline: 2px solid #edc136; outline-offset: 3px; }
[data-proposal-cost] .jpp-error-title { margin: 0; font-weight: 600; }
[data-proposal-cost] ul { margin: 10px 0 0; padding-left: 20px; }
[data-proposal-cost] li { padding: 3px 0; overflow-wrap: anywhere; }
[data-proposal-cost] .jpp-sample-note { color: #edc136; font: 400 13px/1.7 var(--sans, sans-serif); }
[data-proposal-cost] .jpp-results { margin-top: 30px; padding-top: 24px; border-top: 1px solid #edc13655; }
[data-proposal-cost] .jpp-results h3 { margin: 0 0 14px; font: 500 clamp(25px, 4vw, 34px)/1.25 var(--serif, Georgia, serif); }
[data-proposal-cost] .jpp-output { min-width: 0; margin-top: 16px; padding: 18px; border: 1px solid #edc13644; border-radius: 14px; }
[data-proposal-cost] .jpp-output p,
[data-proposal-cost] .jpp-output li { font-size: 14px; line-height: 1.7; }
[data-proposal-cost] .jpp-subtotal-label { color: #bcb9c7; }
[data-proposal-cost] .jpp-output p.jpp-amount { margin: 8px 0 20px; color: #edc136; font: 500 clamp(24px, 3vw, 32px)/1.3 var(--serif, Georgia, serif); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
[data-proposal-cost] .jpp-scenario,
[data-proposal-cost] .jpp-boundary { padding-left: 14px; border-left: 2px solid #edc13688; font-size: 14px; line-height: 1.7; }
[data-proposal-cost] .jpp-time { font-variant-numeric: tabular-nums; }
[data-proposal-cost] summary { cursor: pointer; padding: 10px 0; color: #edc136; font: 500 15px/1.6 var(--sans, sans-serif); }
[data-proposal-cost] .jpp-group summary { padding-top: 0; }
[data-proposal-cost] .jpp-breakdown,
[data-proposal-cost] .jpp-worked { margin-top: 24px; padding-top: 16px; border-top: 1px solid #edc13644; }
[data-proposal-cost] .jpp-worked p { font-size: 14px; line-height: 1.8; }
@media (min-width: 700px) {
  [data-proposal-cost] .jpp-shared,
  [data-proposal-cost] .jpp-proposals,
  [data-proposal-cost] .jpp-output-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 440px) {
  [data-proposal-cost] .jpp-proposal,
  [data-proposal-cost] .jpp-output { padding: 13px; }
  [data-proposal-cost] .jpp-actions { flex-direction: column; }
  [data-proposal-cost] button { width: 100%; }
}
@media (forced-colors: active) {
  [data-proposal-cost] :is(.jpp-controls, .jpp-proposal, .jpp-output, .jpp-error, .jpp-boundary, .jpp-scenario) { border-color: CanvasText; }
  [data-proposal-cost] [aria-invalid="true"] { outline: 2px dashed CanvasText; }
  [data-proposal-cost] :is(input, select, button, summary):focus-visible,
  [data-proposal-cost] :is(.jpp-error, .jpp-results):focus { outline-color: Highlight; }
}
@media print {
  [data-proposal-cost] :focus { outline: none !important; }
  [data-proposal-cost] :is([data-pc-fields], .jpp-actions, .jpp-error, .jpp-status),
  [data-proposal-cost] .jpp-controls > .jpp-help { display: none !important; }
  [data-proposal-cost] :is(.jpp-controls, .jpp-results, .jpp-output-pair, .jpp-output, .jpp-worked) { display: block; break-inside: auto; page-break-inside: auto; margin: 10pt 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
  [data-proposal-cost] .jpp-controls:has([data-pc-results][hidden])::after { content: "No current reviewed result. Review the entries on the page to calculate. The worked example below, when open, is fictional."; display: block; margin: 8pt 0; font-size: 10pt; line-height: 1.5; }
  [data-proposal-cost] .jpp-output { padding-top: 8pt; border-top: 1px solid #777; }
  [data-proposal-cost] :is(p, li, summary) { font-size: 10pt !important; line-height: 1.5 !important; }
  [data-proposal-cost] h4 { font-size: 13pt !important; }
  [data-proposal-cost] h5 { margin: 10pt 0 5pt; font-size: 10pt !important; break-after: avoid; }
  [data-proposal-cost] .jpp-output p.jpp-amount { font-size: 16pt !important; }
  [data-proposal-cost] details:not([open]) > summary::after { content: " (collapsed in this copy; open on the page to include its contents)"; font-weight: normal; }
  [data-proposal-cost] .jpp-boundary { padding-left: 8pt; }
}
