<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.23.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>207</ContextCount>
  <ElementCount>232</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>50</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>7</UnitCount>
  <MyReports>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Condensed Consolidated Statements of Operations (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-condensed-consolidated-statements-of-operations-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Operations (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Condensed Consolidated Statements of Comprehensive Income (Loss) (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-condensed-consolidated-statements-of-comprehensive-income-loss-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Comprehensive Income (Loss) (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Condensed Statements of Stockholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-condensed-statements-of-stockholders-equity-unaudited</Role>
      <ShortName>Condensed Statements of Stockholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Disclosure - Note 1 - General</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-1-general</Role>
      <ShortName>Note 1 - General</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Disclosure - Note 2 - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 3 - Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue</Role>
      <ShortName>Note 3 - Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 4 - Restructuring Activities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-4-restructuring-activities</Role>
      <ShortName>Note 4 - Restructuring Activities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 5 - Accumulated Other Comprehensive Loss</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-5-accumulated-other-comprehensive-loss</Role>
      <ShortName>Note 5 - Accumulated Other Comprehensive Loss</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 6 - Treasury Stock</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-6-treasury-stock</Role>
      <ShortName>Note 6 - Treasury Stock</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 7 - Earnings Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-7-earnings-per-share</Role>
      <ShortName>Note 7 - Earnings Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 8 - Stock-based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation</Role>
      <ShortName>Note 8 - Stock-based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 9 - Warrants</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-9-warrants</Role>
      <ShortName>Note 9 - Warrants</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 10 - Debt Financing</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-10-debt-financing</Role>
      <ShortName>Note 10 - Debt Financing</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 11 - Business Segment and Geographic Financial Data</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data</Role>
      <ShortName>Note 11 - Business Segment and Geographic Financial Data</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 12 - Accrued Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-12-accrued-liabilities</Role>
      <ShortName>Note 12 - Accrued Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 13 - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-13-commitments-and-contingencies</Role>
      <ShortName>Note 13 - Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 14 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-14-income-taxes</Role>
      <ShortName>Note 14 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-tables</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 3 - Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-tables</Role>
      <ShortName>Note 3 - Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-3-revenue</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 4 - Restructuring Activities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-4-restructuring-activities-tables</Role>
      <ShortName>Note 4 - Restructuring Activities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-4-restructuring-activities</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 5 - Accumulated Other Comprehensive Loss (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-5-accumulated-other-comprehensive-loss-tables</Role>
      <ShortName>Note 5 - Accumulated Other Comprehensive Loss (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-5-accumulated-other-comprehensive-loss</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 7 - Earnings Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-7-earnings-per-share-tables</Role>
      <ShortName>Note 7 - Earnings Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-7-earnings-per-share</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 8 - Stock-based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation-tables</Role>
      <ShortName>Note 8 - Stock-based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 9 - Warrants (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-9-warrants-tables</Role>
      <ShortName>Note 9 - Warrants (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-9-warrants</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 11 - Business Segment and Geographic Financial Data (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data-tables</Role>
      <ShortName>Note 11 - Business Segment and Geographic Financial Data (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 12 - Accrued Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-12-accrued-liabilities-tables</Role>
      <ShortName>Note 12 - Accrued Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-12-accrued-liabilities</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-details-textual</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-tables</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Reconciliation of Cash, Cash Equivalents, and Restricted Cash (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-reconciliation-of-cash-cash-equivalents-and-restricted-cash-details</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies - Reconciliation of Cash, Cash Equivalents, and Restricted Cash (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Amortized Cost to Fair Value of HTM Debt Securities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-amortized-cost-to-fair-value-of-htm-debt-securities-details</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies - Amortized Cost to Fair Value of HTM Debt Securities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Debt Securities by Maturity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-debt-securities-by-maturity-details</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies - Debt Securities by Maturity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Allowance for Doubtful Accounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-2-summary-of-significant-accounting-policies-allowance-for-doubtful-accounts-details</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies - Allowance for Doubtful Accounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 3 - Revenue 1 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-1-details-textual</Role>
      <ShortName>Note 3 - Revenue 1 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-3-revenue-tables</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 3 - Revenue 2 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-2-details-textual</Role>
      <ShortName>Note 3 - Revenue 2 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-3-revenue-tables</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 3 - Revenue - Revenues Disaggregated by Product Technology (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-revenues-disaggregated-by-product-technology-details</Role>
      <ShortName>Note 3 - Revenue - Revenues Disaggregated by Product Technology (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 3 - Revenue - Revenues Disaggregated by Geography (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-revenues-disaggregated-by-geography-details</Role>
      <ShortName>Note 3 - Revenue - Revenues Disaggregated by Geography (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 3 - Revenue - Timing of Revenue Recognition (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-timing-of-revenue-recognition-details</Role>
      <ShortName>Note 3 - Revenue - Timing of Revenue Recognition (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 3 - Revenue - Components of Accounts Receivable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-3-revenue-components-of-accounts-receivable-details</Role>
      <ShortName>Note 3 - Revenue - Components of Accounts Receivable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 4 - Restructuring Activities (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-4-restructuring-activities-details-textual</Role>
      <ShortName>Note 4 - Restructuring Activities (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-4-restructuring-activities-tables</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 4 - Restructuring Activities - Charges and Net Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-4-restructuring-activities-charges-and-net-assets-details</Role>
      <ShortName>Note 4 - Restructuring Activities - Charges and Net Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 5 - Accumulated Other Comprehensive Loss - Accumulated Other Comprehensive Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-5-accumulated-other-comprehensive-loss-accumulated-other-comprehensive-loss-details</Role>
      <ShortName>Note 5 - Accumulated Other Comprehensive Loss - Accumulated Other Comprehensive Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 6 - Treasury Stock (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-6-treasury-stock-details-textual</Role>
      <ShortName>Note 6 - Treasury Stock (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-6-treasury-stock</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 7 - Earnings Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-7-earnings-per-share-details-textual</Role>
      <ShortName>Note 7 - Earnings Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-7-earnings-per-share-tables</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 7 - Earnings Per Share - Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-7-earnings-per-share-earnings-per-share-details</Role>
      <ShortName>Note 7 - Earnings Per Share - Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 8 - Stock-based Compensation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation-details-textual</Role>
      <ShortName>Note 8 - Stock-based Compensation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation-tables</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 8 - Stock-based Compensation - Stock-based Compensation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation-stockbased-compensation-details</Role>
      <ShortName>Note 8 - Stock-based Compensation - Stock-based Compensation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 8 - Stock-based Compensation - Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation-stock-option-activity-details</Role>
      <ShortName>Note 8 - Stock-based Compensation - Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 8 - Stock-based Compensation - Restricted Stock Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-8-stockbased-compensation-restricted-stock-activity-details</Role>
      <ShortName>Note 8 - Stock-based Compensation - Restricted Stock Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 9 - Warrants - Summary of Warrants Outstanding and Exercisable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-9-warrants-summary-of-warrants-outstanding-and-exercisable-details</Role>
      <ShortName>Note 9 - Warrants - Summary of Warrants Outstanding and Exercisable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 10 - Debt Financing (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-10-debt-financing-details-textual</Role>
      <ShortName>Note 10 - Debt Financing (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-10-debt-financing</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 11 - Business Segment and Geographic Financial Data (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data-details-textual</Role>
      <ShortName>Note 11 - Business Segment and Geographic Financial Data (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data-tables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 11 - Business Segment and Geographic Financial Data - Reporting Segment Net Sales and Gross Margin (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data-reporting-segment-net-sales-and-gross-margin-details</Role>
      <ShortName>Note 11 - Business Segment and Geographic Financial Data - Reporting Segment Net Sales and Gross Margin (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 11 - Business Segment and Geographic Financial Data - Geographic Segment Financial Data (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-11-business-segment-and-geographic-financial-data-geographic-segment-financial-data-details</Role>
      <ShortName>Note 11 - Business Segment and Geographic Financial Data - Geographic Segment Financial Data (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 12 - Accrued Liabilities - Components of Other Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-12-accrued-liabilities-components-of-other-accrued-liabilities-details</Role>
      <ShortName>Note 12 - Accrued Liabilities - Components of Other Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 13 - Commitments and Contingencies (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-13-commitments-and-contingencies-details-textual</Role>
      <ShortName>Note 13 - Commitments and Contingencies (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-13-commitments-and-contingencies</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="ftek20230630_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 14 - Income Taxes (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.ftek.com/20230630/role/statement-note-14-income-taxes-details-textual</Role>
      <ShortName>Note 14 - Income Taxes (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.ftek.com/20230630/role/statement-note-14-income-taxes</ParentRole>
      <Position>60</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 32 fact(s) appearing in ix:hidden were eligible for transformation: dei:EntityRegistrantName, ftek:ContractWithCustomerContractsInProgressNumberOfContractsIdentifiedAsLossContracts, ftek:DebtSecuritiesHeldtomaturityMaturityTerm, us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment, us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:ContractWithCustomerAssetNet, us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense, us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization, us-gaap:LossContingencyAccrualAtCarryingValue, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1, us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage, us-gaap:StandardProductWarrantyAccrual, us-gaap:TreasuryStockCommonShares, us-gaap:TreasuryStockCommonValue, us-gaap:UnrecognizedTaxBenefits -  ftek20230630_10q.htm 8, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-Q" original="ftek20230630_10q.htm">ftek20230630_10q.htm</File>
    <File>ex_533393.htm</File>
    <File>ex_533394.htm</File>
    <File>ex_533395.htm</File>
    <File>ftek-20230630.xsd</File>
    <File>ftek-20230630_cal.xml</File>
    <File>ftek-20230630_def.xml</File>
    <File>ftek-20230630_lab.xml</File>
    <File>ftek-20230630_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="757">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="29">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
