/* FactoryForge theme v2 (staging, Oct 31 2026).
   One file for every page: tokens (dark and light), the shared header and footer, the theme toggle,
   and (under html.ffm) the overrides that re-tint the marketing pages' precompiled Tailwind and inline CSS.
   Contrast: /workspace/ff-unslop-theme/contrast.py (text measured against page, card and the worst star pixel).
   Primary (all conversion buttons): white on burnt orange #C2410C. Page accents are secondary only:
   eyebrow, icon, active nav underline, links, featured-card top rule. */

/* ---------- Tokens ---------- */
:root,[data-theme="dark"]{color-scheme:dark;
 --bg:#000000;--card:#141414;--glass:rgba(0,0,0,.28);--glass-solid:#000000;
 --text:#FFFFFF;--text-2:#B3B3B3;--text-3:#8C8C8C;
 --line:rgba(255,255,255,.16);--line-strong:rgba(255,255,255,.28);--wash:rgba(255,255,255,.06);
 --input-bg:#000000;--input-border:#707070;
 --primary-fill:#C2410C;--primary-hover:#D0460D;--on-primary:#FFFFFF;--primary-text:#F97316;
 --t-primary:#F97316;--t-erp:#FF8C2E;--t-tools:#7FB0E6;--t-crm:#3580CE;--t-field:#2F9E6B;--t-studio:#E5B84C;--t-ember:#D3563E;
 --error:#FF8A8A;--warn:#F5C542}
[data-theme="light"]{color-scheme:light;
 --bg:#F7F7F7;--card:#FFFFFF;--glass:#FFFFFF;--glass-solid:#FFFFFF;
 --text:#0A0A0A;--text-2:#4D4D4D;--text-3:#5E5E5E;
 --line:#D6D6D6;--line-strong:#A3A3A3;--wash:rgba(10,10,10,.04);
 --input-bg:#FFFFFF;--input-border:#767676;
 --primary-fill:#C2410C;--primary-hover:#9A3412;--on-primary:#FFFFFF;--primary-text:#A14404;
 --t-primary:#A14404;--t-erp:#8E5100;--t-tools:#1560AF;--t-crm:#2762A0;--t-field:#206D4A;--t-studio:#7A5B12;--t-ember:#A83B27;
 --error:#B42318;--warn:#8A5A00}
/* Page accent: set by <html data-accent="...">. Text uses the theme-safe value; chrome (always black) uses the dark value. */
:root{--accent:var(--t-primary);--accent-chrome:#F97316;--accent-raw:#F97316}
[data-accent="erp"]{--accent:var(--t-erp);--accent-chrome:#FF8C2E;--accent-raw:#FF8C2E}
[data-accent="tools"]{--accent:var(--t-tools);--accent-chrome:#7FB0E6;--accent-raw:#7FB0E6}
[data-accent="crm"]{--accent:var(--t-crm);--accent-chrome:#3580CE;--accent-raw:#2B6CB0}
[data-accent="field"]{--accent:var(--t-field);--accent-chrome:#2F9E6B;--accent-raw:#2F9E6B}
[data-accent="studio"]{--accent:var(--t-studio);--accent-chrome:#E5B84C;--accent-raw:#E5B84C}
[data-accent="ember"]{--accent:var(--t-ember);--accent-chrome:#D3563E;--accent-raw:#C4452D}
/* Chrome (nav pill, menus, footer card) is black in both themes so the wordmark always reads. */
:root{--chrome:#000000;--chrome-line:rgba(255,255,255,.16);--chrome-text:#FFFFFF;--chrome-link:#B3B3B3;--chrome-muted:#8C8C8C}

/* Scale: type, spacing, radius, shadow. Same in both themes. Use these instead of raw px or rem in new page CSS. */
:root{
 --fs-xs:12px;--fs-sm:14px;--fs-base:16px;--fs-md:18px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:28px;--fs-3xl:34px;--fs-4xl:36px;--fs-5xl:52px;
 --lh-tight:1.1;--lh-snug:1.3;--lh-body:1.6;--tracking-tight:-0.01em;
 --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-14:56px;--sp-18:72px;--sp-20:80px;
 --r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:9999px;
 --sh-none:none;
 --tap:44px;--tap-lg:48px}

/* ---------- Shared header (same markup on every page) ---------- */
.site-top{position:sticky;top:0;z-index:100;width:100%;padding:0 .75rem}
.site-top .nav-bar{margin:.75rem auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem;max-width:72rem;border-radius:9999px;padding:.25rem .5rem .25rem 1rem;background:var(--chrome)!important;border:1px solid var(--chrome-line);backdrop-filter:none!important}
@media(min-width:768px){.site-top .nav-bar{padding:.25rem .5rem .25rem 1.5rem}}
.site-top .nav-logo{display:flex;align-items:center;flex-shrink:1;min-width:0;min-height:44px}
.site-top .ff-wordmark,.site-footer .ff-wordmark{display:block;width:180px;max-width:100%;height:auto}
@media(min-width:768px){.site-top .ff-wordmark{width:240px}}
.site-top .nav-links{display:none;align-items:center;gap:.25rem}
@media(min-width:1024px){.site-top .nav-links{display:flex}}
.site-top .nav-link{display:inline-flex;align-items:center;min-height:44px;padding:0 .75rem;font:500 14px/1 'Inter',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--chrome-link);text-decoration:none}
.site-top .nav-link:hover{color:var(--chrome-text)}
.site-top .nav-link[aria-current="page"]{color:var(--chrome-text);box-shadow:inset 0 -2px 0 var(--accent-chrome)}
.site-top .nav-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}
.site-top .nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 1.25rem;border:0;border-radius:9999px;background:var(--primary-fill);color:var(--on-primary);font:600 14px/1 'Inter',system-ui,sans-serif;letter-spacing:0;text-transform:none;text-decoration:none;cursor:pointer}
.site-top .nav-cta:hover{background:var(--primary-hover)}
.site-top .nav-cta>span{display:contents}
.site-top #nav-signin-erp{display:none}
@media(min-width:1024px){.site-top #nav-signin-erp{display:inline-flex}.site-top .nav-mobile{display:none}}
.site-top .nav-mobile-toggle{background:transparent;border:1px solid var(--chrome-line);color:var(--chrome-text)}
.site-top .nav-mobile-toggle:hover{background:rgba(255,255,255,.08)}
.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:9999px;background:none;color:var(--chrome-link);cursor:pointer}
.theme-btn:hover{color:var(--chrome-text);background:rgba(255,255,255,.08)}
.theme-btn svg{width:18px;height:18px}
.theme-btn>span{display:contents}
[data-theme="dark"] .theme-btn .sun,[data-theme="light"] .theme-btn .moon{display:none}
.site-top .nav-dd{position:relative;display:inline-flex;align-items:center}
.site-top .nav-dd-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:16rem;padding:.5rem;border-radius:1rem;z-index:60;background:var(--chrome)!important;border:1px solid var(--chrome-line)}
.site-top .nav-dd-menu::before{content:'';position:absolute;left:0;right:0;bottom:100%;height:12px}
.site-top .nav-dd:hover .nav-dd-menu,.site-top .nav-dd:focus-within .nav-dd-menu{display:block}
.site-top .nav-dd-head{margin:0;padding:.5rem .65rem .25rem;font:600 12px/1.4 'Inter',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--chrome-muted)}
.site-top .nav-dd-item,.site-top .nav-mobile-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;padding:0 .65rem;border-radius:.5rem;font:500 14px/1 'Inter',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--chrome-link);text-decoration:none;background:transparent}
.site-top .nav-dd-item:hover,.site-top .nav-mobile-item:hover{background:rgba(255,255,255,.08);color:var(--chrome-text)}
.site-top .nav-dd-badge{font:500 12px/1 'Inter',system-ui,sans-serif;letter-spacing:0;text-transform:none;padding:.2rem .45rem;border-radius:9999px;border:1px solid rgba(255,255,255,.2);color:var(--chrome-muted);background:transparent}
.site-top .nav-dd-badge.live{border-color:rgba(255,140,46,.5);color:#FF8C2E}
.site-top .nav-mobile{position:relative}
.site-top .nav-mobile-menu{display:none;position:absolute;right:0;top:calc(100% + .5rem);min-width:15rem;padding:.5rem;border-radius:1rem;background:var(--chrome)!important;border:1px solid var(--chrome-line);z-index:120}
.site-top .nav-mobile:focus-within .nav-mobile-menu,.site-top .nav-mobile:hover .nav-mobile-menu,.site-top .nav-mobile.open .nav-mobile-menu{display:block}
.site-top .nav-mobile-item.signin{margin-top:.25rem;justify-content:center;background:var(--primary-fill);color:var(--on-primary);font-weight:600}
.site-top .nav-mobile-item.signin:hover{background:var(--primary-hover)}

/* ---------- Shared footer ---------- */
.site-footer{position:relative;z-index:10;padding:4rem 1.5rem}
.site-footer .footer-card{max-width:72rem;margin:0 auto;display:grid;gap:2rem;border-radius:1rem;padding:2.5rem;font:400 14px/1.5 'Inter',system-ui,sans-serif;color:var(--chrome-muted);background:var(--chrome)!important;border:1px solid var(--chrome-line)}
@media(min-width:768px){.site-footer .footer-card{grid-template-columns:repeat(4,minmax(0,1fr))}}
.site-footer .footer-logo{display:flex;align-items:center;min-height:44px;width:max-content;max-width:100%}
.site-footer .footer-tag{margin:.5rem 0 0;font-size:14px;color:var(--chrome-muted)}
.site-footer .footer-erp{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:#F97316;text-decoration:none}
.site-footer .footer-erp:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer .footer-h{margin:0 0 .25rem;font:600 14px/1.5 'Inter',system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--chrome-text)}
.site-footer .footer-h.next{margin-top:1.25rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li a{display:inline-flex;align-items:center;justify-content:center;box-sizing:content-box;min-height:44px;padding-inline:12px;margin-inline:-12px;color:var(--chrome-link);text-decoration:none}
.site-footer li a:hover{color:var(--chrome-text);text-decoration:underline;text-underline-offset:3px}
.site-footer .footer-copy{margin:.5rem 0 0;text-align:center;font-size:12px;letter-spacing:0;text-transform:none;color:var(--chrome-muted)}
@media(min-width:768px){.site-footer .footer-copy{grid-column:1/-1}}
.site-top a:focus-visible,.site-top button:focus-visible,.site-footer a:focus-visible{outline:2px solid #F97316;outline-offset:2px}

/* ================= Marketing pages (html.ffm) ================= */
html.ffm,html.ffm body{background:var(--bg)}
html.ffm body{color:var(--text)}
.ffm a:focus-visible,.ffm button:focus-visible,.ffm input:focus-visible,.ffm select:focus-visible,.ffm textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ffm .selection-red ::selection,.ffm .selection-red::selection{background:var(--primary-fill);color:#fff}

/* Starfield: live dark stars kept; light stars are steel ink at 18%, 2px layer only (half density). */
[data-theme="light"].ffm .stars-2{--ember-accent:#3D5A80;opacity:.18}
[data-theme="light"].ffm .stars-1{display:none}
.ffm .from-\[\#1a0505\]{background:var(--bg)!important}
.ffm .bg-red-600\/5,.ffm .bg-red-600\/10,.ffm [class*="blur-[1"]{display:none!important}
.ffm .page-wash{background:var(--bg)!important}
.ffm .gradient-blur{display:none}
@media(prefers-reduced-motion:reduce){.ffm .stars-1,.ffm .stars-2,.ffm *{animation:none!important;transition:none!important}}

/* Type: two families, weights 400 to 600, floor of 12px, sentence case, no wide tracking. */
.ffm .font-extrabold,.ffm .font-bold{font-weight:600!important}
.ffm .font-light,.ffm .font-extralight{font-weight:400!important}
.ffm .font-manrope{font-family:'Manrope',system-ui,sans-serif}
.ffm .uppercase{text-transform:none!important}
.ffm [class*="tracking-"]:not(.tracking-tight){letter-spacing:0!important}
.ffm .text-\[9px\],.ffm .text-\[10px\],.ffm .text-\[11px\],.ffm .text-\[0\.6rem\],.ffm .text-\[0\.65rem\]{font-size:12px!important;line-height:1.4!important}
.ffm .text-xl{font-size:1.125rem!important;line-height:1.6rem!important}
.ffm h1,.ffm h2,.ffm h3{font-weight:600}

/* Text colours (Tailwind white ramp -> three greys at 4.5:1 or more in both themes) */
.ffm .text-white,.ffm .text-white\/80{color:var(--text)!important}
.ffm .text-white\/70,.ffm .text-white\/60{color:var(--text-2)!important}
.ffm .text-white\/55,.ffm .text-white\/50,.ffm .text-white\/45,.ffm .text-white\/40,.ffm .text-white\/35,.ffm .text-white\/30,.ffm .text-white\/25{color:var(--text-3)!important}
.ffm .hover\:text-white:hover{color:var(--text)!important}
.ffm .text-\[\#ef233c\],.ffm .text-\[\#ef233c\]\/70,.ffm .text-\[\#ef233c\]\/80{color:var(--accent)!important}
.ffm .hover\:text-\[\#ef233c\]:hover{color:var(--accent)!important}
.ffm .hover\:border-\[\#ef233c\]:hover{border-color:var(--accent)!important}
.ffm .text-\[\#FF8C2E\]{color:var(--t-erp)!important}
.ffm .text-\[\#2B6CB0\]{color:var(--t-crm)!important}
.ffm .text-\[\#2F9E6B\]{color:var(--t-field)!important}
.ffm .text-\[\#E5B84C\]{color:var(--t-studio)!important}
.ffm .text-\[\#C4452D\]{color:var(--t-ember)!important}
/* Icons keep the raw accent. The lines above are for text. */
.ffm iconify-icon.text-\[\#FF8C2E\]{color:#FF8C2E!important}
.ffm iconify-icon.text-\[\#2B6CB0\]{color:#2B6CB0!important}
.ffm iconify-icon.text-\[\#2F9E6B\]{color:#2F9E6B!important}
.ffm iconify-icon.text-\[\#E5B84C\]{color:#E5B84C!important}
.ffm iconify-icon.text-\[\#C4452D\]{color:#C4452D!important}
.ffm .text-\[\#ea6c0a\]{color:var(--t-primary)!important}
.ffm .bg-white\/10,.ffm .bg-white\/15,.ffm .bg-white\/20{background-color:var(--wash)!important}
.ffm .border-white\/20,.ffm .border-white\/25{border-color:var(--line-strong)!important}
.ffm .text-stroke{-webkit-text-stroke:1px var(--line)}

/* Surfaces: glass tiles stay translucent black on dark; on light they are opaque white so no star sits under card text. */
.ffm .glass{box-shadow:none!important;border-color:var(--line)}
.ffm .glass-tile{background:var(--glass)!important;background-color:var(--glass)!important;border:1px solid var(--line)!important;box-shadow:none!important}
.ffm .glass.glass-pill,.ffm .glass-pill{background:transparent!important;border:1px solid var(--line-strong)!important;box-shadow:none!important;color:var(--text-2)!important;backdrop-filter:none!important}
.ffm .shot-frame{background:var(--card)!important;border:1px solid var(--line)!important}
.ffm .module-soon,.ffm .suite-status{font-size:12px!important;letter-spacing:0!important;text-transform:none!important;font-weight:500!important}
.ffm .module-soon{color:var(--text-3)!important;border-color:var(--line-strong)!important}

/* Buttons. One primary (white on burnt orange), one secondary (outline). Static: no spinning borders, no glow. */
.ffm .shiny-cta,.ffm a.bg-\[\#ef233c\],.ffm button.bg-\[\#ef233c\],.ffm .suite-cta{display:inline-flex!important;align-items:center;justify-content:center;min-height:48px;padding:0 1.5rem!important;border:0!important;border-radius:9999px;background:var(--primary-fill)!important;color:var(--on-primary)!important;font:600 16px/1 'Inter',system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important;animation:none!important;box-shadow:none!important;filter:none!important;text-decoration:none}
.ffm .shiny-cta *{color:inherit!important;animation:none!important;font:inherit!important;letter-spacing:0!important;text-transform:none!important}
.ffm .shiny-cta::before,.ffm .shiny-cta::after,.ffm .shiny-cta span::before,.ffm .shiny-cta span::after{content:none!important;display:none!important}
.ffm .shiny-cta:hover,.ffm a.bg-\[\#ef233c\]:hover,.ffm button.bg-\[\#ef233c\]:hover,.ffm .suite-cta:hover{background:var(--primary-hover)!important;color:var(--on-primary)!important}
.ffm .suite-cta{min-height:44px;font-size:14px!important}
.ffm a.rounded-full.border,.ffm button.rounded-full.border,.ffm .suite-explore,.ffm .notify-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line-strong)!important;color:var(--text)!important;background:transparent!important;font-size:14px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;box-shadow:none!important}
.ffm .notify-chip{color:var(--text-2)!important}
.ffm a.rounded-full.border:hover,.ffm button.rounded-full.border:hover,.ffm .suite-explore:hover,.ffm .notify-chip:hover{border-color:var(--accent)!important;color:var(--text)!important}
.ffm .billing-toggle{border:1px solid var(--line)!important;background:transparent!important}
.ffm .billing-toggle button{min-height:44px;color:var(--text-2)!important;font-size:14px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important}
.ffm .billing-toggle button.is-active{background:var(--primary-fill)!important;color:var(--on-primary)!important}
/* Featured card: accent top rule, no glow, no lift */
.ffm .plan-card-pro{border:1px solid var(--line)!important;border-top:3px solid var(--accent-raw)!important;box-shadow:none!important;transform:none!important}

/* Suite mosaic */
.ffm .suite-tile{background-color:var(--glass)!important;border-color:var(--line)!important;color:var(--text)}
.ffm .suite-tile.is-focus{background:var(--glass-solid)!important;background-color:var(--glass-solid)!important;border-color:var(--accent)!important;box-shadow:none!important}
.ffm .suite-demo{background:var(--wash)!important;border-color:var(--line)!important;color:var(--text-3)!important;font-size:12px!important}
.ffm .suite-demo .sd-chip{background:var(--line)!important}
.ffm .suite-status--soon{color:var(--text-3)!important}
.ffm .suite-status--live{color:var(--t-erp)!important;border-color:currentColor!important;background:transparent!important}

/* Forms (contact) */
.ffm .ff-label{color:var(--text-2)!important;font-size:14px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important}
.ffm .ff-input,.ffm .ff-select,.ffm .ff-textarea{min-height:44px;background:var(--input-bg)!important;border:1px solid var(--input-border)!important;color:var(--text)!important;font-size:16px!important}
.ffm .ff-input:focus,.ffm .ff-select:focus,.ffm .ff-textarea:focus{border-color:var(--accent)!important;outline:2px solid var(--accent);outline-offset:1px}
.ffm .ff-input::placeholder,.ffm .ff-textarea::placeholder{color:var(--text-3)}
