
        /* [2026-06-26] Theme-aware tool-page component TOKENS (Decision 1, OS-dark).
           Inlined here because the V2 tool page loads aict-tool-page-v2.css, NOT
           tool-template.css — so these MUST ship with the rendered HTML. The inline
           styles in this template reference them via var(--aict-tp-*, <light-fallback>)
           so class-less / inline-coloured sections flip correctly under dark. */
        .aict-tool-single-page{
          --aict-tp-card-bg:#ffffff; --aict-tp-card-border:#e0f2fe;
          --aict-tp-soft-bg:#f0f9ff; --aict-tp-soft-border:#bae6fd;
          --aict-tp-soft-head:#0c4a6e; --aict-tp-soft-sub:#0369a1;
          --aict-tp-ink:#1e293b; --aict-tp-muted:#64748b; --aict-tp-accent:#5c5fe6;
        }
        [data-theme="dark"] .aict-tool-single-page{
          --aict-tp-card-bg:#1e293b; --aict-tp-card-border:#334155;
          --aict-tp-soft-bg:#0f1729; --aict-tp-soft-border:#334155;
          --aict-tp-soft-head:#bae6fd; --aict-tp-soft-sub:#7dd3fc;
          --aict-tp-ink:#e2e8f0; --aict-tp-muted:#94a3b8; --aict-tp-accent:#a5b4fc;
        }
        @media(prefers-color-scheme:dark){
          html:not([data-theme="light"]) .aict-tool-single-page{
            --aict-tp-card-bg:#1e293b; --aict-tp-card-border:#334155;
            --aict-tp-soft-bg:#0f1729; --aict-tp-soft-border:#334155;
            --aict-tp-soft-head:#bae6fd; --aict-tp-soft-sub:#7dd3fc;
            --aict-tp-ink:#e2e8f0; --aict-tp-muted:#94a3b8; --aict-tp-accent:#a5b4fc;
          }
        }
        /* Breadcrumb links: indigo #4f46e5 fails on the dark page bg → lighten. */
        [data-theme="dark"] .aict-tool-single-page .aict-breadcrumb a{ color:#a5b4fc !important; }
        [data-theme="dark"] .aict-tool-single-page .aict-breadcrumb,
        [data-theme="dark"] .aict-tool-single-page .aict-breadcrumb span{ color:#94a3b8 !important; }
        @media(prefers-color-scheme:dark){
          html:not([data-theme="light"]) .aict-tool-single-page .aict-breadcrumb a{ color:#a5b4fc !important; }
          html:not([data-theme="light"]) .aict-tool-single-page .aict-breadcrumb,
          html:not([data-theme="light"]) .aict-tool-single-page .aict-breadcrumb span{ color:#94a3b8 !important; }
        }
        /* Default-hidden UI containers — JS reveals them via style.display='block' on use. */
        .aict-btn-loading { display: none; } /* [UX-P0-3 2026-08-20] no !important: setLoading() reveals the spinner via inline display */
        .aict-enhance-btn-loader { display: none; }
        /* Output container: CSS-based hide so JS style.display='block' can override inline */
        #aict-output { display: none; }
        #aict-status { display: none; }
        #aict-enhance-comparison { display: none; }
        /* Fallback ink for the two comparison labels. aict-tool-page-v2.css owns
           them where it is loaded (higher specificity, !important); this pair is
           what keeps them readable on any tool page that does NOT carry the v2
           class, where --aict-tp2-inset-bg falls back to the dark #0f172a panel
           this block was originally authored for. */
        .aict-enhance-panel-label{color:var(--aict-tp2-fg,#e2e8f0);}
        .aict-enhance-panel-label--enhanced{color:var(--aict-tp2-accent-ink,#c4b5fd);}
        #aict-post-output-capture { display: none; }
        #aict-upgrade-nudge { display: none; }
        #aict-image-skeleton { display: none; }
        #aict-image-output-wrap { display: none; }
        /* Batch 5: Email Capture After Tool Use */
        .aict-post-output-capture{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:1.5rem 2rem;margin-top:1.25rem;text-align:center;}
        .aict-capture-headline{font-size:1.2rem;font-weight:700;color:#fff;margin:0 0 0.4rem;}
        /* The panel is dark in EVERY theme state, so its ink is stated here and
           must outrank the sitewide readability fixer in
           class-aict-site-config.php:5056:

             [class*="aict"] p, … {color:#334155!important;
                                   -webkit-text-fill-color:#334155!important}

           That rule is !important, so SPECIFICITY DECIDES and a plain scoped
           rule loses no matter how specific — the first attempt at this used
           `.aict-post-output-capture .aict-capture-subtext` (0,2,0) with no
           !important and measured exactly the same 1.72:1 after deploy.
           Same conclusion class-aict-pricing-ab-test.php:795 reached in June.
           `.aict-post-output-capture p.aict-capture-subtext` is (0,2,1), beats
           the (0,1,1) generic, and carries !important + the text-fill twin
           because the fixer pins both. #94a3b8 on #0f172a = 6.96:1.
           The dark arm of that fixer is also (0,2,1), so under
           data-theme="dark" the two tie and source order decides — harmless,
           because its #cbd5e1 measures 12.02:1 on this same panel. */
        .aict-post-output-capture p.aict-capture-subtext{font-size:0.9rem;color:#94a3b8!important;-webkit-text-fill-color:#94a3b8!important;margin:0 0 1rem;line-height:1.5;}
        /* Same panel, same reason, different attacker: the dismiss link used to
           carry style="color:#cbd5e1" inline, and a sitewide retrofit rule that
           matches [style*="color:#cbd5e1"] with !important recoloured it to
           #64748b — 3.75:1 on this dark panel. A class carries no substring for
           that rule to match. #cbd5e1 on #0f172a = 12.02:1. */
        .aict-post-output-capture .aict-capture-dismiss{color:#cbd5e1;text-decoration:underline;}
        .aict-capture-form{display:flex;gap:0.5rem;justify-content:center;flex-wrap:wrap;max-width:480px;margin:0 auto;}
        .aict-capture-email{flex:1;min-width:200px;padding:0.65rem 1rem;border:1px solid #334155;border-radius:8px;background:#1e293b;color:#fff;font-size:0.9rem;}
        .aict-capture-email::placeholder{color:#64748b;}
        .aict-capture-email:focus{outline:none;border-color:#5c5fe6;box-shadow:0 0 0 2px rgba(99,102,241,0.2);}
        .aict-capture-btn{padding:0.65rem 1.25rem;background:#4f46e5;color:#fff;font-weight:600;font-size:0.9rem;border:none;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background var(--aict-transition-fast);}
        .aict-capture-btn:hover{background:#4f46e5;}
        /* Batch 6: Usage-Based Upgrade Nudge */
        .aict-upgrade-nudge{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:1.25rem 1.5rem;margin-top:1.25rem;text-align:center;}
        .aict-nudge-text{font-size:0.9rem;color:#fff;margin:0 0 0.5rem;line-height:1.5;}
        .aict-nudge-btn{display:inline-block;padding:0.6rem 1.5rem;background:#4f46e5;color:#fff;font-weight:600;font-size:0.9rem;border:none;border-radius:8px;text-decoration:none;transition:background var(--aict-transition-fast);}
        .aict-nudge-btn:hover{background:#4f46e5;color:#fff;}
        .aict-nudge-limit-reached{border-color:#5c5fe6;background:#1a0f05;}
        .aict-nudge-limit-reached .aict-nudge-text{color:#fbbf24;font-weight:600;}
        @media(max-width:480px){.aict-capture-form{flex-direction:column;}.aict-capture-email{min-width:auto;}}
        