.badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;border-radius:var(--r-pill);border:1px solid #0000;align-items:center;gap:.25em;padding:.1em .5em;line-height:1.6;display:inline-flex}.badge__icon{flex:none}.badge--estimate{color:var(--c-teal-strong);background:var(--c-teal-soft);border-color:var(--c-mint-strong)}.badge--warn{color:var(--c-warn-ink);background:var(--c-warn-surface);border-color:var(--c-warn-border)}.badge--free{color:var(--c-navy);background:var(--c-mint);border-color:var(--c-mint-strong)}.nf{gap:var(--sp-2);flex-direction:column;display:flex}.nf__label{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--c-ink);flex-wrap:wrap;display:flex}.nf__control{align-items:stretch;gap:var(--sp-2);display:flex}.nf__input-wrap{flex:auto;align-items:center;min-width:0;display:flex;position:relative}.nf__input{width:100%;min-height:var(--touch-comfortable);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-base);font-variant-numeric:tabular-nums;color:var(--c-ink);background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding-right:3.5rem}.nf__input::placeholder{color:var(--c-ink-3)}.nf__input:focus{border-color:var(--c-teal);box-shadow:0 0 0 3px var(--c-focus-ring);outline:none}.nf__input:focus-visible{outline:2px solid var(--c-focus);outline-offset:1px}.nf__suffix{right:var(--sp-3);font-size:var(--fs-sm);color:var(--c-ink-3);pointer-events:none;position:absolute}.nf__step{min-width:var(--touch-comfortable);min-height:var(--touch-comfortable);font-size:var(--fs-lg);color:var(--c-teal-strong);background:var(--c-surface);border:1px solid var(--c-border-strong);border-radius:var(--r-md);flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.nf__step:hover:not(:disabled){background:var(--c-teal-soft);border-color:var(--c-teal)}.nf__step:disabled{opacity:.5;cursor:not-allowed}.nf__hint{font-size:var(--fs-xs);color:var(--c-ink-3)}.nf__error{align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-danger-ink);display:flex}.nf__error-icon{width:1.15em;height:1.15em;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-surface);background:var(--c-danger-ink);border-radius:var(--r-pill);flex:none;justify-content:center;align-items:center;margin-top:.2em;display:inline-flex}.nf--error .nf__input{border-color:var(--c-danger-ink);background:var(--c-danger-surface)}.nf--disabled .nf__label{color:var(--c-ink-3)}.rc{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xl);box-shadow:var(--sh-md);min-height:14rem;scroll-margin-top:var(--sp-4);flex-direction:column;display:flex;overflow:hidden}.rc--idle{padding:var(--sp-5);color:var(--c-ink-2);border-style:dashed;border-color:var(--c-border-strong);box-shadow:none;justify-content:center;align-items:center}.rc__idle-text{font-size:var(--fs-sm)}.rc--stale{opacity:.55;transition:opacity var(--dur-base) var(--ease)}.rc__hero{gap:var(--sp-4);padding:var(--sp-6);color:var(--c-on-dark);background:var(--c-navy);flex-direction:column;display:flex}.rc__primary-label{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-on-navy-2);display:flex}.rc__primary-value{overflow-wrap:anywhere;min-width:0;margin-top:var(--sp-1);font-size:var(--fs-4xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:-.03em}.rc__primary-sub{margin-top:var(--sp-1);font-size:var(--fs-md);color:var(--c-on-navy-2)}.rc__highlight{justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);color:var(--c-navy);background:var(--c-mint);border-radius:var(--r-md);display:flex}.rc__highlight-label{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.rc__highlight-value{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.rc__metrics{gap:var(--sp-2) var(--sp-5);padding-top:var(--sp-3);border-top:1px solid var(--c-rule-on-navy);flex-wrap:wrap;display:flex}.rc__metric{align-items:baseline;gap:var(--sp-2);font-size:var(--fs-sm);display:flex}.rc__metric-label{color:var(--c-on-navy-2)}.rc__metric-value{font-weight:var(--fw-semibold)}.rc__status{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--c-orange);border:1px solid var(--c-orange);border-radius:var(--r-sm);display:flex}.rc__status-icon{width:1.2em;height:1.2em;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-navy);background:var(--c-orange);border-radius:var(--r-pill);flex:none;justify-content:center;align-items:center;margin-top:.1em;display:inline-flex}.rc__body{padding:0 var(--sp-6);color:var(--c-ink);flex-direction:column;display:flex}.rc__body>*{padding-block:var(--sp-4)}.rc__body>*+*{border-top:1px solid var(--c-border)}.rc__body>details{padding-block:var(--sp-1)}.rc__body>:last-child{padding-bottom:var(--sp-5)}.rc__breakdown{gap:var(--sp-2);font-size:var(--fs-base);flex-direction:column;display:flex}.rc__breakdown-row{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.rc__breakdown-label{color:var(--c-ink-2)}.rc__breakdown-value{color:var(--c-ink);font-variant-numeric:tabular-nums;white-space:nowrap}.rc__assumptions,.rc__warnings{gap:var(--sp-2);font-size:var(--fs-sm);flex-direction:column;display:flex}.rc__assumption{align-items:flex-start;gap:var(--sp-2);line-height:var(--lh-snug);color:var(--c-ink-2);display:flex}.rc__range{color:var(--c-ink-3)}.rc__warning{align-items:flex-start;gap:var(--sp-2);line-height:var(--lh-snug);color:var(--c-warn-ink);display:flex}.rc__warning-icon{width:1.2em;height:1.2em;font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--c-navy);background:var(--c-orange);border-radius:var(--r-pill);flex:none;justify-content:center;align-items:center;margin-top:.15em;display:inline-flex}.rc__sources,.rc__formula{font-size:var(--fs-sm)}.rc__sources-summary,.rc__formula-summary{min-height:var(--touch-comfortable);font-weight:var(--fw-medium);color:var(--c-teal);cursor:pointer;align-items:center;display:inline-flex}.rc__sources-summary:hover,.rc__formula-summary:hover{color:var(--c-teal-strong)}.rc__sources-list{gap:var(--sp-2);margin-top:var(--sp-1);line-height:var(--lh-snug);color:var(--c-ink-2);flex-direction:column;display:flex}.rc__formula-body{margin-top:var(--sp-1);padding:var(--sp-3);color:var(--c-ink);background:var(--c-surface-2);border-radius:var(--r-md);overflow-x:auto}.rc__invalid-note{font-size:var(--fs-sm);color:var(--c-warn-ink)}.rc__next-title{margin:0 0 var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-ink)}.rc__next-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rc__next-link{gap:var(--sp-1);min-height:var(--touch-comfortable);padding:var(--sp-3) var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease);flex-direction:column;text-decoration:none;display:flex}.rc__next-link:hover,.rc__next-link:focus-visible{border-color:var(--c-teal);background:var(--c-teal-soft)}.rc__next-label{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--c-ink)}.rc__next-desc{font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--c-ink-2)}.rc__dock{inset-inline:var(--sp-3);bottom:var(--sp-3);z-index:30;justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:4rem;padding:var(--sp-2) var(--sp-5);color:var(--c-on-dark);background:var(--c-navy);border-radius:var(--r-xl);box-shadow:var(--sh-lg);text-decoration:none;display:flex;position:fixed}.rc__dock:hover{color:var(--c-on-dark)}.rc__dock-text{flex-direction:column;min-width:0;display:flex}.rc__dock-label{font-size:var(--fs-xs);color:var(--c-on-navy-2)}.rc__dock-value{font-size:var(--fs-lg);font-weight:var(--fw-bold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rc__dock-cta{font-size:var(--fs-sm);font-weight:var(--fw-semibold);flex:none}@media (width>=60rem){.rc__dock{display:none}}@media (width<=30rem){.rc__hero{padding:var(--sp-5)}.rc__body{padding-inline:var(--sp-5)}.rc__primary-value{font-size:var(--fs-3xl)}}
