/* 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; }
/* Cards have four distinct jobs. Only explicit controls receive pointer/focus states. */
.fpds .fp-card-info { cursor: default; }
.fpds .fp-card-link { display: flex; flex-direction: column; color: var(--fp-text); text-decoration: none; border-color: var(--fp-border); transition: border-color var(--fp-motion-fast), background-color var(--fp-motion-fast); }
.fpds .fp-card-link-label { display: inline-flex; align-items: center; gap: .5rem; margin-block-start: auto; padding-block-start: 1rem; color: var(--fp-action-hover); text-decoration: underline; font-weight: 700; }
.fpds .fp-card-link:hover { background: #f1f6ff; border-color: var(--fp-action-hover); }
.fpds .fp-card-link:hover .fp-card-link-label { text-decoration-thickness: .15em; }
.fpds .fp-card-link:active { background: #e5eeff; border-color: var(--fp-action-active); }
.fpds .fp-card-options { min-width: 0; margin: 0; padding: 0; border: 0; }
.fpds .fp-card-options legend { font-weight: 700; padding: 0; margin-block-end: 1rem; }
.fpds .fp-card-select { display: flex; align-items: flex-start; gap: 1rem; border-color: var(--fp-border); cursor: pointer; }
.fpds .fp-card-select input { accent-color: var(--fp-action); inline-size: 1.5rem; block-size: 1.5rem; flex: 0 0 auto; margin: .2rem 0 0; }
.fpds .fp-card-select-body { display: grid; gap: .5rem; min-width: 0; }
.fpds .fp-card-select-title { font-size: 1.125rem; }
.fpds .fp-card-select-description { color: var(--fp-text-muted); }
.fpds .fp-card-select:hover { background: #f1f6ff; }
.fpds .fp-card-select:has(input:checked) { border-color: var(--fp-action-hover); background: #edf4ff; box-shadow: inset 0 0 0 1px var(--fp-action-hover); }
.fpds .fp-card-select:has(input:disabled) { border-color: var(--fp-border); background: var(--fp-disabled-bg); color: var(--fp-disabled-text); cursor: not-allowed; }
.fpds .fp-card-select:has(input:focus-visible) { outline: 2px solid var(--fp-action); outline-offset: -1px; box-shadow: none; }
.fpds .fp-card-select:has(input:focus-visible) input:focus-visible { outline: none; box-shadow: none; }
.fpds .fp-card-actions { display: flex; flex-direction: column; }
.fpds .fp-card-action-row { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-block-start: auto; padding-block-start: 1rem; }
.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-danger { background: #c60000; border-color: #c60000; color: #fff; }
.fpds .fp-button-danger:hover { background: #a30000; border-color: #a30000; color: #fff; }
.fpds .fp-button-danger:active { background: #800000; border-color: #800000; color: #fff; }
.fpds .fp-button-danger.fp-button-secondary { background: #fff; color: #c60000; border-color: #c60000; }
.fpds .fp-button-danger.fp-button-secondary:hover { background: #fff0f0; color: #a30000; border-color: #a30000; }
.fpds .fp-button-danger.fp-button-secondary:active { background: #ffe1e1; color: #800000; border-color: #800000; }
.fpds .fp-button[aria-busy="true"] { cursor: progress; }
.fpds .fp-button[aria-busy="true"]::before { content: ""; inline-size: 1rem; block-size: 1rem; flex: 0 0 auto; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: fp-button-spin .8s linear infinite; }
@keyframes fp-button-spin { to { transform: rotate(360deg); } }
.fpds .fp-button[aria-disabled="true"], .fpds .fp-button[aria-disabled="true"]:hover, .fpds .fp-button[aria-disabled="true"]:active { background: var(--fp-disabled-bg); color: var(--fp-disabled-text); border-color: var(--fp-border); cursor: not-allowed; text-decoration: none; }
.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-demo-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.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 :where(input,select,textarea):focus-visible {
  outline: 2px solid var(--fp-action);
  outline-offset: -1px;
  box-shadow: none;
  border-color: var(--fp-action);
}
.fpds :where(input,textarea) { caret-color: var(--fp-action); }
.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; }
  .fpds .fp-card-select:has(input:focus-visible) { outline-color: Highlight; box-shadow: none; }
  .fpds .fp-card-select:has(input:checked) { border-color: Highlight; }
}
