.calculator{max-width:36rem;margin:0 auto}.calculator [hidden]{display:none!important}.calculator__progress{margin-bottom:2rem}.calculator__progress-steps{justify-content:center;align-items:center;display:flex}.calculator__progress-step{flex-direction:column;align-items:center;gap:.375rem;display:flex}.calculator__progress-dot{border:2px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-tertiary);background:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;transition:all .3s;display:flex}.calculator__progress-step--active .calculator__progress-dot,.calculator__progress-step--completed .calculator__progress-dot{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.calculator__progress-label{color:var(--color-text-tertiary);font-size:.6875rem;font-weight:500}.calculator__progress-step--active .calculator__progress-label{color:var(--color-primary);font-weight:600}.calculator__progress-connector{background:var(--color-border);flex:1;max-width:4rem;height:2px;margin:0 .5rem 1.25rem}.calculator__progress-connector--active{background:var(--color-primary)}.calculator__step{flex-direction:column;gap:1.25rem;animation:.3s calculator-fade-in;display:none}.calculator__step--active{display:flex}@keyframes calculator-fade-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.calculator__step-title{color:var(--color-text-primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.calculator__step-desc{color:var(--color-text-secondary);margin-top:-.75rem;font-size:.875rem}.calculator__form{flex-direction:column;display:flex}.calculator__field,.calculator__fieldset{flex-direction:column;gap:.5rem;display:flex}.calculator__fieldset{border:0}.calculator__label,.calculator__legend{color:var(--color-text-primary);font-size:.875rem;font-weight:600}.calculator__legend{margin-bottom:.25rem}.calculator__optional,.calculator__unit-label{color:var(--color-text-tertiary);font-size:.75rem;font-weight:400}.calculator__error{min-height:.875rem;color:var(--color-error);font-size:.75rem}.calculator__row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.calculator__input,.calculator__select{appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);background:var(--color-bg);padding:.6875rem .875rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.calculator__input::placeholder{color:var(--color-text-tertiary)}.calculator__input:focus,.calculator__select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent)}.calculator__input[aria-invalid=true],.calculator__fieldset[aria-invalid=true] .calculator__radio-label,.calculator__fieldset[aria-invalid=true] .calculator__pill-label{border-color:var(--color-error)}.calculator__toggle-group{border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.calculator__toggle{cursor:pointer;position:relative}.calculator__toggle:first-child{border-right:1px solid var(--color-border)}.calculator__toggle input{opacity:0;width:1px;height:1px;position:absolute}.calculator__toggle span{color:var(--color-text-secondary);background:var(--color-surface);text-align:center;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;transition:background-color .15s,color .15s;display:block}.calculator__toggle input:checked+span{color:var(--color-text-inverted);background:var(--color-text-primary)}.calculator__toggle input:focus-visible+span{outline:2px solid var(--color-primary);outline-offset:-3px}.calculator__radio-group{flex-direction:column;gap:.5rem;display:flex}.calculator__radio-group--2col{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.calculator__radio-label{border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.5rem;padding:.6875rem .875rem;transition:border-color .15s,background-color .15s;display:flex}.calculator__radio-label:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.calculator__radio-label:has(:checked){border-color:var(--color-primary);background:var(--color-primary-light)}.dark .calculator__radio-label:has(:checked){background:color-mix(in srgb, var(--color-primary) 15%, transparent)}.calculator__radio{accent-color:var(--color-primary)}.calculator__radio-text{color:var(--color-text-primary);font-size:.875rem;font-weight:500}.calculator__radio-text small,.calculator__goal-content small{color:var(--color-text-tertiary);font-size:.75rem;font-weight:400}.calculator__radio-label--goal{align-items:flex-start;padding:1rem}.calculator__goal-content{flex-direction:column;gap:.125rem;display:flex}.calculator__pills{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.calculator__pill{cursor:pointer;position:relative}.calculator__pill-input{opacity:0;width:1px;height:1px;position:absolute}.calculator__pill-label{border:1.5px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);background:var(--color-surface);justify-content:center;align-items:center;padding:.75rem .5rem;font-size:.9375rem;font-weight:600;display:flex}.calculator__pill-input:checked+.calculator__pill-label{border-color:var(--color-primary);color:#fff;background:var(--color-primary);box-shadow:0 2px 8px color-mix(in srgb, var(--color-primary) 30%, transparent)}.calculator__pill-input:focus-visible+.calculator__pill-label{outline:2px solid var(--color-primary);outline-offset:2px}.calculator__nav-row{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.calculator__next,.calculator__submit{border-radius:var(--radius-lg);color:var(--color-text-inverted);background:var(--color-text-primary);cursor:pointer;border:0;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-size:.9375rem;font-weight:600;transition:background-color .15s,transform .1s,box-shadow .15s;display:inline-flex}.calculator__next{width:100%}.calculator__next:hover,.calculator__submit:hover{background:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.calculator__back{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;background:0 0;align-items:center;gap:.375rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.calculator__back:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.calculator__live-preview{border:1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);border-radius:var(--radius-lg);background:var(--color-primary-light);align-items:center;gap:.5rem;margin-top:1.25rem;padding:.75rem 1rem;display:flex}.dark .calculator__live-preview{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.calculator__preview-icon{color:var(--color-primary);flex-shrink:0}.calculator__preview-text{color:var(--color-text-secondary);font-size:.8125rem}.calculator__preview-text strong{color:var(--color-primary);font-weight:700}.calculator__results--hidden{display:none}.calculator__range{width:100%;accent-color:var(--color-primary)}.calculator__range-limits{color:var(--color-text-tertiary);justify-content:space-between;font-size:.75rem;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=420px){.calculator__row{grid-template-columns:1fr}}.results{border:1px solid var(--color-border);border-radius:var(--radius-xl);background-color:var(--color-surface);margin-top:2rem;padding:2rem 1.5rem}.results__heading{color:var(--color-text-primary);text-align:center;margin-bottom:1.5rem;font-size:1.125rem;font-weight:700}.results__primary{border-radius:var(--radius-lg);background-color:var(--color-primary-light);text-align:center;flex-direction:column;align-items:center;margin-bottom:1.5rem;padding:1.5rem;display:flex}.dark .results__primary{background-color:color-mix(in srgb, var(--color-primary) 12%, transparent)}.results__target-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-size:.75rem;font-weight:500}.results__target-value{color:var(--color-primary);letter-spacing:-.03em;font-size:3rem;font-weight:800;line-height:1.1}.results__target-sub{color:var(--color-text-secondary);margin-top:.25rem;font-size:.875rem}.results__grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem;display:grid}.results__card{text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-bg);flex-direction:column;align-items:center;padding:1rem .75rem;display:flex}.results__card-label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-tertiary);font-size:.6875rem;font-weight:500}.results__card-value{color:var(--color-text-primary);letter-spacing:-.02em;margin-top:.25rem;font-size:1.25rem;font-weight:700}.results__card-sub{color:var(--color-text-tertiary);margin-top:.125rem;font-size:.6875rem}.results__table{margin-bottom:1.5rem;overflow-x:auto}.results__table table{border-collapse:collapse;width:100%;min-width:28rem}.results__table caption{color:var(--color-text-primary);text-align:left;margin-bottom:.75rem;font-size:.875rem;font-weight:700}.results__table th,.results__table td{border:1px solid var(--color-border);text-align:left;padding:.75rem;font-size:.8125rem}.results__table thead{background-color:var(--color-bg-secondary)}.results__table tbody th{color:var(--color-text-primary);font-weight:600}.results__explanation{border-radius:var(--radius-lg);background-color:var(--color-bg-tertiary);margin-bottom:1.5rem;padding:1rem 1.25rem}.results__explanation-title{color:var(--color-text-primary);margin-bottom:.5rem;font-size:.8125rem;font-weight:600}.results__explanation-text{color:var(--color-text-secondary);margin-bottom:.75rem;font-size:.8125rem;line-height:1.7}.results__explanation-source{color:var(--color-text-tertiary);font-size:.75rem;font-style:italic}.results__status{border:1px solid var(--color-border);border-radius:var(--radius-full);text-align:center;width:fit-content;max-width:100%;margin:0 auto 1.5rem;padding:.625rem .875rem;font-size:.8125rem;line-height:1.4}.results__status-prefix{font-weight:600}.results__status[data-tone=neutral]{color:#1e40af;background-color:#eff6ff;border-color:#93c5fd}.results__status[data-tone=positive]{color:#166534;background-color:#f0fdf4;border-color:#86efac}.results__status[data-tone=caution]{color:#854d0e;background-color:#fefce8;border-color:#facc15}.results__status[data-tone=critical]{color:#991b1b;background-color:#fef2f2;border-color:#fca5a5}.dark .results__status[data-tone=neutral]{color:#bfdbfe;background-color:#172554;border-color:#1d4ed8}.dark .results__status[data-tone=positive]{color:#bbf7d0;background-color:#052e16;border-color:#15803d}.dark .results__status[data-tone=caution]{color:#fde68a;background-color:#422006;border-color:#a16207}.dark .results__status[data-tone=critical]{color:#fecaca;background-color:#450a0a;border-color:#b91c1c}.results__actions{border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-bg-secondary);margin-bottom:1.5rem;padding:1rem 1.25rem}.results__actions-title{color:var(--color-text-primary);margin-bottom:.75rem;font-size:.875rem;font-weight:700}.results__actions-list{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;list-style:none;display:grid}.results__action-link{border:1px solid var(--color-primary);border-radius:var(--radius-md);min-height:2.75rem;color:var(--color-primary);text-align:center;justify-content:center;align-items:center;padding:.625rem .875rem;font-size:.8125rem;font-weight:600;line-height:1.3;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.results__action-link:hover{color:var(--color-text-inverted);background-color:var(--color-primary)}.results__recalculate{width:100%;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:.75rem;font-size:.875rem;font-weight:600;transition:border-color .15s,color .15s,background-color .15s;display:block}.results__recalculate:hover{border-color:var(--color-border-hover);color:var(--color-text-primary);background-color:var(--color-surface-hover)}
