/* ═══════════════════════════════════════════════════════════════════════════
   GOFUR THEME v16 · LAYER 1 — TOKENS
   ---------------------------------------------------------------------------
   The 125 Gofur design tokens. Single source of truth for colour, type,
   spacing, radius, elevation and motion.

   RULES
   - Never write a literal hex anywhere else in this app. Always var(--gf-*).
   - Never edit this file to change a preset. Presets only remap which token
     feeds --brand; see gofur_presets.css.
   - Never map anything to Frappe here. That is gofur_bridge.css's job.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Self-hosted faces ──────────────────────────────────────────────────────
   Inter is already bundled by Frappe v16 (frappe/public/css/fonts/inter), so
   only Manrope and JetBrains Mono ship here. Self-hosted rather than fetched
   from Google Fonts: on-premise clients may have no outbound internet, and a
   CDN fetch would leak user IPs to a third party.

   If the woff2 files are absent the stacks below fall back to Inter and the
   platform monospace -- degraded, never broken.
   ────────────────────────────────────────────────────────────────────────── */

/* Both faces are variable fonts, so one file covers the whole weight range
   instead of one file per weight. Latin and latin-ext only (~82 KB total):
   Indonesian needs nothing beyond U+00FF, and latin-ext is carried for European
   names and currency symbols. Cyrillic/Greek/Vietnamese are deliberately
   omitted -- add the subset rather than the whole family if ever needed. */

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("/assets/gofur_theme/fonts/manrope-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
		U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("/assets/gofur_theme/fonts/manrope-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308,
		U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 400 600;
	font-display: swap;
	src: url("/assets/gofur_theme/fonts/jetbrains-mono-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,
		U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 400 600;
	font-display: swap;
	src: url("/assets/gofur_theme/fonts/jetbrains-mono-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308,
		U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,
		U+2C60-2C7F, U+A720-A7FF;
}

/* ═══ GOFUR DESIGN TOKENS ═══ Edit values here and nowhere else. */
:root{
/* PRIMARY · BLUE — innovation, trust */
--gf-blue-50:#EAF3FC;--gf-blue-100:#C9DFF5;--gf-blue-200:#93BDEC;--gf-blue-300:#5C9BE2;--gf-blue-400:#3B86DC;--gf-blue-500:#2E78D9;--gf-blue-600:#1F5FB8;--gf-blue-700:#154693;--gf-blue-800:#0C3273;--gf-blue-900:#061F4D;
/* SECONDARY · GREEN — growth */
--gf-green-50:#F0FAEB;--gf-green-100:#D9F1CB;--gf-green-200:#B6E29A;--gf-green-300:#91CE6A;--gf-green-400:#75BE45;--gf-green-500:#5CAB30;--gf-green-600:#468722;--gf-green-700:#346719;--gf-green-800:#244910;--gf-green-900:#162E0A;
/* ACCENT · YELLOW — energy, optimism */
--gf-yellow-50:#FFF8E1;--gf-yellow-100:#FFEDB3;--gf-yellow-200:#FFDC75;--gf-yellow-300:#FFC93C;--gf-yellow-400:#FBB217;--gf-yellow-500:#E69408;--gf-yellow-600:#BD7806;--gf-yellow-700:#935C04;--gf-yellow-800:#6B4203;--gf-yellow-900:#432901;
/* ACCENT · ORANGE — warmth with weight. Yellow is the soft warm; this is the loud one. */
--gf-orange-50:#FEF3E6;--gf-orange-100:#FCDEBF;--gf-orange-200:#F9BC83;--gf-orange-300:#F49546;--gf-orange-400:#F1781E;--gf-orange-500:#DA600E;--gf-orange-600:#B0490A;--gf-orange-700:#883407;--gf-orange-800:#622304;--gf-orange-900:#3E1402;
/* ACCENT · VIOLET — the one hue that carries no prior meaning in the desk */
--gf-violet-50:#F1EAFC;--gf-violet-100:#DCCAF4;--gf-violet-200:#BB98E7;--gf-violet-300:#9A66D8;--gf-violet-400:#8848CF;--gf-violet-500:#833CCB;--gf-violet-600:#6D2CAC;--gf-violet-700:#572088;--gf-violet-800:#44156A;--gf-violet-900:#2E0C47;
/* ACCENT · RED — crimson. Hue runs 355->348 (toward rose), deliberately NOT
   0: --gf-error is #DC2626, and a brand red at pure 0 would be
   indistinguishable from a failure state. The offset is what keeps "this is
   our colour" and "this went wrong" readable as different things. */
--gf-red-50:#FCE8EA;--gf-red-100:#F6C6CA;--gf-red-200:#EB919B;--gf-red-300:#DF5B6B;--gf-red-400:#D73A4F;--gf-red-500:#C92941;--gf-red-600:#A42035;--gf-red-700:#82172A;--gf-red-800:#5F0F1E;--gf-red-900:#3D0812;
/* INK · NEUTRAL */
--gf-ink-900:#0B1220;--gf-ink-800:#0F172A;--gf-ink-700:#1F2937;--gf-ink-600:#374151;--gf-ink-500:#475569;--gf-ink-400:#64748B;--gf-ink-300:#94A3B8;--gf-ink-200:#CBD5E1;--gf-ink-100:#E2E8F0;--gf-ink-50:#F1F5F9;--gf-paper:#F8FAFC;--gf-white:#FFFFFF;
/* SEMANTIC */
--gf-success:#16A34A;--gf-warning:#F59E0B;--gf-error:#DC2626;--gf-info:#2E78D9;
/* SEMANTIC SHORTHAND — always prefer these inside components */
--bg:var(--gf-paper);--surface:var(--gf-white);--surface-2:var(--gf-ink-50);
--fg-1:var(--gf-ink-900);--fg-2:var(--gf-ink-700);--fg-3:var(--gf-ink-500);--fg-4:var(--gf-ink-400);
--line:var(--gf-ink-100);--line-strong:var(--gf-ink-200);--brand:var(--gf-blue-500);--brand-hover:var(--gf-blue-600);
/* TYPE FAMILIES */
--font-display:'Manrope',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
--font-body:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
--font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
/* TYPE SCALE */
--t-display-xl:88px;--t-display:64px;--t-h1:36px;--t-h2:22px;--t-h3:18px;--t-h4:16px;--t-lede:18px;--t-body:15px;--t-small:13px;--t-caption:12px;--t-eyebrow:11px;--t-mono-sm:11px;
/* SPACING · Fibonacci / golden-ratio */
--sp-1:4px;--sp-2:8px;--sp-3:13px;--sp-4:21px;--sp-5:34px;--sp-6:55px;--sp-7:89px;--sp-8:144px;--sp-9:233px;
/* RADII */
--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-full:9999px;
/* ELEVATION — soft, ink-tinted, never black */
--sh-sm:0 1px 2px rgba(15,23,42,.05);--sh-md:0 4px 14px rgba(15,23,42,.08);--sh-lg:0 12px 40px rgba(15,23,42,.12);--sh-focus:0 0 0 3px var(--gf-blue-100);
/* MOTION */
--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--d-micro:120ms;--d-ui:240ms;--d-emph:400ms;
}

/* ── Frappe-side font stacks ────────────────────────────────────────────────
   Frappe registers its Inter as "InterVariable". Re-point the body stack at the
   exact families Frappe already loads so the theme inherits its font loading
   rather than racing it with a second Inter.
   ────────────────────────────────────────────────────────────────────────── */
:root {
	--font-body: "InterVariable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		system-ui, sans-serif;
	--font-display: "Manrope", "InterVariable", "Inter", -apple-system, BlinkMacSystemFont,
		system-ui, sans-serif;
	--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}
