/* golgari visual themes: GENERATED by themes_test.go from themes/<key>.json
   (the designer's tokens); do not edit, run GM_UPDATE_GOLDEN=1 go test ./internal/web -run TestThemesCSS.
   Each theme overrides gm-ds.css's custom properties on :root[data-gm-theme]:
   common, then the density of the app (admin: operator, portal: portal), then the mode.
   The fonts are self-hosted OFL files (static/fonts/<key>/): a browser fetches them
   only when a rendered element uses the family, i.e. only under its theme. */

/* ---------------------------------------------------------------- A · Banco a mosaico (tokens v0.2.0, default dark) */
@font-face { font-family: "B612 Fallback"; src: local("Arial"); font-display: swap; size-adjust: 112.3%; ascent-override: 85.9%; descent-override: 22.3%; line-gap-override: 0.0%; }
@font-face { font-family: "B612 Mono Fallback"; src: local("Courier New"); font-display: swap; size-adjust: 108.3%; ascent-override: 89.1%; descent-override: 23.1%; line-gap-override: 0.0%; }
@font-face { font-family: "B612"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/a/b612-latin-400.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: "B612"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/a/b612-latin-700.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: "B612 Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/static/fonts/a/b612-mono-latin-400.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: "B612 Mono"; font-style: normal; font-weight: 700; font-display: swap; src: url("/static/fonts/a/b612-mono-latin-700.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; }
:root[data-gm-app][data-gm-theme="a"] {
  --gm-focus-offset: 2px;
  --gm-focus-width: 2px;
  --gm-font: "B612", "B612 Fallback", "B612 Fallback", system-ui, sans-serif;
  --gm-font-display: "B612", "B612 Fallback", "B612 Fallback", system-ui, sans-serif;
  --gm-font-mono: "B612 Mono", "B612 Mono Fallback", "B612 Mono Fallback", ui-monospace, monospace;
  --gm-font-num: "B612", "B612 Fallback", "B612 Fallback", system-ui, sans-serif;
  --gm-lh-base: 1.33;
  --gm-lh-relaxed: 1.45;
  --gm-lh-tight: 1.15;
  --gm-radius: 0px;
  --gm-radius-lg: 0px;
  --gm-radius-pill: 0px;
  --gm-radius-sm: 0px;
  --gm-size-chip: 24px;
  --gm-space-1: 2px;
  --gm-space-2: 4px;
  --gm-space-3: 6px;
  --gm-space-4: 8px;
  --gm-space-5: 10px;
  --gm-space-6: 12px;
  --gm-space-7: 16px;
  --gm-space-8: 24px;
  --gm-text-2xl: 22px;
  --gm-text-3xl: 24px;
  --gm-text-display: 40px;
  --gm-text-lg: 14px;
  --gm-text-md: 13px;
  --gm-text-sm: 12px;
  --gm-text-xl: 18px;
  --gm-text-xs: 11px;
  --gm-tile-gap: 2px;
  --gm-tracking-display: -0.02em;
  /* roles (DESIGN.md) */
  --gm-title-size: var(--gm-text-2xl);
  --gm-title-weight: 700;
  --gm-card-title-size: var(--gm-text-lg);
  --gm-card-title-weight: 700;
  --gm-kpi-size: var(--gm-text-3xl);
  --gm-kpi-weight: 700;
  --gm-btn-weight: 700;
  --gm-btn-px: 14px;
  --gm-input-bg: var(--gm-surface-2);
  --gm-card-border: transparent;
  --gm-radius-badge: 0px;
  --gm-topbar-line: var(--gm-bg);
  --gm-topbar-line-w: var(--gm-tile-gap);
  /* gm-ds.css fills on the theme's tones */
  --tblr-link-hover-color-rgb: var(--tblr-link-color-rgb);
  --gm-brand-active: var(--gm-brand-hover);
  --gm-track: var(--gm-surface-2);
  --gm-meter-warn: var(--gm-warning);
  --gm-meter-crit: var(--gm-danger);
  --gm-count-bg: var(--gm-danger);
  --gm-on-count: var(--gm-surface);
  --gm-solid-success: var(--gm-success);
  --gm-solid-warning: var(--gm-warning);
  --gm-solid-info: var(--gm-info);
  --gm-solid-danger: var(--gm-danger);
  --gm-on-solid: var(--gm-surface);
  --gm-title-lh: var(--gm-lh-tight);
  --gm-kpi-tracking: var(--gm-tracking-display);
  --gm-ok-line: var(--gm-success);
  --gm-err-line: var(--gm-danger);
  --gm-warn-line: var(--gm-warning);
  --gm-shadow-pop: none;
  --gm-shadow-toast: none;
  --gm-shadow-sheet: none;
  --gm-shadow-bar: none;
}
:root[data-gm-app="admin"][data-gm-theme="a"] {
  --gm-control-h: 28px;
  --gm-pad: 10px;
  --gm-row-h: 30px;
  --gm-size-target-min: 28px;
  --gm-tab-h: 36px;
  --gm-text-body: 13px;
}
:root[data-gm-app="portal"][data-gm-theme="a"] {
  --gm-control-h: 44px;
  --gm-pad: 16px;
  --gm-row-h: 44px;
  --gm-size-target-min: 44px;
  --gm-tab-h: 44px;
  --gm-text-body: 14px;
}
:root[data-gm-app][data-gm-theme="a"][data-bs-theme="light"] {
  --gm-accent-line: #005A69;
  --gm-accent-soft: #005A69;
  --gm-bg: #C6CFC9;
  --gm-border: #C6D0CA;
  --gm-border-strong: #5F6E66;
  --gm-brand: #005A69;
  --gm-brand-hover: #004855;
  --gm-brand-soft: #C9E9EE;
  --gm-brand-text: #005A69;
  --gm-chart-1: #3E4F46;
  --gm-chart-2: #44514A;
  --gm-danger: #9C1F17;
  --gm-danger-bg: #DED1CC;
  --gm-fast-bg: #101814;
  --gm-fast-ink: #E9EEEA;
  --gm-focus: #005A69;
  --gm-heat-0: #DCE3DE;
  --gm-heat-1: #B4C2BA;
  --gm-heat-2: #879A90;
  --gm-heat-3: #586C62;
  --gm-heat-4: #2C3D35;
  --gm-info: #005A69;
  --gm-info-bg: #C8D9D8;
  --gm-ink: #101814;
  --gm-ink-2: #2F3B35;
  --gm-ink-display: #101814;
  --gm-meter: #3E4F46;
  --gm-muted: #44514A;
  --gm-neutral: #2F3B35;
  --gm-neutral-bg: #CFD5D1;
  --gm-on-brand: #FFFFFF;
  --gm-paused: #44514A;
  --gm-paused-bg: #D2D8D4;
  --gm-scrim: rgba(9,14,12,.55);
  --gm-selected-bg: #C9E9EE;
  --gm-selected-border: #005A69;
  --gm-selected-ink: #101814;
  --gm-shadow: none;
  --gm-shadow-modal: 0 0 0 2px var(--gm-accent-line), 0 0 0 9999px rgba(0,0,0,.55);
  --gm-side-active: #DCE3DE;
  --gm-side-bg: #E9EEEA;
  --gm-side-hover: #C6D0CA;
  --gm-side-ink: #101814;
  --gm-side-muted: #2F3B35;
  --gm-sidebar-accent: #005A69;
  --gm-slow-bg: transparent;
  --gm-slow-border: #101814;
  --gm-slow-ink: #101814;
  --gm-success: #145C37;
  --gm-success-bg: #CBDAD1;
  --gm-surface: #E9EEEA;
  --gm-surface-2: #DCE3DE;
  --gm-tint: #005A69;
  --gm-uptime-down: #9C1F17;
  --gm-uptime-maint: #5F6E66;
  --gm-uptime-ok: #145C37;
  --gm-warning: #7A4600;
  --gm-warning-bg: #D9D6C9;
  --tblr-body-bg-rgb: 198, 207, 201;
  --tblr-body-color-rgb: 16, 24, 20;
  --tblr-link-color-rgb: 0, 90, 105;
  --tblr-primary-rgb: 0, 90, 105;
  --gm-check-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
}
:root[data-gm-app][data-gm-theme="a"][data-bs-theme="dark"] {
  --gm-accent-line: #5ED3E6;
  --gm-accent-soft: #5ED3E6;
  --gm-bg: #090E0C;
  --gm-border: #24302B;
  --gm-border-strong: #6A7A72;
  --gm-brand: #5ED3E6;
  --gm-brand-hover: #8BE0EE;
  --gm-brand-soft: #0F3138;
  --gm-brand-text: #5ED3E6;
  --gm-chart-1: #9FB4A9;
  --gm-chart-2: #8A9B92;
  --gm-danger: #FF6B5E;
  --gm-danger-bg: #3D2924;
  --gm-fast-bg: #E3ECE7;
  --gm-fast-ink: #131A17;
  --gm-focus: #5ED3E6;
  --gm-heat-0: #1A2420;
  --gm-heat-1: #2C3B34;
  --gm-heat-2: #4A6157;
  --gm-heat-3: #7A9486;
  --gm-heat-4: #B9CFC2;
  --gm-info: #5ED3E6;
  --gm-info-bg: #203B3C;
  --gm-ink: #E3ECE7;
  --gm-ink-2: #B5C3BC;
  --gm-ink-display: #E3ECE7;
  --gm-meter: #9FB4A9;
  --gm-muted: #8A9B92;
  --gm-neutral: #B5C3BC;
  --gm-neutral-bg: #303835;
  --gm-on-brand: #04191D;
  --gm-paused: #8A9B92;
  --gm-paused-bg: #28312D;
  --gm-scrim: rgba(9,14,12,.55);
  --gm-selected-bg: #0F3138;
  --gm-selected-border: #5ED3E6;
  --gm-selected-ink: #E3ECE7;
  --gm-shadow: none;
  --gm-shadow-modal: 0 0 0 2px var(--gm-accent-line), 0 0 0 9999px rgba(0,0,0,.55);
  --gm-side-active: #1A2420;
  --gm-side-bg: #131A17;
  --gm-side-hover: #24302B;
  --gm-side-ink: #E3ECE7;
  --gm-side-muted: #B5C3BC;
  --gm-sidebar-accent: #5ED3E6;
  --gm-slow-bg: transparent;
  --gm-slow-border: #E3ECE7;
  --gm-slow-ink: #E3ECE7;
  --gm-success: #52C98A;
  --gm-success-bg: #1E3A2C;
  --gm-surface: #131A17;
  --gm-surface-2: #1A2420;
  --gm-tint: #5ED3E6;
  --gm-uptime-down: #FF6B5E;
  --gm-uptime-maint: #6A7A72;
  --gm-uptime-ok: #52C98A;
  --gm-warning: #F2A93B;
  --gm-warning-bg: #3B341D;
  --tblr-body-bg-rgb: 9, 14, 12;
  --tblr-body-color-rgb: 227, 236, 231;
  --tblr-link-color-rgb: 94, 211, 230;
  --tblr-primary-rgb: 94, 211, 230;
  --gm-check-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2304191D' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
}

/* ---------------------------------------------------------------- B · Quadro orario (tokens v0.2.0, default light) */
@font-face { font-family: "Sofia Sans Fallback"; src: local("Arial"); font-display: swap; size-adjust: 97.1%; ascent-override: 92.6%; descent-override: 30.9%; line-gap-override: 0.0%; }
@font-face { font-family: "Sofia Sans Extra Condensed Fallback"; src: local("Arial Narrow"), local("Liberation Sans Narrow"); font-display: swap; size-adjust: 75.0%; ascent-override: 120.0%; descent-override: 40.0%; line-gap-override: 0.0%; }
@font-face { font-family: "Sofia Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/static/fonts/b/sofia-sans-latin-wght.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: "Sofia Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/static/fonts/b/sofia-sans-latin-ext-wght.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: "Sofia Sans Extra Condensed"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/static/fonts/b/sofia-sans-extra-condensed-latin-wght.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: "Sofia Sans Extra Condensed"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("/static/fonts/b/sofia-sans-extra-condensed-latin-ext-wght.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; }
:root[data-gm-app][data-gm-theme="b"] {
  --gm-band-h: 58px;
  --gm-focus-offset: 3px;
  --gm-focus-width: 3px;
  --gm-font: "Sofia Sans", "Sofia Sans Fallback", "Sofia Sans Fallback", system-ui, sans-serif;
  --gm-font-display: "Sofia Sans Extra Condensed", "Sofia Sans Extra Condensed Fallback", "Sofia Sans Extra Condensed Fallback", "Sofia Sans", "Sofia Sans Fallback", "Sofia Sans Fallback", sans-serif;
  --gm-font-mono: "Sofia Sans Extra Condensed", "Sofia Sans Extra Condensed Fallback", "Sofia Sans Extra Condensed Fallback", "Sofia Sans", "Sofia Sans Fallback", "Sofia Sans Fallback", sans-serif;
  --gm-font-num: "Sofia Sans Extra Condensed", "Sofia Sans Extra Condensed Fallback", "Sofia Sans Extra Condensed Fallback", "Sofia Sans", "Sofia Sans Fallback", "Sofia Sans Fallback", sans-serif;
  --gm-lh-base: 1.43;
  --gm-lh-relaxed: 1.5;
  --gm-lh-tight: 0.95;
  --gm-radius: 2px;
  --gm-radius-lg: 4px;
  --gm-radius-pill: 2px;
  --gm-radius-sm: 2px;
  --gm-rule: 3px;
  --gm-size-chip: 28px;
  --gm-space-1: 4px;
  --gm-space-2: 8px;
  --gm-space-3: 12px;
  --gm-space-4: 16px;
  --gm-space-5: 24px;
  --gm-space-6: 32px;
  --gm-space-7: 48px;
  --gm-text-2xl: 30px;
  --gm-text-3xl: 46px;
  --gm-text-display: 56px;
  --gm-text-lg: 16px;
  --gm-text-md: 14px;
  --gm-text-sm: 13px;
  --gm-text-xl: 24px;
  --gm-text-xs: 12px;
  --gm-tracking-display: -0.01em;
  /* roles (DESIGN.md) */
  --gm-title-size: var(--gm-text-display);
  --gm-title-weight: 900;
  --gm-card-title-size: var(--gm-text-xl);
  --gm-card-title-weight: 800;
  --gm-kpi-size: var(--gm-text-3xl);
  --gm-kpi-weight: 700;
  --gm-nav-head-font: var(--gm-font-display);
  --gm-nav-head-size: var(--gm-text-lg);
  --gm-btn-font: var(--gm-font-display);
  --gm-btn-weight: 700;
  --gm-btn-size: 19px;
  --gm-btn-px: 18px;
  --gm-input-border: var(--gm-ink);
  --gm-input-border-w: 2px;
  --gm-card-bg: transparent;
  --gm-card-border: transparent;
  --gm-card-rule: var(--gm-rule);
  --gm-card-rule-color: var(--gm-ink);
  --gm-radius-badge: var(--gm-radius-sm);
  --gm-side-active-ink: var(--gm-side-bg);
  --gm-header-bg: var(--gm-poster);
  /* gm-ds.css fills on the theme's tones */
  --tblr-link-hover-color-rgb: var(--tblr-link-color-rgb);
  --gm-brand-active: var(--gm-brand-hover);
  --gm-track: var(--gm-surface-2);
  --gm-meter-warn: var(--gm-warning);
  --gm-meter-crit: var(--gm-danger);
  --gm-count-bg: var(--gm-danger);
  --gm-on-count: var(--gm-surface);
  --gm-solid-success: var(--gm-success);
  --gm-solid-warning: var(--gm-warning);
  --gm-solid-info: var(--gm-info);
  --gm-solid-danger: var(--gm-danger);
  --gm-on-solid: var(--gm-surface);
  --gm-title-lh: var(--gm-lh-tight);
  --gm-kpi-tracking: var(--gm-tracking-display);
  --gm-ok-line: var(--gm-success);
  --gm-err-line: var(--gm-danger);
  --gm-warn-line: var(--gm-warning);
  --gm-shadow-pop: none;
  --gm-shadow-toast: none;
  --gm-shadow-sheet: none;
  --gm-shadow-bar: none;
}
:root[data-gm-app="admin"][data-gm-theme="b"] {
  --gm-control-h: 40px;
  --gm-pad: 16px;
  --gm-row-h: 44px;
  --gm-size-target-min: 40px;
  --gm-tab-h: 44px;
  --gm-text-body: 14px;
}
:root[data-gm-app="portal"][data-gm-theme="b"] {
  --gm-control-h: 44px;
  --gm-pad: 20px;
  --gm-row-h: 48px;
  --gm-size-target-min: 44px;
  --gm-tab-h: 48px;
  --gm-text-body: 15px;
}
:root[data-gm-app][data-gm-theme="b"][data-bs-theme="light"] {
  --gm-accent-line: #111111;
  --gm-accent-soft: #111111;
  --gm-band-bg: #111111;
  --gm-band-ink: #F2D95C;
  --gm-band-muted: #CDBE86;
  --gm-bg: #F8EAA6;
  --gm-border: #D9C25A;
  --gm-border-strong: #111111;
  --gm-brand: #111111;
  --gm-brand-hover: #3A3416;
  --gm-brand-soft: #F2D95C;
  --gm-brand-text: #111111;
  --gm-chart-1: #111111;
  --gm-chart-2: #6B5A12;
  --gm-danger: #9E1218;
  --gm-danger-bg: #F0D6BD;
  --gm-fast-bg: #111111;
  --gm-fast-ink: #F2D95C;
  --gm-focus: #111111;
  --gm-heat-0: #F0DC7A;
  --gm-heat-1: #D2B53C;
  --gm-heat-2: #9A8420;
  --gm-heat-3: #55490F;
  --gm-heat-4: #111111;
  --gm-info: #111111;
  --gm-info-bg: #DCD6BC;
  --gm-ink: #111111;
  --gm-ink-2: #2B2610;
  --gm-ink-display: #111111;
  --gm-meter: #111111;
  --gm-muted: #4F4519;
  --gm-neutral: #2B2610;
  --gm-neutral-bg: #E0D9BC;
  --gm-on-brand: #F2D95C;
  --gm-paused: #4F4519;
  --gm-paused-bg: #E5DDBD;
  --gm-poster: #F2D95C;
  --gm-scrim: rgba(17,17,17,.6);
  --gm-selected-bg: #F2D95C;
  --gm-selected-border: #111111;
  --gm-selected-ink: #111111;
  --gm-shadow: none;
  --gm-shadow-modal: 0 0 0 3px var(--gm-ink);
  --gm-side-active: #F2D95C;
  --gm-side-bg: #111111;
  --gm-side-hover: rgba(242, 217, 92, 0.12);
  --gm-side-ink: #F2D95C;
  --gm-side-muted: #CDBE86;
  --gm-sidebar-accent: #111111;
  --gm-slow-bg: transparent;
  --gm-slow-border: #111111;
  --gm-slow-ink: #111111;
  --gm-success: #0B5A2E;
  --gm-success-bg: #DBE0C0;
  --gm-surface: #FDF6D8;
  --gm-surface-2: #F2E28E;
  --gm-tint: #111111;
  --gm-uptime-down: #9E1218;
  --gm-uptime-maint: #4F4519;
  --gm-uptime-ok: #111111;
  --gm-warning: #713600;
  --gm-warning-bg: #E9DBBA;
  --tblr-body-bg-rgb: 248, 234, 166;
  --tblr-body-color-rgb: 17, 17, 17;
  --tblr-link-color-rgb: 17, 17, 17;
  --tblr-primary-rgb: 17, 17, 17;
  --gm-check-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23F2D95C' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
}
:root[data-gm-app][data-gm-theme="b"][data-bs-theme="dark"] {
  --gm-accent-line: #F4D55A;
  --gm-accent-soft: #F4D55A;
  --gm-band-bg: #000000;
  --gm-band-ink: #F4D55A;
  --gm-band-muted: #A79E7C;
  --gm-bg: #0E0D09;
  --gm-border: #3A3524;
  --gm-border-strong: #8A815F;
  --gm-brand: #F4D55A;
  --gm-brand-hover: #FFE27A;
  --gm-brand-soft: #3A3214;
  --gm-brand-text: #F4D55A;
  --gm-chart-1: #ECE6CF;
  --gm-chart-2: #A79E7C;
  --gm-danger: #FF6F66;
  --gm-danger-bg: #42261F;
  --gm-fast-bg: #F4D55A;
  --gm-fast-ink: #111111;
  --gm-focus: #F4D55A;
  --gm-heat-0: #1F1C12;
  --gm-heat-1: #4A3F14;
  --gm-heat-2: #7F6A1C;
  --gm-heat-3: #BFA032;
  --gm-heat-4: #F4D55A;
  --gm-info: #ECE6CF;
  --gm-info-bg: #3E3B32;
  --gm-ink: #ECE6CF;
  --gm-ink-2: #CFC8AE;
  --gm-ink-display: #F4D55A;
  --gm-meter: #ECE6CF;
  --gm-muted: #A79E7C;
  --gm-neutral: #CFC8AE;
  --gm-neutral-bg: #39362C;
  --gm-on-brand: #111111;
  --gm-paused: #A79E7C;
  --gm-paused-bg: #322E23;
  --gm-poster: #0E0D09;
  --gm-scrim: rgba(17,17,17,.6);
  --gm-selected-bg: #3A3214;
  --gm-selected-border: #F4D55A;
  --gm-selected-ink: #ECE6CF;
  --gm-shadow: none;
  --gm-shadow-modal: 0 0 0 3px var(--gm-ink);
  --gm-side-active: #F4D55A;
  --gm-side-bg: #000000;
  --gm-side-hover: rgba(244, 213, 90, 0.12);
  --gm-side-ink: #F4D55A;
  --gm-side-muted: #A79E7C;
  --gm-sidebar-accent: #F4D55A;
  --gm-slow-bg: transparent;
  --gm-slow-border: #ECE6CF;
  --gm-slow-ink: #ECE6CF;
  --gm-success: #6FD39A;
  --gm-success-bg: #283828;
  --gm-surface: #18160F;
  --gm-surface-2: #24210F;
  --gm-tint: #F4D55A;
  --gm-uptime-down: #FF6F66;
  --gm-uptime-maint: #A79E7C;
  --gm-uptime-ok: #ECE6CF;
  --gm-warning: #FFA552;
  --gm-warning-bg: #42301B;
  --tblr-body-bg-rgb: 14, 13, 9;
  --tblr-body-color-rgb: 236, 230, 207;
  --tblr-link-color-rgb: 244, 213, 90;
  --tblr-primary-rgb: 244, 213, 90;
  --gm-check-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23111111' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
}

/* ---------------------------------------------------------------- C · Tavola IGM (tokens v0.2.0, default light) */
@font-face { font-family: "Atkinson Hyperlegible Next Fallback"; src: local("Arial"); font-display: swap; size-adjust: 100.8%; ascent-override: 97.6%; descent-override: 31.3%; line-gap-override: 0.0%; }
@font-face { font-family: "Bodoni Moda Fallback"; src: local("Times New Roman"); font-display: swap; size-adjust: 114.4%; ascent-override: 98.3%; descent-override: 35.0%; line-gap-override: 0.0%; }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("/static/fonts/c/atkinson-hyperlegible-next-latin-wght.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: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("/static/fonts/c/atkinson-hyperlegible-next-latin-ext-wght.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: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 200 800; font-display: swap; src: url("/static/fonts/c/atkinson-hyperlegible-next-latin-wght-italic.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: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 200 800; font-display: swap; src: url("/static/fonts/c/atkinson-hyperlegible-next-latin-ext-wght-italic.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: "Bodoni Moda"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("/static/fonts/c/bodoni-moda-latin-wght.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: "Bodoni Moda"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("/static/fonts/c/bodoni-moda-latin-ext-wght.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: "Bodoni Moda"; font-style: italic; font-weight: 400 900; font-display: swap; src: url("/static/fonts/c/bodoni-moda-latin-wght-italic.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: "Bodoni Moda"; font-style: italic; font-weight: 400 900; font-display: swap; src: url("/static/fonts/c/bodoni-moda-latin-ext-wght-italic.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; }
:root[data-gm-app][data-gm-theme="c"] {
  --gm-focus-offset: 2px;
  --gm-focus-width: 2px;
  --gm-font: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible Next Fallback", "Atkinson Hyperlegible Next Fallback", system-ui, sans-serif;
  --gm-font-display: "Bodoni Moda", "Bodoni Moda Fallback", "Bodoni Moda Fallback", Georgia, serif;
  --gm-font-mono: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible Next Fallback", "Atkinson Hyperlegible Next Fallback", ui-monospace, monospace;
  --gm-font-num: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible Next Fallback", "Atkinson Hyperlegible Next Fallback", system-ui, sans-serif;
  --gm-lh-base: 1.47;
  --gm-lh-relaxed: 1.55;
  --gm-lh-tight: 1.1;
  --gm-radius: 6px;
  --gm-radius-lg: 6px;
  --gm-radius-pill: 6px;
  --gm-radius-sm: 4px;
  --gm-size-chip: 28px;
  --gm-space-1: 4px;
  --gm-space-2: 8px;
  --gm-space-3: 12px;
  --gm-space-4: 16px;
  --gm-space-5: 24px;
  --gm-space-6: 32px;
  --gm-space-7: 48px;
  --gm-space-8: 64px;
  --gm-text-2xl: 26px;
  --gm-text-3xl: 36px;
  --gm-text-display: 40px;
  --gm-text-lg: 17px;
  --gm-text-md: 15px;
  --gm-text-sm: 13px;
  --gm-text-xl: 21px;
  --gm-text-xs: 12px;
  --gm-tracking-display: -0.01em;
  /* roles (DESIGN.md) */
  --gm-title-size: var(--gm-text-display);
  --gm-title-weight: 600;
  --gm-card-title-size: var(--gm-text-xl);
  --gm-card-title-weight: 600;
  --gm-kpi-size: var(--gm-text-3xl);
  --gm-kpi-weight: 600;
  --gm-font-kpi: var(--gm-font-display);
  --gm-nav-head-font: var(--gm-font-display);
  --gm-nav-head-style: italic;
  --gm-nav-head-size: var(--gm-text-lg);
  --gm-btn-weight: 600;
  --gm-btn-px: 20px;
  --gm-topbar-line: var(--gm-border);
  --gm-topbar-line-w: 1px;
  --gm-card-bg: transparent;
  --gm-card-border: transparent;
  --gm-card-rule: 0px;
  --gm-radius-badge: var(--gm-radius-sm);
  /* gm-ds.css fills on the theme's tones */
  --tblr-link-hover-color-rgb: var(--tblr-link-color-rgb);
  --gm-brand-active: var(--gm-brand-hover);
  --gm-track: var(--gm-surface-2);
  --gm-meter-warn: var(--gm-warning);
  --gm-meter-crit: var(--gm-danger);
  --gm-count-bg: var(--gm-danger);
  --gm-on-count: var(--gm-surface);
  --gm-solid-success: var(--gm-success);
  --gm-solid-warning: var(--gm-warning);
  --gm-solid-info: var(--gm-info);
  --gm-solid-danger: var(--gm-danger);
  --gm-on-solid: var(--gm-surface);
  --gm-title-lh: var(--gm-lh-tight);
  --gm-kpi-tracking: var(--gm-tracking-display);
  --gm-ok-line: var(--gm-success);
  --gm-err-line: var(--gm-danger);
  --gm-warn-line: var(--gm-warning);
  --gm-shadow-pop: none;
  --gm-shadow-toast: none;
  --gm-shadow-sheet: none;
  --gm-shadow-bar: none;
}
:root[data-gm-app="admin"][data-gm-theme="c"] {
  --gm-control-h: 40px;
  --gm-pad: 20px;
  --gm-row-h: 44px;
  --gm-size-target-min: 40px;
  --gm-tab-h: 40px;
  --gm-text-body: 14px;
}
:root[data-gm-app="portal"][data-gm-theme="c"] {
  --gm-control-h: 44px;
  --gm-pad: 24px;
  --gm-row-h: 50px;
  --gm-size-target-min: 44px;
  --gm-tab-h: 44px;
  --gm-text-body: 15px;
}
:root[data-gm-app][data-gm-theme="c"][data-bs-theme="light"] {
  --gm-accent-line: #1C5EA5;
  --gm-accent-soft: #1C5EA5;
  --gm-bg: #F3F5EF;
  --gm-border: #D3D9CE;
  --gm-border-strong: #6E7A71;
  --gm-brand: #1C5EA5;
  --gm-brand-hover: #154A84;
  --gm-brand-soft: #DCE8F5;
  --gm-brand-text: #1C5EA5;
  --gm-chart-1: #1C5EA5;
  --gm-chart-2: #A0582E;
  --gm-danger: #A6301B;
  --gm-danger-bg: #F0E0DA;
  --gm-fast-bg: #1C5EA5;
  --gm-fast-ink: #FFFFFF;
  --gm-focus: #1C5EA5;
  --gm-heat-0: #E8EFD8;
  --gm-heat-1: #CFE0B0;
  --gm-heat-2: #E6D49A;
  --gm-heat-3: #D3A66A;
  --gm-heat-4: #A9693C;
  --gm-info: #1C5EA5;
  --gm-info-bg: #DDE7ED;
  --gm-ink: #1D2420;
  --gm-ink-2: #38423D;
  --gm-ink-display: #1D2420;
  --gm-meter: #1C5EA5;
  --gm-muted: #57625B;
  --gm-neutral: #38423D;
  --gm-neutral-bg: #E1E3DF;
  --gm-on-brand: #FFFFFF;
  --gm-paused: #57625B;
  --gm-paused-bg: #E5E7E3;
  --gm-scrim: rgba(18,23,21,.45);
  --gm-selected-bg: #DCE8F5;
  --gm-selected-border: #1C5EA5;
  --gm-selected-ink: #1D2420;
  --gm-shadow: 0 1px 2px rgba(29,36,32,.06);
  --gm-shadow-modal: 0 16px 40px rgba(18,23,21,.22);
  --gm-side-active: #DCE8F5;
  --gm-side-bg: #FCFDF9;
  --gm-side-hover: #E9EDE3;
  --gm-side-ink: #38423D;
  --gm-side-muted: #57625B;
  --gm-sidebar-accent: #1C5EA5;
  --gm-slow-bg: #E9EDE3;
  --gm-slow-border: transparent;
  --gm-slow-ink: #38423D;
  --gm-success: #2E6A2A;
  --gm-success-bg: #DFE8DC;
  --gm-surface: #FCFDF9;
  --gm-surface-2: #E9EDE3;
  --gm-tint: #1C5EA5;
  --gm-uptime-down: #A6301B;
  --gm-uptime-maint: #6E7A71;
  --gm-uptime-ok: #2E6A2A;
  --gm-warning: #8A5000;
  --gm-warning-bg: #ECE5D6;
  --tblr-body-bg-rgb: 243, 245, 239;
  --tblr-body-color-rgb: 29, 36, 32;
  --tblr-link-color-rgb: 28, 94, 165;
  --tblr-primary-rgb: 28, 94, 165;
  --gm-check-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
}
:root[data-gm-app][data-gm-theme="c"][data-bs-theme="dark"] {
  --gm-accent-line: #86B6EC;
  --gm-accent-soft: #86B6EC;
  --gm-bg: #121715;
  --gm-border: #2C3531;
  --gm-border-strong: #6D7A72;
  --gm-brand: #86B6EC;
  --gm-brand-hover: #A8CBF2;
  --gm-brand-soft: #1B2C3F;
  --gm-brand-text: #86B6EC;
  --gm-chart-1: #86B6EC;
  --gm-chart-2: #D49A6E;
  --gm-danger: #F08068;
  --gm-danger-bg: #40312A;
  --gm-fast-bg: #86B6EC;
  --gm-fast-ink: #0B1B2C;
  --gm-focus: #86B6EC;
  --gm-heat-0: #1A231E;
  --gm-heat-1: #2E4A30;
  --gm-heat-2: #5B7A35;
  --gm-heat-3: #B08A45;
  --gm-heat-4: #E8B884;
  --gm-info: #86B6EC;
  --gm-info-bg: #2D3B42;
  --gm-ink: #E5EAE3;
  --gm-ink-2: #C2CBC4;
  --gm-ink-display: #E5EAE3;
  --gm-meter: #86B6EC;
  --gm-muted: #97A39B;
  --gm-neutral: #C2CBC4;
  --gm-neutral-bg: #373F3B;
  --gm-on-brand: #0B1B2C;
  --gm-paused: #97A39B;
  --gm-paused-bg: #303834;
  --gm-scrim: rgba(18,23,21,.45);
  --gm-selected-bg: #1B2C3F;
  --gm-selected-border: #86B6EC;
  --gm-selected-ink: #E5EAE3;
  --gm-shadow: 0 1px 2px rgba(0,0,0,.3);
  --gm-shadow-modal: 0 16px 40px rgba(18,23,21,.22);
  --gm-side-active: #1B2C3F;
  --gm-side-bg: #19201D;
  --gm-side-hover: #212A26;
  --gm-side-ink: #C2CBC4;
  --gm-side-muted: #97A39B;
  --gm-sidebar-accent: #86B6EC;
  --gm-slow-bg: #212A26;
  --gm-slow-border: transparent;
  --gm-slow-ink: #C2CBC4;
  --gm-success: #7CC27A;
  --gm-success-bg: #2B3D2E;
  --gm-surface: #19201D;
  --gm-surface-2: #212A26;
  --gm-tint: #86B6EC;
  --gm-uptime-down: #F08068;
  --gm-uptime-maint: #6D7A72;
  --gm-uptime-ok: #7CC27A;
  --gm-warning: #E8A94C;
  --gm-warning-bg: #3E3925;
  --tblr-body-bg-rgb: 18, 23, 21;
  --tblr-body-color-rgb: 229, 234, 227;
  --tblr-link-color-rgb: 134, 182, 236;
  --tblr-primary-rgb: 134, 182, 236;
  --gm-check-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%230B1B2C' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
}
