{
  "schema": "canli.company-reference.v1",
  "cik": "0001027838",
  "name": "Tactile Systems Technology, Inc.",
  "selection_policy": "extended-v22",
  "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0001027838.json",
  "source_sha256": "15f9b668f20378192a78906ca3886e3429e7ee2aec2226f9aa858a7bbf568392",
  "fetched_at": "2026-09-20T05:14:23.334Z",
  "policy": "Latest-filed annual-report facts per unit and reporting period at capture time. Duration facts cover 300 to 400 days. This selection can include restatements and is not a point-in-time backtest dataset. Missing concepts are omitted, never zero-filled. Values retain original units and are not currency converted. Extended concepts require compatible unit shapes and at least three reporting ends with changing values within one unit. Constant or incompatible added histories are omitted.",
  "claim_boundary": "Public company accounting reference, not market prices, returns, an investment recommendation, or ALPHAC performance. Validate a separately constructed return series with the validation API; accounting values are not returns.",
  "concepts": [
    {
      "tag": "Assets",
      "taxonomy": "us-gaap",
      "label": "Total assets",
      "kind": "instant",
      "meaning": "Resources recognized on the balance sheet. Book assets are not the market value of the business.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 273942000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 297924000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 281438000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 254996000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 244270000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 174087000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 151752000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 107071000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 88447000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 73935000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 36973000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "Liabilities",
      "taxonomy": "us-gaap",
      "label": "Total liabilities",
      "kind": "instant",
      "meaning": "Recognized obligations at the reporting date. The definition and scope differ from interest-bearing debt.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 55040000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 81327000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 87796000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 133596000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 116043000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 49337000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 39157000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 17801000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 15660000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 14296000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 9695000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "StockholdersEquity",
      "taxonomy": "us-gaap",
      "label": "Stockholders equity",
      "kind": "instant",
      "meaning": "The reported residual interest after liabilities. It is an accounting amount, not market capitalization.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 218902000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 216597000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 193642000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 121400000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 128227000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 124750000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 112595000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 89270000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 72787000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 59639000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": -5649000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2015Q4I",
          "unit": "USD"
        },
        {
          "end": "2014-12-31",
          "val": -6427000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2014Q4I",
          "unit": "USD"
        },
        {
          "end": "2013-12-31",
          "val": -7114000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2013Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "CashAndCashEquivalentsAtCarryingValue",
      "taxonomy": "us-gaap",
      "label": "Cash and cash equivalents",
      "kind": "instant",
      "meaning": "Cash and qualifying short-term liquid investments under the filer’s accounting policy. Restricted cash and longer-term investments may be reported separately.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 83446000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 94367000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 61033000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 21929000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 28229000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 47855000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 22770000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 20099000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 23968000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 30701000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 7060000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2015Q4I",
          "unit": "USD"
        },
        {
          "end": "2014-12-31",
          "val": 5416000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2014Q4I",
          "unit": "USD"
        },
        {
          "end": "2013-12-31",
          "val": 6539000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2013Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "NetIncomeLoss",
      "taxonomy": "us-gaap",
      "label": "Net income or loss",
      "kind": "duration",
      "meaning": "Reported profit or loss for the period. Check the filing for attribution, exceptional items and discontinued operations before comparing companies.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 19086000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 16960000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 28515000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": -17866000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": -11811000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": -620000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 10971000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 6623000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 5855000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 2879000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 1393000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 2070000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "NetCashProvidedByUsedInOperatingActivities",
      "taxonomy": "us-gaap",
      "label": "Operating cash flow",
      "kind": "duration",
      "meaning": "Cash generated or used by operating activities. Working-capital timing can make this differ substantially from reported income.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 42811000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 40655000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 35855000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 5209000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 2631000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 2794000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 2510000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 9007000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 4192000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 7033000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 2399000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "PaymentsToAcquirePropertyPlantAndEquipment",
      "taxonomy": "us-gaap",
      "label": "Capital expenditure payments",
      "kind": "duration",
      "meaning": "Cash payments to acquire property, plant and equipment. This taxonomy concept does not capture every form of investment or acquisition.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 2380000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 2392000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 2324000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 1780000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 2103000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 2059000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 5446000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 4196000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 3746000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 775000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 592000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 353000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "RevenueFromContractWithCustomerExcludingAssessedTax",
      "taxonomy": "us-gaap",
      "label": "Contract revenue excluding tax",
      "kind": "duration",
      "meaning": "Revenue from customer contracts excluding assessed taxes under this specific taxonomy concept. It is not automatically comparable to older revenue tags.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 329522000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 292984000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 274423000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 246785000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 208057000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 187130000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 189492000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 143751000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 109283000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 84542000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "NetCashProvidedByUsedInFinancingActivities",
      "taxonomy": "us-gaap",
      "label": "Financing cash flow",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Net cash from financing activities, including borrowing, repayments and transactions with owners. A positive amount does not establish operating profitability.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": -51197000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": -4824000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 5730000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": -9600000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 59927000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 2112000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 2496000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 1850000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 3091000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 28452000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": -140000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "NetCashProvidedByUsedInInvestingActivities",
      "taxonomy": "us-gaap",
      "label": "Investing cash flow",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Net cash from investing activities, including asset purchases, disposals and investment transactions. This differs from capital expenditure payments alone.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": -2535000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": -2497000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": -2481000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": -1909000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": -82184000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 20179000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": -2335000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": -14726000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": -14016000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": -11844000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": -615000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "RetainedEarningsAccumulatedDeficit",
      "taxonomy": "us-gaap",
      "label": "Retained earnings or deficit",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Accumulated undistributed earnings or deficit at the reporting date. This balance is not cash available for distribution.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 54940000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 35854000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 18894000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": -9621000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 8245000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 20056000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 20676000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 9705000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 3082000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": -2773000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": -5652000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "WeightedAverageNumberOfSharesOutstandingBasic",
      "taxonomy": "us-gaap",
      "label": "Basic weighted-average shares",
      "kind": "duration",
      "unitKind": "shares",
      "meaning": "Time-weighted shares used for basic earnings per share. This denominator differs from shares outstanding at a single reporting date.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 22872841,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "shares"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 23883729,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "shares"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 22925497,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "shares"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 20067969,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "shares"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 19719485,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "shares"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 19346929,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "shares"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 18919007,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "shares"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 18252689,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "shares"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 17355175,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "shares"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 8913042,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "shares"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 2929438,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "shares"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 2491108,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "shares"
        }
      ]
    },
    {
      "tag": "WeightedAverageNumberOfDilutedSharesOutstanding",
      "taxonomy": "us-gaap",
      "label": "Diluted weighted-average shares",
      "kind": "duration",
      "unitKind": "shares",
      "meaning": "Weighted-average shares used for diluted earnings per share. Potential shares are included under the applicable dilution rules, not simply added to outstanding shares.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 23295328,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "shares"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 24138244,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "shares"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 23176169,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "shares"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 20067969,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "shares"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 19719485,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "shares"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 19346929,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "shares"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 19641143,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "shares"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 19347632,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "shares"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 18877863,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "shares"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 10758684,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "shares"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 2929438,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "shares"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 3797688,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "shares"
        }
      ]
    },
    {
      "tag": "EarningsPerShareBasic",
      "taxonomy": "us-gaap",
      "label": "Basic earnings per share",
      "kind": "duration",
      "unitKind": "per-share",
      "meaning": "Reported earnings or loss per basic common share or unit. Inspect attribution, share classes and restatements before comparing periods. This is not a market return.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 0.83,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD/shares"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 0.71,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD/shares"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 1.24,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD/shares"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": -0.89,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD/shares"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": -0.6,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD/shares"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": -0.03,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD/shares"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 0.58,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD/shares"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 0.36,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD/shares"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 0.34,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD/shares"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 0.18,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD/shares"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": -0.15,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD/shares"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 0.04,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD/shares"
        }
      ]
    },
    {
      "tag": "EarningsPerShareDiluted",
      "taxonomy": "us-gaap",
      "label": "Diluted earnings per share",
      "kind": "duration",
      "unitKind": "per-share",
      "meaning": "Reported earnings or loss per share under dilution rules. Antidilutive instruments may be excluded. A diluted value can equal the basic value without implying no potential dilution.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 0.82,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD/shares"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 0.7,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD/shares"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 1.23,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD/shares"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": -0.89,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD/shares"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": -0.6,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD/shares"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": -0.03,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD/shares"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 0.56,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD/shares"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 0.34,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD/shares"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 0.31,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD/shares"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 0.15,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD/shares"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": -0.15,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD/shares"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 0.02,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD/shares"
        }
      ]
    },
    {
      "tag": "IncomeTaxExpenseBenefit",
      "taxonomy": "us-gaap",
      "label": "Income tax expense or benefit",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Current and deferred income tax expense or benefit for continuing operations. This accounting expense differs from cash taxes paid.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 12253000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 6529000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": -12745000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 2393000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 9518000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": -1641000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 158000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": -3147000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": -1665000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 1431000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 1864000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 1725000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "PropertyPlantAndEquipmentNet",
      "taxonomy": "us-gaap",
      "label": "Net property, plant and equipment",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Carrying amount of property, plant and equipment after accumulated depreciation, depletion and amortization. It is not replacement cost or market value.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 5117000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 5603000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 6195000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 6077000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 6750000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 6957000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 7408000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 4810000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 3776000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 1563000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 1346000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "ShareBasedCompensation",
      "taxonomy": "us-gaap",
      "label": "Share-based compensation expense",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Reported noncash expense for share-based payment arrangements. Noncash treatment does not mean the awards have no economic cost to shareholders.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 8357000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 7819000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 7547000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 9600000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 10173000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 10689000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 9824000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 7974000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 4235000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 1889000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 316000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 148000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "OperatingIncomeLoss",
      "taxonomy": "us-gaap",
      "label": "Operating income or loss",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Operating revenue less operating expenses for the reporting period. It excludes items outside the reported operating result and is not free cash flow.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 29279000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 22181000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 18041000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": -12758000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": -1762000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": -3628000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 10498000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 2990000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 3898000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 4272000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 3451000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 3799000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "AssetsCurrent",
      "taxonomy": "us-gaap",
      "label": "Current assets",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Assets classified as current under the normal operating cycle or one-year boundary. Not all current assets can be converted immediately into cash.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 165167000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 177563000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 145294000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 119763000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 113547000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 123613000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 108335000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 84961000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 76872000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 64233000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 29360000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "LiabilitiesCurrent",
      "taxonomy": "us-gaap",
      "label": "Current liabilities",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Obligations classified as current under the operating-cycle or one-year boundary. The balance includes more than short-term borrowing.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 40957000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 40704000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 41057000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 64330000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 34461000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 26714000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 21428000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 16076000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 14519000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 13793000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 9502000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "AccountsPayableCurrent",
      "taxonomy": "us-gaap",
      "label": "Current accounts payable",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Current amounts owed to suppliers for goods and services received. This is one component of current liabilities, not all accrued obligations.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 4968000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 5648000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 6659000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 9984000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 5023000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 4197000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 3843000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 5110000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 4253000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 3776000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 3336000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "FiniteLivedIntangibleAssetsNet",
      "taxonomy": "us-gaap",
      "label": "Net finite-lived intangible assets",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Finite-lived intangible assets after amortization. This excludes goodwill and should not be combined with indefinite-lived intangible assets without checking scope.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 29390000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 33066000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 36733000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 40420000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 44016000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 1114000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 4902000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 5132000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 2218000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "AccountsReceivableNetCurrent",
      "taxonomy": "us-gaap",
      "label": "Net current accounts receivable",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Current customer receivables after the allowance for credit loss. The balance is not cash collected or a guarantee of collection.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 43876000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 44937000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 43173000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 54826000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 49478000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 43849000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 33444000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 24332000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 17623000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 15003000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 14151000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "PaymentsForRepurchaseOfCommonStock",
      "taxonomy": "us-gaap",
      "label": "Common-stock repurchase payments",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Cash paid to reacquire common stock during the period. This is not an authorization limit or a direct measure of the net change in share count.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 26561000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 3508000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 493000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "OperatingExpenses",
      "taxonomy": "us-gaap",
      "label": "Operating expenses",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Recurring operating costs under this accounting concept, generally excluding production costs included in cost of sales. Check filing presentation before combining expense subtotals.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 220867000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 194507000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 177092000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 188734000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 149975000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 136438000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 123738000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 99268000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 76370000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 57330000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 42513000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 31222000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "InventoryNet",
      "taxonomy": "us-gaap",
      "label": "Net inventory",
      "kind": "instant",
      "unitKind": "money",
      "meaning": "Inventory carrying amount after applicable valuation and LIFO reserves. It does not establish realizable selling proceeds or inventory turnover without other inputs.",
      "observations": [
        {
          "end": "2025-12-31",
          "val": 14025000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "unit": "USD"
        },
        {
          "end": "2024-12-31",
          "val": 18666000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024Q4I",
          "unit": "USD"
        },
        {
          "end": "2023-12-31",
          "val": 22527000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2023Q4I",
          "unit": "USD"
        },
        {
          "end": "2022-12-31",
          "val": 23124000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2022Q4I",
          "unit": "USD"
        },
        {
          "end": "2021-12-31",
          "val": 19217000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2021Q4I",
          "unit": "USD"
        },
        {
          "end": "2020-12-31",
          "val": 18563000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2020Q4I",
          "unit": "USD"
        },
        {
          "end": "2019-12-31",
          "val": 19059000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2019Q4I",
          "unit": "USD"
        },
        {
          "end": "2018-12-31",
          "val": 11189000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2018Q4I",
          "unit": "USD"
        },
        {
          "end": "2017-12-31",
          "val": 11040000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2017Q4I",
          "unit": "USD"
        },
        {
          "end": "2016-12-31",
          "val": 6554000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2016Q4I",
          "unit": "USD"
        },
        {
          "end": "2015-12-31",
          "val": 5781000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2015Q4I",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "GrossProfit",
      "taxonomy": "us-gaap",
      "label": "Gross profit",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Revenue less the costs directly attributed to the goods or services sold. It precedes other operating expenses and is not net income.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 250146000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 216688000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 195133000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 175976000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 148213000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 132810000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 134236000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 102258000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 80268000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 61602000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 45964000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 35021000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "CostOfRevenue",
      "taxonomy": "us-gaap",
      "label": "Cost of revenue",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Costs attributed to goods produced and sold and services provided during the period. This is not the sum of every operating expense.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 79376000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 76296000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 79290000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 70809000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 59844000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 54320000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 55256000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 41493000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 29015000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 22940000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 16908000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 12715000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    },
    {
      "tag": "ResearchAndDevelopmentExpense",
      "taxonomy": "us-gaap",
      "label": "Research and development expense",
      "kind": "duration",
      "unitKind": "money",
      "meaning": "Research and development costs recognized as expense. Capitalization policies and acquired projects can make this differ from total cash invested in development.",
      "observations": [
        {
          "start": "2025-01-01",
          "end": "2025-12-31",
          "val": 8481000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2025",
          "unit": "USD"
        },
        {
          "start": "2024-01-01",
          "end": "2024-12-31",
          "val": 8832000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2024",
          "unit": "USD"
        },
        {
          "start": "2023-01-01",
          "end": "2023-12-31",
          "val": 7823000,
          "accn": "0001104659-26-016380",
          "fy": 2025,
          "fp": "FY",
          "form": "10-K",
          "filed": "2026-02-17",
          "frame": "CY2023",
          "unit": "USD"
        },
        {
          "start": "2022-01-01",
          "end": "2022-12-31",
          "val": 7088000,
          "accn": "0001558370-25-001096",
          "fy": 2024,
          "fp": "FY",
          "form": "10-K",
          "filed": "2025-02-18",
          "frame": "CY2022",
          "unit": "USD"
        },
        {
          "start": "2021-01-01",
          "end": "2021-12-31",
          "val": 5659000,
          "accn": "0001558370-24-001330",
          "fy": 2023,
          "fp": "FY",
          "form": "10-K",
          "filed": "2024-02-20",
          "frame": "CY2021",
          "unit": "USD"
        },
        {
          "start": "2020-01-01",
          "end": "2020-12-31",
          "val": 5264000,
          "accn": "0001558370-23-001580",
          "fy": 2022,
          "fp": "FY",
          "form": "10-K",
          "filed": "2023-02-21",
          "frame": "CY2020",
          "unit": "USD"
        },
        {
          "start": "2019-01-01",
          "end": "2019-12-31",
          "val": 5174000,
          "accn": "0001558370-22-001758",
          "fy": 2021,
          "fp": "FY",
          "form": "10-K",
          "filed": "2022-02-23",
          "frame": "CY2019",
          "unit": "USD"
        },
        {
          "start": "2018-01-01",
          "end": "2018-12-31",
          "val": 5289000,
          "accn": "0001558370-21-001465",
          "fy": 2020,
          "fp": "FY",
          "form": "10-K",
          "filed": "2021-02-23",
          "frame": "CY2018",
          "unit": "USD"
        },
        {
          "start": "2017-01-01",
          "end": "2017-12-31",
          "val": 5060000,
          "accn": "0001558370-20-001467",
          "fy": 2019,
          "fp": "FY",
          "form": "10-K",
          "filed": "2020-02-26",
          "frame": "CY2017",
          "unit": "USD"
        },
        {
          "start": "2016-01-01",
          "end": "2016-12-31",
          "val": 4476000,
          "accn": "0001558370-19-001320",
          "fy": 2018,
          "fp": "FY",
          "form": "10-K",
          "filed": "2019-02-28",
          "frame": "CY2016",
          "unit": "USD"
        },
        {
          "start": "2015-01-01",
          "end": "2015-12-31",
          "val": 4312000,
          "accn": "0001558370-18-001091",
          "fy": 2017,
          "fp": "FY",
          "form": "10-K",
          "filed": "2018-02-26",
          "frame": "CY2015",
          "unit": "USD"
        },
        {
          "start": "2014-01-01",
          "end": "2014-12-31",
          "val": 2843000,
          "accn": "0001558370-17-001072",
          "fy": 2016,
          "fp": "FY",
          "form": "10-K",
          "filed": "2017-02-27",
          "frame": "CY2014",
          "unit": "USD"
        }
      ]
    }
  ],
  "source_snapshot": "/company-data/sources/15f9b668f20378192a78906ca3886e3429e7ee2aec2226f9aa858a7bbf568392.json.gz"
}
