/* Load after tokens.css. All component rules stay within .fpds. */
.fpds, .fpds * { box-sizing: border-box; }
.fpds { margin: 0; overflow-wrap: anywhere; }
.fpds [hidden] { display: none !important; }
.fpds :where(h1,h2,h3,p,ul,ol,dl,figure) { margin-block: 0 1rem; }
.fpds :where(h1,h2,h3) { line-height: 1.5; }
.fpds h1 { font-size: clamp(2rem, 4.5vw, 3.5rem); letter-spacing: -.02em; }
.fpds h2 { font-size: var(--fp-text-heading); }
.fpds h3 { font-size: 1.25rem; }
.fpds a { color: var(--fp-action-hover); text-underline-offset: .2em; }
.fpds a:hover { text-decoration-thickness: .15em; }
.fpds :where(button,input,select,textarea) { font: inherit; }
.fpds :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible,
.fpds .fp-focus-example {
  outline: 4px solid var(--fp-focus-black);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--fp-focus-yellow);
}
.fpds :where([id]) { scroll-margin-top: 1rem; }
.fpds .fp-skip { position: absolute; left: 1rem; top: -10rem; padding: 1rem; background: #fff; z-index: 20; }
.fpds .fp-skip:focus { top: 1rem; }
.fpds .fp-wrap { width: min(100% - 4rem, var(--fp-container)); margin-inline: auto; }
.fpds .fp-header { border-block-end: 1px solid var(--fp-divider); }
.fpds .fp-header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; }
.fpds .fp-brand { display: inline-flex; gap: .65rem; align-items: center; color: var(--fp-text); font-family: var(--fp-font-display); font-weight: 700; text-decoration: none; }
.fpds .fp-brand-mark { width: .8rem; height: 1.5rem; background: var(--fp-brand-blue); border-inline-end: .3rem solid var(--fp-brand-lime); transform: skew(-12deg); }
.fpds .fp-small { font-size: var(--fp-text-small); }
.fpds .fp-muted { color: var(--fp-text-muted); }
.fpds .fp-eyebrow { color: var(--fp-action-hover); font-size: .875rem; font-weight: 700; letter-spacing: .07em; }
.fpds .fp-intro { padding-block: var(--fp-space-16) var(--fp-space-8); }
.fpds .fp-intro p { max-width: var(--fp-content); }
.fpds .fp-lead { font-size: var(--fp-text-lead); }
.fpds .fp-nav { display: flex; flex-wrap: wrap; gap: .5rem; padding-block: 1rem; border-block: 1px solid var(--fp-divider); }
.fpds .fp-nav a { min-height: var(--fp-control-compact); display: inline-flex; align-items: center; padding: .5rem 1rem; border-radius: var(--fp-radius-control); background: var(--fp-surface-subtle); }
.fpds .fp-section { padding-block: var(--fp-space-12); border-block-end: 1px solid var(--fp-divider); }
.fpds .fp-section-heading { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: baseline; margin-block-end: 1rem; }
.fpds .fp-section-heading h2 { margin: 0; }
.fpds .fp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.fpds .fp-grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.fpds .fp-card { min-width: 0; border: 1px solid var(--fp-divider); border-radius: var(--fp-radius-card); padding: 1.5rem; background: var(--fp-surface); }
.fpds .fp-card h3 { margin-block-end: .5rem; }
.fpds .fp-card-number { display: block; color: var(--fp-action-hover); font-family: var(--fp-font-mono); font-size: .875rem; margin-block-end: 1.5rem; }
.fpds .fp-card p:last-child { margin-block-end: 0; }
.fpds .fp-tag { display: inline-flex; align-items: center; min-height: 1.75rem; padding: .1rem .55rem; border-radius: .25rem; font-size: .875rem; background: var(--fp-surface-subtle); color: var(--fp-text-muted); }
.fpds .fp-tag-brand { background: var(--fp-brand-lime); color: var(--fp-text); }
.fpds .fp-swatch { min-height: 4.5rem; border-radius: .5rem; border: 1px solid var(--fp-border); margin-block-end: .75rem; padding: .75rem; display: flex; align-items: end; }
.fpds .fp-swatch-blue { background: var(--fp-brand-blue); color: white; }
.fpds .fp-swatch-lime { background: var(--fp-brand-lime); color: var(--fp-text); }
.fpds .fp-swatch-text { background: var(--fp-text); color: white; }
.fpds .fp-swatch-surface { background: var(--fp-surface-subtle); }
.fpds code { font-family: var(--fp-font-mono); font-size: .875em; overflow-wrap: anywhere; }
.fpds .fp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.fpds .fp-button {
  display: inline-flex; justify-content: center; align-items: center; gap: .5rem;
  min-height: var(--fp-control-m); min-width: min(6rem, 100%); max-width: 100%; padding: .625rem 1.25rem;
  border: 2px solid var(--fp-action); border-radius: var(--fp-radius-control);
  background: var(--fp-action); color: var(--fp-on-action); font-weight: 700; line-height: 1.5;
  text-decoration: none; cursor: pointer;
  transition: background-color var(--fp-motion-fast), border-color var(--fp-motion-fast);
}
.fpds .fp-button:hover { background: var(--fp-action-hover); border-color: var(--fp-action-hover); text-decoration: underline; text-underline-offset: .2em; }
.fpds .fp-button:active { background: var(--fp-action-active); border-color: var(--fp-action-active); text-decoration: underline; text-underline-offset: .2em; }
.fpds .fp-button-secondary { color: var(--fp-action-hover); background: var(--fp-surface); border-color: var(--fp-action-hover); }
.fpds .fp-button-secondary:hover { color: var(--fp-action-active); background: #eaf1ff; border-color: var(--fp-action-active); }
.fpds .fp-button-secondary:active { background: #d6e4ff; }
.fpds .fp-button-tertiary { background: transparent; color: var(--fp-action-hover); border-color: transparent; text-decoration: underline; }
.fpds .fp-button-tertiary:hover { background: #eaf1ff; color: var(--fp-action-active); border-color: transparent; text-decoration: underline; }
.fpds .fp-button-tertiary:active { background: #d6e4ff; color: var(--fp-action-active); border-color: transparent; text-decoration: underline; }
.fpds .fp-button-large { min-height: var(--fp-control-l); min-width: min(8.5rem, 100%); }
.fpds .fp-button-compact { min-height: var(--fp-control-compact); }
.fpds .fp-button:disabled, .fpds .fp-button:disabled:hover { background: var(--fp-disabled-bg); color: var(--fp-disabled-text); border-color: var(--fp-border); cursor: not-allowed; text-decoration: none; }
.fpds .fp-state-row { display: flex; flex-wrap: wrap; gap: 1.5rem; padding-block: 1rem; }
.fpds .fp-state-item { display: grid; gap: .5rem; align-content: start; }
.fpds .fp-state-hover { background: var(--fp-action-hover); border-color: var(--fp-action-hover); text-decoration: underline; text-underline-offset: .2em; }
.fpds .fp-state-active { background: var(--fp-action-active); border-color: var(--fp-action-active); text-decoration: underline; text-underline-offset: .2em; }
.fpds .fp-state-sample { cursor: default; }
.fpds .fp-form { max-width: var(--fp-content); }
.fpds .fp-field { margin-block-end: 1.5rem; }
.fpds .fp-label { display: block; font-weight: 700; margin-block-end: .4rem; }
.fpds .fp-hint { color: var(--fp-text-muted); font-size: .875rem; margin-block: .25rem .5rem; }
.fpds .fp-input { width: 100%; min-height: var(--fp-control-m); padding: .65rem .85rem; border: 1px solid var(--fp-border); border-radius: var(--fp-radius-control); background: var(--fp-surface); color: var(--fp-text); }
.fpds textarea.fp-input { min-height: 8rem; resize: vertical; }
.fpds .fp-input[aria-invalid="true"] { border: 2px solid var(--fp-error); }
.fpds .fp-input:disabled { background: var(--fp-disabled-bg); color: var(--fp-disabled-text); }
.fpds .fp-error { color: var(--fp-error); font-weight: 700; margin-block: .4rem 0; }
.fpds .fp-checkbox-label { display: flex; align-items: center; gap: .75rem; min-height: var(--fp-control-compact); cursor: pointer; }
.fpds .fp-checkbox-label input { width: 1.5rem; height: 1.5rem; margin: 0; accent-color: var(--fp-action); flex: 0 0 auto; }
.fpds .fp-error-summary { border: 2px solid var(--fp-error); border-radius: var(--fp-radius-control); padding: 1.25rem; margin-block-end: 1.5rem; }
.fpds .fp-error-summary h3 { color: var(--fp-error); }
.fpds .fp-error-summary:focus { outline: 4px solid var(--fp-focus-black); outline-offset: 2px; box-shadow: 0 0 0 2px var(--fp-focus-yellow); }
.fpds .fp-notice { display: flex; align-items: start; gap: .75rem; padding: 1rem; margin-block-end: 1rem; border: 1px solid var(--fp-border); border-inline-start: 5px solid var(--fp-action-hover); border-radius: .5rem; background: var(--fp-surface); }
.fpds .fp-notice p { margin: 0; }
.fpds .fp-notice-success { border-inline-start-color: var(--fp-success); }
.fpds .fp-notice-warning { border-inline-start-color: var(--fp-warning); }
.fpds .fp-notice-error { border-inline-start-color: var(--fp-error); }
.fpds .fp-notice-symbol { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--fp-action-hover); color: white; flex: 0 0 auto; font-weight: 700; line-height: 1; }
.fpds .fp-notice-success .fp-notice-symbol { background: var(--fp-success); }
.fpds .fp-notice-warning .fp-notice-symbol { background: var(--fp-warning); }
.fpds .fp-notice-error .fp-notice-symbol { background: var(--fp-error); }
.fpds .fp-table-region { overflow-x: auto; border: 1px solid var(--fp-border); border-radius: .5rem; }
.fpds .fp-table { border-collapse: collapse; width: 100%; text-align: left; }
.fpds .fp-table caption { padding: 1rem; text-align: left; font-weight: 700; background: var(--fp-surface); }
.fpds .fp-table th, .fpds .fp-table td { padding: 1rem; border-block-start: 1px solid var(--fp-divider); vertical-align: top; }
.fpds .fp-table thead { background: var(--fp-surface-subtle); }
.fpds .fp-table th { font-weight: 700; }
.fpds .fp-status { display: inline-block; padding: .15rem .5rem; border: 1px solid currentColor; border-radius: .25rem; font-size: .875rem; white-space: nowrap; }
.fpds .fp-status-success { color: var(--fp-success); }
.fpds .fp-status-progress { color: var(--fp-action-hover); }
.fpds .fp-status-wait { color: var(--fp-text-muted); }
.fpds .fp-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin-block-end: 1rem; }
.fpds .fp-toolbar .fp-field { margin: 0; flex: 1 1 14rem; max-width: 26rem; }
.fpds .fp-lp { border: 1px solid var(--fp-divider); border-radius: 1rem; overflow: clip; }
.fpds .fp-lp-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 2rem; border-block-end: 1px solid var(--fp-divider); }
.fpds .fp-lp-hero { padding: 6rem 2rem; display: grid; grid-template-columns: 1.3fr 1fr; gap: 2rem; align-items: center; background: var(--fp-surface-subtle); }
.fpds .fp-lp-hero h3 { font-size: 3rem; font-weight: 700; line-height: 1.4; letter-spacing: -.025em; }
.fpds .fp-lp-art { min-height: 15rem; border: 1px solid var(--fp-divider); border-radius: 1rem; background: var(--fp-surface); padding: 1.5rem; display: grid; gap: 1rem; align-content: center; }
.fpds .fp-flow { border-inline-start: .35rem solid var(--fp-brand-blue); padding: 1rem; background: var(--fp-surface-subtle); }
.fpds .fp-flow:last-child { border-inline-start-color: var(--fp-brand-lime); }
.fpds .fp-classic { background: linear-gradient(130deg, #f0f6ff, #f9ffed); }
.fpds .fp-classic-ribbon { height: .5rem; border-radius: .5rem; background: linear-gradient(135deg,var(--fp-brand-blue),var(--fp-brand-lime)); margin-block-end: 1rem; }
.fpds .fp-classic h3 { font-family: var(--fp-font-display); font-weight: 800; }
.fpds .fp-mobile-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 2rem; align-items: start; }
.fpds .fp-phone {
  --fp-phone-bg: #f2f2f7; --fp-phone-surface: #fff; --fp-phone-text: #1a1a2e; --fp-phone-muted: #595959; --fp-phone-link: #0052cc;
  width: min(100%,24rem); margin-inline: auto; padding: 1rem; border: 2px solid var(--fp-border); border-radius: 2rem;
  background: var(--fp-phone-bg); color: var(--fp-phone-text); font-family: system-ui, sans-serif;
}
.fpds .fp-phone[data-theme="dark"] { --fp-phone-bg:#121318; --fp-phone-surface:#22242b; --fp-phone-text:#f5f5fa; --fp-phone-muted:#c7c8d1; --fp-phone-link:#a8c7fa; color-scheme: dark; }
.fpds .fp-phone[data-platform="android"] { border-radius: 1.5rem; }
.fpds .fp-phone-top { padding: .5rem 0 1rem; color: var(--fp-phone-muted); font-size: .875rem; }
.fpds .fp-phone-title { font-size: 2rem; font-weight: 700; margin-block-end: .25rem; }
.fpds .fp-phone-subtitle { color: var(--fp-phone-muted); font-size: .875rem; }
.fpds .fp-phone-list { border-radius: .8rem; background: var(--fp-phone-surface); padding: .25rem 1rem; margin-block: 1.5rem; }
.fpds .fp-phone-row { min-height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-block: .75rem; border-block-end: 1px solid var(--fp-border); }
.fpds .fp-phone-row:last-child { border-block-end: 0; }
.fpds .fp-phone-detail { display: block; color: var(--fp-phone-muted); font-size: .875rem; }
.fpds .fp-phone-action { width: 100%; }
.fpds .fp-phone-nav { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: space-around; border-block-start: 1px solid var(--fp-border); margin-block-start: 1.5rem; padding-block-start: 1rem; }
.fpds .fp-phone-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding-inline: .5rem; color: var(--fp-phone-link); font-size: .875rem; }
.fpds .fp-phone-nav button { min-height: 3rem; min-width: 0; flex: 1 1 4rem; padding: .5rem; color: var(--fp-phone-link); background: transparent; border: 2px solid transparent; border-radius: .5rem; font-weight: 700; cursor: pointer; }
.fpds .fp-phone-nav button[aria-selected="true"] { border-color: var(--fp-phone-link); background: var(--fp-phone-surface); }
.fpds .fp-phone-nav button:hover { text-decoration: underline; }
.fpds .fp-phone-note { color: var(--fp-phone-muted); font-size: .875rem; }
.fpds .fp-phone .fp-checkbox-label { font-size: .875rem; }
.fpds .fp-footer { padding-block: 3rem; }
.fpds .fp-footer-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.fpds [data-profile="web-app"] { line-height: 1.5; }
.fpds [data-profile="web-app"] .fp-section-heading h2 { font-size: 2rem; font-weight: 700; line-height: 1.5; }
@media (max-width: 48rem) {
  .fpds .fp-wrap { width: min(100% - 2rem, var(--fp-container)); }
  .fpds .fp-grid-two, .fpds .fp-lp-hero, .fpds .fp-mobile-layout { grid-template-columns: minmax(0,1fr); }
  .fpds .fp-lp-head { padding: 1rem; }
  .fpds .fp-lp-hero { padding: 4rem 1rem; }
  .fpds .fp-lp-hero h3 { font-size: 2.25rem; }
  .fpds .fp-lp-art { min-height: 10rem; }
}
@media (max-width: 30rem) {
  .fpds .fp-wrap { width: min(100% - 2rem, var(--fp-container)); }
  .fpds .fp-intro { padding-block-start: 2.5rem; }
  .fpds .fp-section { padding-block: 2rem; }
  .fpds .fp-table th, .fpds .fp-table td { padding: .75rem; }
  .fpds .fp-phone { padding: .75rem; }
  .fpds .fp-actions > .fp-button { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .fpds *, .fpds *::before, .fpds *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .fpds :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline: 4px solid Highlight; box-shadow: none; }
  .fpds .fp-button, .fpds .fp-input, .fpds .fp-status { border-color: ButtonText; }
}
