.ds-mono-tabular-nums{font-feature-settings:var(--pf-feature-mono-clean-tabular);font-variant-numeric:var(--pf-numeric-tabular)}.ds-supreme-nums{font-feature-settings:var(--pf-feature-supreme);font-variant-numeric:var(--pf-numeric-supreme)}.text-primary{color:var(--pf-text-strong)}.text-secondary,.text-tertiary{color:var(--pf-text-soft)}.ds-alert{display:block;padding:var(--pf-space-sm) var(--pf-space-md);border:1px solid var(--pf-line);border-radius:var(--pf-radius-xl);font-size:var(--text-sm);color:var(--pf-text);background:var(--pf-surface)}@media (min-width:768px){.ds-alert{padding:var(--pf-space-sm) var(--pf-space-md);font-size:var(--text-md)}}.ds-alert--warning{border-color:var(--pf-warning);background:var(--pf-warning-tint);color:var(--pf-warning)}.ds-alert--error{border-color:var(--pf-error);background:var(--pf-error-tint);color:var(--pf-error)}.ds-alert--with-icon{display:flex;align-items:flex-start;gap:var(--pf-space-xs)}.ds-alert__content{flex:1}.ds-alert__title{font-weight:500;margin-bottom:var(--pf-space-xs)}.ds-alert__text{font-weight:400}.alert{display:flex;gap:var(--pf-space-sm);padding:var(--pf-space-md);border:1px solid;border-radius:var(--pf-radius-md)}.drawer{margin-bottom:var(--pf-space-lg)}.ds-btn-ghost{background:transparent;color:var(--pf-text-strong);border:none}.ds-btn-ghost:hover:not(:disabled){background:var(--pf-soft)}.pf-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--pf-radius-pill);background:transparent;color:var(--pf-text-soft);border:1px solid transparent;cursor:pointer;transition:border-color var(--pf-motion-fast),color var(--pf-motion-fast)}.pf-icon-btn:hover:not(:disabled){border-color:var(--pf-accent);color:var(--pf-accent)}.pf-icon-btn:focus-visible{outline:2px solid var(--pf-accent);outline-offset:2px}.pf-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ds-mldg-trigger-container{display:block}@media (min-width:768px){.ds-mldg-trigger-container{display:none}}.ds-mldg-trigger{display:flex;align-items:center;justify-content:center;padding:var(--pf-space-sm);background:transparent;border:none;cursor:pointer;color:var(--pf-text)}.ds-mldg-close:focus-visible,.ds-mldg-trigger:focus-visible{outline:2px solid var(--pf-accent);outline-offset:2px}.ds-mldg-close-icon,.ds-mldg-trigger-icon{width:1.5rem;height:1.5rem}.ds-mldg-panel{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--pf-foxai-ground);animation:ds-mldg-enter .24s var(--pf-ease-exp)}@keyframes ds-mldg-enter{0%{opacity:0}to{opacity:1}}.ds-mldg-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--pf-space-md) clamp(1rem,4vw,2rem);border-bottom:1px solid var(--pf-line-inverse)}.ds-mldg-logo{width:2.75rem;height:2.75rem}.ds-mldg-close{display:flex;align-items:center;justify-content:center;padding:var(--pf-space-sm);background:transparent;border:none;cursor:pointer;color:var(--pf-text-inverse)}.ds-mldg-canvas{position:relative;flex:1;min-height:0;display:block;width:100%;overflow:hidden}.ds-mldg-canvas--here{appearance:none;padding:0;border:none;background:transparent;cursor:pointer;text-align:left}.ds-mldg-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ds-mldg-plate{position:absolute;left:1.25rem;right:1.25rem;bottom:var(--pf-space-xl);display:flex;align-items:baseline;min-width:0}.ds-mldg-plate-wordmark{flex:none;font-family:var(--pf-font-sans);font-size:var(--text-xl);font-weight:500;letter-spacing:-.005em;color:var(--pf-text-inverse)}.ds-mldg-plate-typed{min-width:0;overflow:hidden;white-space:nowrap;margin-left:.55em;font-family:var(--pf-font-mono);font-size:var(--text-xs);font-weight:400;color:var(--pf-on-accent-soft);font-variant-ligatures:none;font-feature-settings:var(--pf-feature-mono-clean)}.ds-mldg-plate-typed:empty{margin-left:0}@keyframes ds-mldg-caret{50%{opacity:0}}.ds-mldg-ledger{background:var(--pf-bg);border-top:1px solid var(--pf-line);padding:var(--pf-space-xxs) clamp(1.25rem,4vw,2rem) calc(var(--pf-space-md) + env(safe-area-inset-bottom))}.ds-mldg-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--pf-space-md);padding:.9375rem 0;background:transparent;border:none;border-bottom:1px solid var(--pf-line-soft);cursor:pointer;text-align:left;text-decoration:none}.ds-mldg-row-label{font-family:var(--pf-font-sans);font-size:var(--text-wordmark);font-weight:500;line-height:var(--pf-line-tight);color:var(--pf-text-strong);transition:color .16s var(--pf-ease-exp)}.ds-mldg-row.is-active .ds-mldg-row-label,.ds-mldg-row:active .ds-mldg-row-label{color:var(--pf-accent)}.ds-mldg-row-chevron{flex:none;color:var(--pf-text-soft);transform:translateX(6%);transition:transform .16s var(--pf-ease-exp),color .16s var(--pf-ease-exp)}.ds-mldg-row:active .ds-mldg-row-chevron,.ds-mldg-subrow:active .ds-mldg-row-chevron{transform:translateX(28%);color:var(--pf-accent)}.ds-mldg-footer{margin:0;padding-top:var(--pf-space-md);font-family:var(--pf-font-sans);font-size:var(--text-2xs);font-weight:400;color:var(--pf-text-soft)}.ds-mldg-sheet{position:absolute;left:0;right:0;bottom:0;max-height:86%;display:flex;flex-direction:column;background:var(--pf-surface);border-top:1px solid var(--pf-line);border-radius:var(--pf-radius-sharp-lg) var(--pf-radius-sharp-lg) 0 0;transform:translateY(103%);visibility:hidden;transition:transform .3s var(--pf-ease-exp),visibility 0s .3s}.ds-mldg-sheet.is-open{transform:translateY(var(--mldg-drop,0));visibility:visible;transition:transform .3s var(--pf-ease-exp),visibility 0s}.ds-mldg-sheet-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--pf-space-sm) var(--pf-space-sm) var(--pf-space-sm) 1.25rem;border-bottom:1px solid var(--pf-line-soft)}.ds-mldg-sheet-bar .ds-mldg-close,.ds-mldg-sheet-title{color:var(--pf-text-strong)}.ds-mldg-sheet-title{font-family:var(--pf-font-serif);font-variant-numeric:var(--pf-numeric-tabular);font-feature-settings:var(--pf-feature-tabular-serif);font-size:var(--text-index-head);font-weight:400;line-height:var(--pf-line-tight);letter-spacing:-.01em}.ds-mldg-sheet-body{padding:var(--pf-space-xxs) 1.25rem calc(var(--pf-space-xl) + env(safe-area-inset-bottom))}.ds-mldg-levels{display:grid;overflow:hidden}.ds-mldg-level0{grid-area:1/1;min-width:0;transform:translateX(0);opacity:1;transition:transform .28s var(--pf-ease-exp),opacity .28s var(--pf-ease-exp)}.ds-mldg-level0.is-under{transform:translateX(-24%);opacity:.3;pointer-events:none}.ds-mldg-level1{grid-area:1/1;min-width:0;background:var(--pf-surface);transform:translateX(103%);visibility:hidden;transition:transform .21s var(--pf-ease-exp),visibility 0s .21s}.ds-mldg-level1.is-open{transform:translateX(0);visibility:visible;transition:transform .28s var(--pf-ease-exp),visibility 0s}.ds-mldg-subrow{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--pf-space-md);padding:.875rem 0;background:transparent;border:none;border-bottom:1px solid var(--pf-line-soft);cursor:pointer;text-align:left}.ds-mldg-subrow-label{font-family:var(--pf-font-sans);font-size:var(--text-md);font-weight:500;line-height:var(--pf-line-tight);color:var(--pf-text-strong);transition:color .16s var(--pf-ease-exp)}.ds-mldg-subrow:active .ds-mldg-subrow-label{color:var(--pf-accent)}.ds-mldg-back{display:flex;width:100%;align-items:center;gap:var(--pf-space-sm);padding:.875rem 0;background:transparent;border:none;border-bottom:1px solid var(--pf-line);cursor:pointer;text-align:left}.ds-mldg-back-chevron{flex:none;color:var(--pf-text-strong);transform:rotate(180deg) translateX(6%)}.ds-mldg-back-label{font-family:var(--pf-font-sans);font-size:var(--text-md);font-weight:500;color:var(--pf-text-strong)}.ds-mldg-level1.is-open .ds-mldg-link-row{animation:ds-mldg-rise .24s var(--pf-ease-exp) both}.ds-mldg-level1.is-open .ds-mldg-link-row:first-child{animation-delay:60ms}.ds-mldg-level1.is-open .ds-mldg-link-row:nth-child(2){animation-delay:84ms}.ds-mldg-level1.is-open .ds-mldg-link-row:nth-child(3){animation-delay:108ms}.ds-mldg-level1.is-open .ds-mldg-link-row:nth-child(4){animation-delay:132ms}.ds-mldg-level1.is-open .ds-mldg-link-row:nth-child(5){animation-delay:156ms}.ds-mldg-level1.is-open .ds-mldg-link-row:nth-child(n+6){animation-delay:.18s}@keyframes ds-mldg-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ds-mldg-divider{margin-block:var(--pf-space-md);border-top:1px solid var(--pf-line-soft)}.ds-mldg-links{margin:0;padding:0;list-style:none}.ds-mldg-link-label{font-size:var(--text-compact);color:var(--pf-text-strong);transition:color .16s var(--pf-ease-exp)}.ds-mldg-link-desc,.ds-mldg-link-label{display:block;font-family:var(--pf-font-sans);font-weight:400;line-height:var(--pf-line-normal)}.ds-mldg-link-desc{margin-top:var(--pf-space-xxxs);font-size:var(--text-xs);color:var(--pf-text-soft)}@media (prefers-reduced-motion:reduce){.ds-mldg-panel{animation:none}.ds-mldg-level0,.ds-mldg-level1,.ds-mldg-level1.is-open,.ds-mldg-link-label,.ds-mldg-row-chevron,.ds-mldg-row-label,.ds-mldg-sheet,.ds-mldg-sheet.is-open,.ds-mldg-subrow-label{transition:none}.ds-mldg-level1.is-open .ds-mldg-link-row{animation:none}}.ds-header{position:fixed;top:0;right:0;left:0;z-index:40;border-bottom:1px solid transparent;background:var(--pf-surface);transform:translateY(0);transition:transform .26s cubic-bezier(.23,1,.32,1),background-color .22s cubic-bezier(.23,1,.32,1),border-color .22s cubic-bezier(.23,1,.32,1);will-change:transform}.ds-header--at-top{border-bottom-color:transparent;background:transparent}.ds-header--hidden{transform:translateY(-100%)}.ds-header:focus-within{border-bottom-color:transparent;background:var(--pf-surface);transform:translateY(0)}.ds-header--chat-app{display:none}@media (max-width:767.98px){.ds-header--chat-app{display:block}body:has(.pf-incognito-root) .ds-header--chat-app{display:none}}@media (min-width:768px){.ds-header,.ds-header--at-top,.ds-header:focus-within{background:var(--pf-bg);border-bottom-color:var(--pf-line)}}@media (prefers-reduced-motion:reduce){.ds-header{transition:none}.ds-header--hidden{transform:translateY(0)}}.ds-header-container{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:none;margin-left:0;margin-right:0;padding:.625rem clamp(1.5rem,4vw,3rem) .625rem 1.25rem;--pf-nav-corner:2px}@media (min-width:768px){.ds-header-container{height:4rem}}.ds-header-logo{display:flex;align-items:center;flex-shrink:0}@media (min-width:768px){.ds-header-logo.ds-header-logo--mobile-only{display:none}}.ds-logo-image{height:2rem;width:auto;mix-blend-mode:multiply}.ds-header-wordmark{display:none}@media (min-width:768px){.ds-header-logo{gap:.75rem}.ds-header-logo .ds-logo-image{height:2.125rem}.ds-header-wordmark{display:inline;font-family:var(--pf-font-sans);font-size:var(--text-wordmark);font-weight:400;line-height:var(--pf-line-extra-tight);letter-spacing:.15em;color:var(--pf-accent);text-transform:uppercase}}.ds-header-nav-wrapper{display:flex;align-items:center;gap:var(--pf-space-sm)}.ds-header-nav{display:none;align-items:center;gap:var(--pf-space-xl)}@media (min-width:768px){.ds-header-nav{display:flex}}.ds-topbar-link{display:inline-flex;align-items:center;gap:.375rem;padding:0;background:transparent;border:none;cursor:pointer;font-family:var(--pf-font-sans);font-size:var(--text-sm);font-weight:500;text-transform:uppercase;line-height:var(--pf-line-extra-tight);letter-spacing:.1em;color:var(--pf-text);text-decoration:none;transition:color .2s var(--pf-ease-exp)}.ds-topbar-link.is-active,.ds-topbar-link.is-open{color:var(--pf-accent)}body:has([data-pf-route-family=sourcing]) [data-pf-active-family=sourcing],body:has([data-pf-route-family=tools]) [data-pf-active-family=tools]{color:var(--pf-accent)}:root[data-pf-pointer-within=true] .ds-topbar-link:hover{color:var(--pf-accent)}.ds-topbar-link:focus{outline:none}.ds-topbar-link:focus-visible{color:var(--pf-accent)}.ds-topbar-chevron{position:relative;top:-1px;width:.5625rem;height:.5625rem;transition:transform .2s var(--pf-ease-exp)}.ds-topbar-link.is-open .ds-topbar-chevron{transform:rotate(180deg)}.ds-topbar-foxai{display:inline-flex;align-items:center;padding:.5625rem 1rem;border-radius:var(--pf-nav-corner);background:var(--pf-accent);color:var(--pf-bg);font-family:var(--pf-font-sans);font-size:var(--text-cta-pill);font-weight:500;line-height:var(--pf-line-extra-tight);letter-spacing:-.005em;text-decoration:none;transition:background-color .2s var(--pf-ease-exp),transform .12s var(--pf-ease-exp)}.ds-topbar-foxai:focus-visible,:root[data-pf-pointer-within=true] .ds-topbar-foxai:hover{background:var(--pf-accent-hover)}.ds-topbar-foxai:focus{outline:none}.ds-topbar-foxai:active{transform:scale(.98)}@media (prefers-reduced-motion:reduce){.ds-topbar-chevron,.ds-topbar-foxai,.ds-topbar-link{transition:none}}.ds-index-sheet{display:none;position:absolute;top:calc(100% + 1px);right:0;left:0;padding:2.25rem clamp(1.5rem,4vw,3rem) 2.75rem 1.25rem;background:var(--pf-bg);border-bottom:1px solid var(--pf-line);max-height:calc(100dvh - 4rem);overflow-y:auto;overscroll-behavior:contain;visibility:hidden;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .24s var(--pf-ease-exp),transform .24s var(--pf-ease-exp),visibility 0s linear .24s}@media (min-width:768px){.ds-index-sheet{display:block}}.ds-index-sheet.is-open{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity .24s var(--pf-ease-exp),transform .24s var(--pf-ease-exp),visibility 0s}@media (prefers-reduced-motion:reduce){.ds-index-sheet{transition:none}}.ds-index-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr}.ds-index-family{min-width:0;padding:0 2rem;border-left:1px solid var(--pf-line-soft)}.ds-index-family:first-child{padding-left:0;border-left:none}.ds-index-family:last-child{padding-right:0}.ds-index-family-head{display:flex;align-items:baseline;gap:.625rem;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid var(--pf-line);font-family:var(--pf-font-serif);font-feature-settings:var(--pf-feature-tabular-serif);font-variant-numeric:var(--pf-numeric-tabular);font-size:var(--text-index-head);font-weight:400;line-height:1.15;letter-spacing:-.008em}.ds-index-family-head--stacked{margin-top:1.875rem}.ds-index-num{color:var(--pf-accent)}.ds-index-name{color:var(--pf-text-strong)}.ds-index-family-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:2rem}.ds-index-family-cols>div{min-width:0}.ds-index-cluster{margin-bottom:1.375rem}.ds-index-cluster:last-child{margin-bottom:0}.ds-index-cluster-label{margin-bottom:.5625rem;font-family:var(--pf-font-sans);font-size:var(--text-index-label);font-weight:500;line-height:var(--pf-line-tight);letter-spacing:0;color:var(--pf-text-soft)}.ds-index-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4375rem}.ds-index-link{display:block;font-family:var(--pf-font-sans);font-size:var(--text-sm);font-weight:400;line-height:var(--pf-line-normal);letter-spacing:-.005em;color:var(--pf-text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s var(--pf-ease-exp)}.ds-index-link:focus-visible,:root[data-pf-pointer-within=true] .ds-index-link:hover{color:var(--pf-accent)}.ds-index-link--view-all{margin-top:.25rem;color:var(--pf-accent);font-weight:500}@media (prefers-reduced-motion:reduce){.ds-index-link{transition:none}}.ds-footer{border-top:1px solid var(--pf-line);background:var(--pf-surface)}.ds-footer-container{margin:0 auto;max-width:64rem;padding:2.5rem 1rem 3rem;text-align:center}.ds-footer-links{margin-bottom:1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:1.5rem;row-gap:.5rem}.ds-footer-link{font-size:var(--text-md);color:var(--pf-text-soft);text-decoration:none;transition:color var(--pf-motion-fast)}.ds-footer-link:hover{color:var(--pf-text-strong)}.ds-footer-disclaimer{font-size:var(--text-sm);color:var(--pf-text-soft)}.pf-popup-anchor{position:relative}.pf-popup-content{position:absolute;background:var(--pf-surface);border:1px solid var(--pf-line-soft);border-radius:var(--pf-radius-card);box-shadow:var(--pf-shadow-hover);z-index:var(--pf-z-popup);padding:var(--pf-space-md) var(--pf-space-lg);min-width:240px;max-width:320px;animation:pf-popup-in .2s var(--pf-ease-out-soft)}@keyframes pf-popup-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){@keyframes pf-popup-in{0%{opacity:0}to{opacity:1}}}.ui-page-section{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width:768px){.ui-page-section{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.ui-page-section{padding-left:2rem;padding-right:2rem}}.ui-page-section--default{max-width:64rem}.ui-page-section--narrow{max-width:48rem}.ui-page-section--wide{max-width:80rem}.ui-page-section--full{max-width:none}.ui-page-section--space-none{padding-top:0;padding-bottom:0}.ui-page-section--space-sm{padding-top:1rem;padding-bottom:1rem}.ui-page-section--space-md{padding-top:2rem;padding-bottom:2rem}.ui-page-section--space-lg{padding-top:3rem;padding-bottom:3rem}.ui-page-section--space-xl{padding-top:4rem;padding-bottom:4rem}@media (min-width:768px){.ui-page-section--space-sm{padding-top:1.5rem;padding-bottom:1.5rem}.ui-page-section--space-md{padding-top:3rem;padding-bottom:3rem}.ui-page-section--space-lg{padding-top:4rem;padding-bottom:4rem}.ui-page-section--space-xl{padding-top:6rem;padding-bottom:6rem}}.ui-app-store-badge{display:inline-block;border-radius:var(--pf-radius-lg)}.ui-app-store-badge-image{width:auto}.ui-app-store-badge-image-default{height:2rem}.ui-app-store-badge-image-large{height:2.5rem}.ui-app-store-promotion{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--pf-space-sm) var(--pf-space-md);margin-top:var(--pf-space-xl);color:var(--pf-text-soft);font-family:var(--pf-font-sans)}.ui-app-store-promotion__rating{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:var(--pf-space-xs);margin:0;font-size:var(--text-xs);font-weight:500;line-height:var(--pf-line-normal)}.ui-app-store-promotion__stars{color:var(--pf-accent-ink);letter-spacing:.1em;line-height:1}.ui-back-to-top{position:fixed;right:1.5rem;bottom:1.5rem;z-index:50;display:flex;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;border-radius:999px;background:var(--pf-text-strong);color:var(--pf-text-inverse);box-shadow:var(--pf-shadow-modal);transition:background-color var(--pf-motion-fast)}.ui-back-to-top:hover{background:var(--pf-accent-hover)}.ui-back-to-top-icon{width:1.25rem;height:1.25rem}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;border-radius:var(--pf-radius-md);border:1px solid transparent;font-size:var(--text-sm);font-weight:500;line-height:1;transition:background-color var(--pf-motion-fast),border-color var(--pf-motion-fast),color var(--pf-motion-fast),opacity var(--pf-motion-fast)}.ui-button:focus-visible{outline:2px solid var(--pf-accent);outline-offset:2px}.ui-button:disabled{pointer-events:none;opacity:.5}.ui-button svg{width:1rem;height:1rem;flex-shrink:0;pointer-events:none}.ui-button--default{background-color:var(--pf-accent);color:var(--pf-surface)}.ui-button--default:hover{background-color:var(--pf-accent-hover)}.ui-button--destructive{background-color:var(--pf-error);color:var(--pf-surface)}.ui-button--outline{border-color:var(--pf-line);background-color:var(--pf-surface);color:var(--pf-text-strong)}.ui-button--ghost:hover,.ui-button--outline:hover,.ui-button--secondary:hover{background-color:var(--pf-accent-light);color:var(--pf-accent-hover)}.ui-button--secondary{background-color:var(--pf-bg);color:var(--pf-text-strong)}.ui-button--ghost{background-color:initial;color:var(--pf-text-strong)}.ui-button--link{background-color:initial;color:var(--pf-accent);text-underline-offset:4px}.ui-button--link:hover{text-decoration:underline}.ui-button--size-default{height:2.5rem;padding:.5rem 1rem}.ui-button--size-sm{height:2.25rem;padding:0 .75rem}.ui-button--size-lg{height:2.75rem;padding:0 2rem}.ui-button--size-icon{width:2.5rem;height:2.5rem;padding:0}.ui-badge{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid transparent;border-radius:var(--pf-radius-pill);font-size:var(--text-2xs);line-height:1.35;transition:background-color var(--pf-motion-fast),color var(--pf-motion-fast)}.ui-badge:focus-visible{outline:2px solid var(--pf-accent);outline-offset:2px}.ui-badge--default,.ui-badge--info{background-color:var(--pf-accent-light);color:var(--pf-accent-hover)}.ui-badge--outline,.ui-badge--secondary{background-color:var(--pf-bg);color:var(--pf-text)}.ui-badge--destructive{background-color:var(--pf-error-tint);color:var(--pf-error)}.ui-badge--success{background-color:var(--pf-success-tint);color:var(--pf-success)}.ui-badge--warning{background-color:var(--pf-warning-tint);color:var(--pf-warning)}.ui-badge--indigo,.ui-badge--purple,.ui-badge--sky,.ui-badge--violet{background-color:var(--pf-accent-light);color:var(--pf-accent-hover)}.ui-card{border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-surface);color:var(--pf-text)}.ui-card--interactive{cursor:pointer}.ui-card--outline{border-width:2px}.ui-card--selected{border-color:var(--pf-accent);background:var(--pf-accent-light)}.ui-card--pad-none{padding:0}.ui-card--pad-sm{padding:1rem}.ui-card--pad-md,.ui-card-header{padding:1.5rem}.ui-card--pad-lg{padding:2rem}.ui-card-header{display:flex;flex-direction:column;gap:.375rem}.ui-card-title{line-height:1;letter-spacing:-.01em}.ui-card-description{color:var(--pf-text-soft);font-size:var(--text-sm)}.ui-card-content,.ui-card-footer{padding:0 1.5rem 1.5rem}.ui-card-footer{display:flex;align-items:center}.ui-input{display:flex;width:100%;min-width:0;height:2.25rem;padding:.25rem .75rem;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:transparent;color:var(--pf-text-strong);font-size:var(--text-md);outline:none;transition:border-color var(--pf-motion-fast),box-shadow var(--pf-motion-fast)}.ui-input::placeholder{color:var(--pf-text-soft)}.ui-input:focus-visible{border-color:var(--pf-accent);box-shadow:0 0 0 2px color-mix(in oklch,var(--pf-accent) 18%,transparent)}.ui-input[aria-invalid=true]{border-color:var(--pf-error)}.ui-input:disabled{cursor:not-allowed;opacity:.5}.ui-alert-dialog-overlay,.ui-dialog-overlay{position:fixed;inset:0;z-index:50;background:var(--pf-scrim)}.ui-alert-dialog-content,.ui-dialog-content{position:fixed;left:50%;top:50%;z-index:50;display:grid;width:100%;max-width:32rem;gap:1rem;padding:1.5rem;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-surface);transform:translate(-50%,-50%)}.ui-dialog-close{position:absolute;right:1rem;top:1rem;padding:0;border:0;border-radius:var(--pf-radius-sm);background:transparent;color:var(--pf-text-soft);opacity:.7;transition:opacity var(--pf-motion-fast)}.ui-dialog-close:focus-visible,.ui-dialog-close:hover{opacity:1}.ui-dialog-close:focus-visible{outline:2px solid var(--pf-accent);outline-offset:2px}.ui-dialog-close-icon{width:1rem;height:1rem}.ui-alert-dialog-header,.ui-dialog-header{display:flex;flex-direction:column;gap:.375rem;text-align:center}.ui-alert-dialog-footer,.ui-dialog-footer{display:flex;flex-direction:column-reverse;gap:var(--pf-space-xs)}.ui-alert-dialog-title,.ui-dialog-title{color:var(--pf-text-strong);font-size:var(--text-lg);line-height:1.1;letter-spacing:-.01em}.ui-alert-dialog-description,.ui-dialog-description{color:var(--pf-text-soft);font-size:var(--text-sm)}.ui-alert-dialog-cancel{margin-top:var(--pf-space-xs)}@media (min-width:640px){.ui-alert-dialog-header,.ui-dialog-header{text-align:left}.ui-alert-dialog-footer,.ui-dialog-footer{flex-direction:row;justify-content:flex-end}.ui-alert-dialog-cancel{margin-top:0}}.ui-confirm-dialog__head{display:flex;align-items:center;gap:var(--pf-space-sm)}.ui-confirm-dialog__icon-wrap{display:inline-flex;align-items:center;justify-content:center;padding:var(--pf-space-xs);border-radius:var(--pf-radius-pill)}.ui-confirm-dialog__icon-wrap--danger{background:var(--pf-error-tint)}.ui-confirm-dialog__icon-wrap--warning{background:var(--pf-warning-tint)}.ui-confirm-dialog__icon-wrap--info{background:var(--pf-accent-light)}.ui-confirm-dialog__icon{width:1.25rem;height:1.25rem}.ui-confirm-dialog__icon--danger{color:var(--pf-error)}.ui-confirm-dialog__icon--warning{color:var(--pf-warning)}.ui-confirm-dialog__icon--info{color:var(--pf-accent)}.ui-confirm-dialog__description,.ui-confirm-dialog__error{padding-top:var(--pf-space-xs)}.ui-confirm-dialog__error{margin:0;color:var(--pf-error);font-size:var(--text-sm)}.ui-confirm-dialog__action{color:var(--pf-surface)}.ui-confirm-dialog__action--danger{background:var(--pf-error)}.ui-confirm-dialog__action--warning{background:var(--pf-warning)}.ui-confirm-dialog__action--info{background:var(--pf-accent)}.ui-dropdown-content{z-index:50;min-width:8rem;padding:.25rem;overflow:hidden;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-surface);color:var(--pf-text-strong)}.ui-dropdown-check-item,.ui-dropdown-item,.ui-dropdown-label,.ui-dropdown-sub-trigger{font-size:var(--text-sm)}.ui-dropdown-check-item,.ui-dropdown-item,.ui-dropdown-sub-trigger{position:relative;display:flex;align-items:center;min-height:2rem;padding:.375rem .5rem;border-radius:var(--pf-radius-sm);outline:none;cursor:default;user-select:none;transition:background-color var(--pf-motion-fast)}.ui-dropdown-check-item,.ui-dropdown-item--inset{padding-left:2rem}.ui-dropdown-check-item:focus,.ui-dropdown-check-item:hover,.ui-dropdown-item:focus,.ui-dropdown-sub-trigger:focus,.ui-dropdown-sub-trigger[data-state=open]{background:var(--pf-bg);color:var(--pf-accent-hover)}.ui-dropdown-check-item[data-disabled],.ui-dropdown-item[data-disabled],.ui-dropdown-sub-trigger[data-disabled]{pointer-events:none;opacity:.5}.ui-dropdown-chevron,.ui-dropdown-shortcut{margin-left:auto}.ui-dropdown-check-icon,.ui-dropdown-chevron{width:1rem;height:1rem}.ui-dropdown-radio-icon{width:.5rem;height:.5rem;fill:currentColor}.ui-dropdown-item-indicator{position:absolute;left:.5rem;display:flex;width:.875rem;height:.875rem;align-items:center;justify-content:center}.ui-dropdown-label{padding:.375rem .5rem}.ui-dropdown-separator{height:1px;margin:.25rem -.25rem;background:var(--pf-line-soft)}.ui-dropdown-shortcut{font-size:var(--text-2xs);letter-spacing:.08em;opacity:.6}.ui-select-trigger{display:flex;width:100%;height:2.5rem;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-surface);color:var(--pf-text-strong);font-size:var(--text-sm)}.ui-select-trigger:focus-visible{outline:2px solid var(--pf-accent);outline-offset:2px}.ui-select-trigger:disabled{cursor:not-allowed;opacity:.5}.ui-select-trigger>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.ui-select-item-check,.ui-select-scroll-icon,.ui-select-trigger__icon{width:1rem;height:1rem}.ui-select-trigger__icon{opacity:.5}.ui-select-scroll-button{display:flex;align-items:center;justify-content:center;padding-block:.25rem;cursor:default}.ui-select-content{position:relative;z-index:50;max-height:24rem;min-width:8rem;overflow:hidden;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-surface);color:var(--pf-text-strong)}.ui-select-content[data-state=closed]{display:none}.ui-select-content--popper[data-side=bottom]{transform:translateY(.25rem)}.ui-select-content--popper[data-side=left]{transform:translateX(-.25rem)}.ui-select-content--popper[data-side=right]{transform:translateX(.25rem)}.ui-select-content--popper[data-side=top]{transform:translateY(-.25rem)}.ui-select-viewport{padding:.25rem}.ui-select-viewport--popper{width:100%;height:var(--radix-select-trigger-height);min-width:var(--radix-select-trigger-width)}.ui-select-item,.ui-select-label{padding:.375rem .5rem .375rem 2rem;font-size:var(--text-sm)}.ui-select-item{position:relative;display:flex;width:100%;align-items:center;border-radius:var(--pf-radius-sm);outline:none;cursor:default;user-select:none}.ui-select-item:focus,.ui-select-item:hover{background:var(--pf-accent-light);color:var(--pf-accent-hover)}.ui-select-item[data-disabled]{pointer-events:none;opacity:.5}.ui-select-item-indicator{position:absolute;left:.5rem;display:flex;width:.875rem;height:.875rem;align-items:center;justify-content:center}.ui-select-separator{height:1px;margin:.25rem -.25rem;background:var(--pf-line-soft)}.ui-toast-viewport{position:fixed;top:0;z-index:var(--pf-z-toast,100);display:flex;width:100%;max-height:100vh;flex-direction:column-reverse;padding:1rem}@media (min-width:640px){.ui-toast-viewport{right:0;bottom:0;top:auto;flex-direction:column}}@media (min-width:768px){.ui-toast-viewport{max-width:420px}}.ui-toast{pointer-events:auto;position:relative;display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;overflow:hidden;padding:1.5rem 2rem 1.5rem 1.5rem;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-surface);color:var(--pf-text);transition:transform var(--pf-motion-fast),opacity var(--pf-motion-fast)}.ui-toast--destructive{border-color:var(--pf-error);background:var(--pf-error-tint);color:var(--pf-error)}.ui-toast-action{display:inline-flex;height:2rem;flex-shrink:0;align-items:center;justify-content:center;padding-inline:.75rem;border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);background:transparent;color:var(--pf-text-strong);font-size:var(--text-sm);font-weight:500}.ui-toast-action:hover{background:var(--pf-bg)}.ui-toast-close{position:absolute;right:.5rem;top:.5rem;padding:.25rem;border:0;border-radius:var(--pf-radius-md);background:transparent;color:var(--pf-text-soft);opacity:0;transition:opacity var(--pf-motion-fast)}.ui-toast-close:focus-visible,.ui-toast:hover .ui-toast-close{opacity:1}.ui-toast-close__icon{width:1rem;height:1rem}.ui-toast-description,.ui-toast-title{font-size:var(--text-sm)}.ui-toast-description{opacity:.9}.ui-toast-copy{display:grid;gap:.25rem}.ui-slider{position:relative;display:flex;width:100%;touch-action:none;align-items:center;user-select:none}.ui-slider[data-disabled]{opacity:.5}.ui-slider[data-orientation=vertical]{width:auto;min-height:11rem;height:100%;flex-direction:column}.ui-slider-track{position:relative;flex-grow:1;overflow:hidden;border-radius:var(--pf-radius-pill);background:var(--pf-line-soft)}.ui-slider-track[data-orientation=horizontal]{width:100%;height:.5rem}.ui-slider-track[data-orientation=vertical]{width:.375rem;height:100%}.ui-slider-range{position:absolute;background:var(--pf-accent)}.ui-slider-range[data-orientation=horizontal]{height:100%}.ui-slider-range[data-orientation=vertical]{width:100%}.ui-slider-thumb{display:block;width:1rem;height:1rem;flex-shrink:0;border:1px solid var(--pf-accent);border-radius:var(--pf-radius-pill);background:var(--pf-surface);transition:box-shadow var(--pf-motion-fast)}.ui-slider-thumb:focus-visible,.ui-slider-thumb:hover{outline:none;box-shadow:0 0 0 4px color-mix(in oklch,var(--pf-accent) 16%,transparent)}.ui-slider-thumb:disabled{pointer-events:none;opacity:.5}.ui-label{display:flex;align-items:center;gap:var(--pf-space-xs);color:var(--pf-text-strong);font-size:var(--text-sm);font-weight:500;line-height:1;user-select:none}.ui-label:has(+[disabled]),.ui-label[data-disabled=true]{pointer-events:none;opacity:.5}.recon-card{display:flex;flex-direction:column;gap:1.5rem}.recon-content-width{margin-inline:auto;width:100%;max-width:64rem}.tools-main{min-height:100vh;background:var(--pf-bg)}.recon-card__title{margin:0;font-size:var(--text-lg);font-weight:500;color:var(--pf-text-strong)}.recon-card__grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:768px){.recon-card__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}}.recon-card__grid--results{gap:1.5rem}@media (min-width:768px){.recon-card__grid--results{gap:2rem}}.recon-result{display:flex;flex-direction:column;gap:.5rem}.recon-result.is-muted{opacity:.5}.recon-result__head{display:flex;flex-direction:column;gap:.125rem}.recon-result__title{font-size:var(--text-md);letter-spacing:var(--pf-tracking-label);text-transform:uppercase;color:var(--pf-accent)}.recon-result__subtitle{font-size:var(--text-sm);line-height:var(--pf-line-tight);color:var(--pf-text-soft)}.recon-card__links,.recon-card__results,.recon-card__stack,.recon-result__stack{display:flex;flex-direction:column}.recon-result__stack{gap:.5rem}.recon-result__box{border:2px solid var(--pf-accent);border-radius:var(--pf-radius-card);padding:.75rem}@media (min-width:768px){.recon-result__box{padding:.625rem 1rem}}.recon-card__stat,.recon-result__row,.recon-result__value{display:flex;align-items:baseline}.recon-result__row{justify-content:space-between}.recon-card__stat-label,.recon-result__label{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--pf-tracking-label);text-transform:uppercase;color:var(--pf-text-soft)}@media (min-width:640px){.recon-card__stat-label,.recon-result__label{font-size:var(--text-2xs)}}.recon-result__value{gap:.25rem}.recon-result__number{font-size:var(--text-xl);font-weight:400;color:var(--pf-text-strong)}@media (min-width:640px){.recon-result__number{font-size:var(--text-result-2xs)}}.recon-result__number--placeholder{color:var(--pf-text-soft)}.recon-result__number--accent,.recon-result__unit{color:var(--pf-accent)}.recon-result__unit{font-size:var(--text-md);font-weight:500}.recon-result__meta{font-size:var(--text-md);color:var(--pf-text-soft)}.recon-card__stack,.recon-card__stack--balanced{gap:1rem}@media (min-width:768px){.recon-card__stack--balanced{justify-content:space-between;padding-bottom:1.75rem}}.recon-card__stat{gap:.5rem}.recon-card__stat-value{font-size:var(--text-xl);font-weight:500;color:var(--pf-text-strong)}.recon-card__links{gap:.5rem}.recon-card__results{gap:1rem}.recon-input-group{display:flex;flex-direction:column;gap:.375rem}.recon-input-label{font-size:var(--text-sm);font-weight:500;color:var(--pf-text-soft)}.recon-input-wrapper{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;min-height:52px;border:1.5px solid var(--pf-line);border-radius:var(--pf-radius-md);background:var(--pf-bg);transition:border-color .12s ease,box-shadow .12s ease}.recon-input-wrapper:focus-within{border-color:var(--pf-accent);box-shadow:0 0 0 1px var(--pf-accent)}.recon-input{flex:1;min-width:0;padding:0;border:0;background:transparent;font-size:var(--text-lg);color:var(--pf-text-strong);line-height:var(--pf-line-normal);outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.recon-input{font-size:var(--text-md)}}.recon-input::placeholder{color:var(--pf-text-soft)}.recon-input:focus{outline:2px solid transparent;outline-offset:2px}.recon-input-wrapper--vial{border-color:var(--pf-accent)}.recon-input-wrapper--vial:focus-within{border-color:var(--pf-accent);box-shadow:0 0 0 1px var(--pf-accent)}.recon-input-wrapper--dose{border-color:var(--pf-accent-mid)}.recon-input-wrapper--dose:focus-within{border-color:var(--pf-accent-mid);box-shadow:0 0 0 1px var(--pf-accent-mid)}.recon-input-wrapper:has(.recon-input--vial){border-color:var(--pf-accent)}.recon-input-wrapper:has(.recon-input--vial):focus-within{box-shadow:0 0 0 1px var(--pf-accent)}.recon-input-wrapper:has(.recon-input--dose){border-color:var(--pf-accent-mid)}.recon-input-wrapper:has(.recon-input--dose):focus-within{box-shadow:0 0 0 1px var(--pf-accent-mid)}.recon-input-suffix{flex:0 0 auto;font-size:var(--text-sm);font-weight:500;color:var(--pf-text-soft);white-space:nowrap;padding-left:.25rem}.recon-input::-webkit-inner-spin-button,.recon-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.recon-input[type=number]{-moz-appearance:textfield;appearance:textfield}.recon-input-unit-control{position:relative;flex:0 0 auto;margin-left:.25rem}.recon-input-unit{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-sm);font-weight:500;color:var(--pf-text-soft);white-space:nowrap;border:0;background:transparent;padding:.125rem .25rem;cursor:pointer;border-radius:var(--pf-radius-sm);transition:color var(--pf-motion-fast)}.recon-input-unit:hover{color:var(--pf-text-strong)}.recon-input-unit:focus-visible{outline:2px solid var(--pf-accent);outline-offset:1px}.recon-input-unit__chevron{width:.75rem;height:.75rem;flex:0 0 auto;opacity:.7}.recon-input-unit-menu{position:absolute;top:calc(100% + .375rem);right:0;z-index:30;min-width:4.5rem;margin:0;padding:.25rem;list-style:none;background:var(--pf-surface);border:1px solid var(--pf-line);border-radius:var(--pf-radius-md);box-shadow:var(--pf-shadow-elevation)}.recon-input-unit-option{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.375rem .5rem;border:0;background:transparent;border-radius:var(--pf-radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--pf-text-strong);text-align:left;cursor:pointer;transition:background-color var(--pf-motion-fast)}.recon-input-unit-option:hover{background:var(--pf-bg)}.recon-input-unit-option--active{color:var(--pf-accent)}.recon-input-unit-option__check{width:.875rem;height:.875rem;flex:0 0 auto}.recon-presets{display:flex;flex-wrap:wrap;gap:.375rem}.recon-preset-chip{padding:.25rem .875rem;border:1px solid transparent;border-radius:var(--pf-radius-pill);background:var(--pf-soft);font-family:var(--pf-font-sans);font-size:var(--text-xs);color:var(--pf-text);white-space:nowrap;cursor:pointer;transition:background-color var(--pf-motion-fast),border-color var(--pf-motion-fast),color var(--pf-motion-fast)}.recon-preset-chip:hover{color:var(--pf-text-strong)}.recon-preset-chip--active,.recon-preset-chip--dose.recon-preset-chip--active,.recon-preset-chip--vial.recon-preset-chip--active{background:var(--pf-surface);border-color:var(--pf-accent);color:var(--pf-accent);font-weight:400}.recon-error{font-size:var(--text-sm);color:var(--pf-error);font-weight:500}.recon-link{color:var(--pf-accent);text-decoration:none}.recon-link:hover{text-decoration:underline}.recon-cross-link{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border:1px solid var(--pf-line);border-radius:var(--pf-radius-pill);font-size:var(--text-sm);color:var(--pf-text-soft);text-decoration:none;transition:border-color var(--pf-motion-fast),color var(--pf-motion-fast)}.recon-cross-link:hover{border-color:var(--pf-accent);color:var(--pf-accent)}.recon-input-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:start}@container foxai-wizard (max-width: 480px){.recon-input-row{grid-template-columns:1fr}}