/* fab.IO Design System — gerado a partir do design system. Substitui o tokens.css original.
   Nomes de variáveis mantidos; valores e aliases novos. */

/* ── colors (fab.IO tokens/colors.css) ── */
/* fab.IO colour system — v2 (modern). Brand indigo #353460 is the ATBL logo colour and never changes.
   Neutrals are a cool slate ramp tinted toward the brand hue (oklch h≈275); semantic and chart hues share
   matched lightness/chroma steps so they read as one family. Hex values are computed from the oklch noted. */
:root{
  color-scheme:light;
  /* Brand */
  --color-brand:#353460;              /* ATBL logo — identical in light and dark */
  --color-primary:var(--color-brand); /* fills: badges, filled buttons, selected dates, bars */
  --color-primary-ink:var(--color-brand); /* primary as text / outline / focus — lightens in dark */
  --color-action:#2261dd;             /* oklch(.53 .20 262) links, inline actions */
  --color-black:#000;
  --color-white:#fff;
  /* Neutrals — slate ramp */
  --color-text:#232630;               /* oklch(.27 .020 275) ink: text, outlines, solid hover */
  --color-text-muted:#666874;--color-inverse-surface:#2a2950;--color-inverse-text:#f8f9fc;--color-inverse-muted:rgba(248,249,252,.76);         /* oklch(.52 .018 275) ≥4.5:1 on white */
  --color-border:#ced0d9;            /* oklch(.86 .012 275) */
  --color-border-soft:#e4e6ec;       /* oklch(.925 .008 275) dividers, card borders */
  --color-surface:var(--color-white);--color-surface-raised:var(--color-white);
  --color-surface-soft:#f8f9fc;      /* oklch(.982 .004 275) sidebar, tool buttons */
  --color-surface-hover:#f1f2f9;     /* oklch(.962 .010 285) */
  --color-surface-muted:#edeef3;     /* oklch(.95 .006 275) */
  --color-ledger-text:#1a1c26;
  --color-ledger-muted:#9b9ea8;
  --color-ledger-border:#dcdee5;
  --color-ledger-surface:#f9fafc;
  /* Semantic — green (success) · amber (waiting) · red (attention) — each: solid / dark text / surface */
  --color-success:#329d5a;          /* oklch(.62 .14 152) */
  --color-success-dark:#22683b;     /* oklch(.46 .10 152) */
  --color-success-surface:#e9faec;  /* oklch(.968 .025 152) */
  --color-warning:#f4b93c;          /* oklch(.82 .15 82) */
  --color-warning-dark:#875814;     /* oklch(.50 .10 70) */
  --color-warning-surface:#fff5d4;  /* oklch(.972 .045 88) */
  --color-contact-attention:#c92f33; /* oklch(.55 .19 25) the attention red */
  --color-danger-dark:#932b2a;      /* oklch(.45 .14 25) */
  --color-danger-surface:#ffeeee;   /* oklch(.965 .02 20) */
  --color-danger-text:#fed2d0;      /* on dark screens */
  /* RGB triplets for alpha use */
  --rgb-white:255,255,255;
  --rgb-black:0,0,0;
  --rgb-screen-text:248,247,251;
  --rgb-field:71,66,121;
  --rgb-focus:172,166,231;
  --rgb-danger:201,47,51;
  --rgb-danger-light:244,122,121;
  --rgb-success:50,157,90;
  --rgb-primary:53,52,96;
  /* Dark "screen" surfaces (login, dialogs) — brand-indigo night */
  --screen-bg-soft:#171529;
  --screen-bg-middle:#10111d;
  --screen-bg-deep:#0c0d17;
  --screen-text:#f8f7fb;
  --screen-muted:rgba(var(--rgb-screen-text),0.5);
  --screen-muted-strong:rgba(var(--rgb-screen-text),0.76);
  --panel-bg:rgba(24,23,43,0.78);
  --panel-border:rgba(var(--rgb-focus),0.16);
  --field-bg:rgba(var(--rgb-field),0.88);
  --field-bg-soft:rgba(var(--rgb-field),0.58);
  --focus-border:rgba(var(--rgb-focus),0.72);
  --overlay-bg:rgba(5,6,12,.68);
  /* Pipeline stage tones — one lightness (oklch .90–.91, C .035–.04), four hues */
  --crm-tone-contacts:#e2e4c6;   /* h110 sage */
  --crm-tone-quotes:#f6d6c9;     /* h45 clay */
  --crm-tone-orders:#c7e3f1;     /* h230 steel */
  --crm-tone-invoices:#cae6d3;   /* h155 mint */
  /* Status scale — on target → critical */
  --color-chart-active:#48a260;      /* oklch(.64 .13 150) */
  --color-chart-active-soft:#9fd3a9; /* oklch(.82 .08 150) */
  --color-chart-attention:#e6ac3d;   /* oklch(.78 .14 80) */
  --color-chart-risk:#e27641;        /* oklch(.68 .15 45) */
  --color-chart-critical:#c92f33;    /* oklch(.55 .19 25) */
  --color-chart-muted:#a9aab1;       /* oklch(.74 .01 275) */
  --color-profit:var(--color-chart-active);
  --color-loss:var(--color-chart-critical);
  /* Categorical series — brand first, then evenly spaced hues at matched weight */
  --chart-color-1:var(--color-primary);
  --chart-color-2:#3a84ca;  /* oklch(.60 .13 250) blue */
  --chart-color-3:#41b2b2;  /* oklch(.70 .10 195) teal */
  --chart-color-4:#4fa866;  /* oklch(.66 .13 150) green */
  --chart-color-5:#e3ad4b;  /* oklch(.78 .13 80) amber */
  --chart-color-6:#dc5f4e;  /* oklch(.64 .16 30) coral */
}
/* Re-resolve aliases inside any themed subtree (custom properties compute where declared). */
[data-theme]{
  --color-surface:var(--color-white);--color-surface-raised:var(--color-white);--screen-muted:rgba(var(--rgb-screen-text),0.5);--screen-muted-strong:rgba(var(--rgb-screen-text),0.76);--panel-border:rgba(var(--rgb-focus),0.16);--field-bg:rgba(var(--rgb-field),0.88);--field-bg-soft:rgba(var(--rgb-field),0.58);--focus-border:rgba(var(--rgb-focus),0.72);--color-profit:var(--color-chart-active);--color-loss:var(--color-chart-critical);--chart-color-1:var(--color-primary);
}
/* Light is the default; these scopes force either theme on any subtree. */
[data-theme="light"]{
  color-scheme:light;
  --color-primary-ink:var(--color-brand);
  --color-surface:var(--color-white);--color-surface-raised:var(--color-white);--color-surface-soft:#f8f9fc;--color-surface-hover:#f1f2f9;--color-surface-muted:#edeef3;--color-text:#232630;--color-text-muted:#666874;--color-inverse-surface:#2a2950;--color-inverse-text:#f8f9fc;--color-inverse-muted:rgba(248,249,252,.76);--color-border:#ced0d9;--color-border-soft:#e4e6ec;--color-action:#2261dd;--color-chart-active:#48a260;--color-chart-active-soft:#9fd3a9;--color-chart-critical:#c92f33;--color-chart-attention:#e6ac3d;--color-chart-risk:#e27641;--color-chart-muted:#a9aab1;--chart-color-1:var(--color-primary);--chart-color-2:#3a84ca;--chart-color-3:#41b2b2;--chart-color-4:#4fa866;--chart-color-5:#e3ad4b;--chart-color-6:#dc5f4e;--color-success:#329d5a;--color-success-dark:#22683b;--color-success-surface:#e9faec;--color-warning-dark:#875814;--color-warning-surface:#fff5d4;--color-danger-dark:#932b2a;--color-danger-surface:#ffeeee;--color-contact-attention:#c92f33;--crm-tone-contacts:#e2e4c6;--crm-tone-quotes:#f6d6c9;--crm-tone-orders:#c7e3f1;--crm-tone-invoices:#cae6d3;
}
[data-theme="dark"]{
  color-scheme:dark;
  --color-inverse-surface:#2a2950;--color-inverse-text:#f8f9fc;--color-inverse-muted:rgba(248,249,252,.76);
  /* --color-primary stays the logo colour; only its text/outline use (--color-primary-ink) lightens */
  --color-surface:#171920;--color-surface-soft:#111219;--color-surface-hover:#262631;--color-surface-muted:#1e2028;--color-surface-raised:#20222b;
  --color-text:#eff0f4;--color-text-muted:#a8aab5;--color-border:#4a4d55;--color-border-soft:#2e3038;
  --color-primary:var(--color-brand);--color-primary-ink:#aba9e8;--color-action:#7daafd;
  --color-chart-active:#69c27e;--color-chart-active-soft:#a6daaf;--color-chart-critical:#f2716a;--color-chart-attention:#f0be67;--color-chart-risk:#f0986f;--color-chart-muted:#7e8088;
  --chart-color-1:#aba9e8;--chart-color-2:#6da9e7;--chart-color-3:#6bcac9;--chart-color-4:#6fc082;--chart-color-5:#f0be67;--chart-color-6:#f28979;
  --color-success:#5dc47e;--color-success-dark:#7fd497;--color-success-surface:#192f1f;
  --color-warning-dark:#eec474;--color-warning-surface:#362913;
  --color-danger-dark:#f8a49d;--color-danger-surface:#3a211f;--color-contact-attention:#f17070;
  --crm-tone-contacts:#3e3f29;--crm-tone-quotes:#4f372c;--crm-tone-orders:#29414c;--crm-tone-invoices:#2c4334;
}


/* ── semantic (fab.IO tokens/semantic.css) ── */
/* fab.IO semantic layer — reach for these first; base tokens are the palette behind them.
   Brand palette: blue (primary/action) · black (ink) · gray (muted/borders) · red (attention) · green (success). */
:root{
  /* Text */
  --text-body:var(--color-text); /* @kind color */
  --text-muted:var(--color-text-muted); /* @kind color */
  --text-inverse:var(--color-white); /* @kind color */
  --text-link:var(--color-action); /* @kind color */
  --text-attention:var(--color-contact-attention); /* @kind color */
  --text-success:var(--color-success-dark); /* @kind color */
  --text-warning:var(--color-warning-dark); /* @kind color */
  /* Surfaces */
  --surface-page:var(--color-surface-soft);
  --surface-card:var(--color-surface);
  --surface-card-raised:var(--color-surface-raised); /* cards on tinted columns — lifts one step in dark */
  --surface-sidebar:var(--color-surface);
  --surface-hover:var(--color-surface-hover);
  --surface-screen:var(--screen-bg-soft);
  --surface-attention:var(--color-danger-surface);
  --surface-success:var(--color-success-surface);
  --surface-warning:var(--color-warning-surface);
  /* Lines */
  --border-divider:var(--color-border-soft);
  --border-control:var(--color-text);
  --border-strong:var(--color-text);
  /* Interactive */
  --action-primary:var(--color-primary);
  --action-primary-ink:var(--color-primary-ink);
  --brand:var(--color-brand);
  --action-primary-fg:var(--color-white);
  --action-outline:var(--color-text);
  --action-hover-bg:var(--color-text);
  --action-hover-fg:var(--color-white);
  --focus-ring:var(--shadow-focus);
  /* Status (goal / health) */
  --status-on-target:var(--color-success);
  --status-below-target:var(--color-contact-attention);
  --status-no-base:var(--color-text-muted);
  --status-waiting:var(--color-warning-dark);
  /* Data-viz — one grammar for every chart */
  --chart-grid:var(--color-border-soft);            /* hairline gridlines */
  --chart-baseline:var(--color-text);               /* zero line, 1px */
  --chart-axis-text:var(--color-text-muted);        /* tick labels */
  --chart-series:var(--chart-color-1);              /* the highlighted series (brand) */
  --chart-series-tint:color-mix(in srgb,var(--chart-color-1) 10%,var(--color-surface)); /* forecast base */
  --chart-reference:var(--color-text);              /* comparison ticks / prior period */
  --chart-context:color-mix(in srgb,var(--color-chart-muted) 55%,var(--color-surface)); /* de-emphasised data */
  --chart-hover-band:var(--color-surface-soft);
  /* Patterns — single hatch standard: 135°, 1px line, 5px pitch */
  --hatch-line:color-mix(in srgb,var(--color-text) 24%,transparent);
  --pattern-gap:repeating-linear-gradient(135deg,var(--hatch-line) 0 1px,transparent 1px 5px),linear-gradient(var(--color-surface-soft),var(--color-surface-soft));
  --pattern-forecast:repeating-linear-gradient(135deg,color-mix(in srgb,var(--chart-color-1) 55%,transparent) 0 1px,transparent 1px 5px),linear-gradient(var(--chart-series-tint),var(--chart-series-tint));
  /* Brand pattern. Primary expression = the business-card field: one oversized symbol, cropped, as a hairline outline (assets/logo/pattern/atbl-outline-field-*-seamless.svg — seamless tile, 420px, 12–22% opacity, hairline; marks are only ever cut by the container edge). Secondary = the small repeated tile below (4–8%). Never behind body text. */
  --brand-pattern-white:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20192%20192%22%20width%3D%22192%22%20height%3D%22192%22%20fill%3D%22%23ffffff%22%3E%3Cg%20transform%3D%22translate%2834%2034%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28130%20130%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --brand-pattern-ink:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20192%20192%22%20width%3D%22192%22%20height%3D%22192%22%20fill%3D%22%23353460%22%3E%3Cg%20transform%3D%22translate%2834%2034%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28130%20130%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --brand-pattern-size:192px;
  --brand-gradient:linear-gradient(180deg,var(--color-brand) 0%,var(--screen-bg-soft) 70%,var(--screen-bg-deep) 100%);
  /* Layout */
  --space-card:18px;
  --space-page:clamp(30px,3vw,50px);
  --gap-column:15px;
  --height-control:var(--crm-control-height);
  --radius-card:var(--radius-sm);
  --radius-control:var(--radius-pill);
  --radius-dialog:var(--radius-md);
  --color-viewfinder:#0b0c10; /* visor de câmera, recorte e ZPL bruto: escuro nos dois temas */
}
/* Same aliases, re-resolved inside any [data-theme] subtree */
[data-theme]{

  --text-body:var(--color-text);
  --text-muted:var(--color-text-muted);
  --text-inverse:var(--color-white);
  --text-link:var(--color-action);
  --text-attention:var(--color-contact-attention);
  --text-success:var(--color-success-dark);
  --text-warning:var(--color-warning-dark);
  --surface-page:var(--color-surface-soft);
  --surface-card:var(--color-surface);
  --surface-card-raised:var(--color-surface-raised); /* cards on tinted columns — lifts one step in dark */
  --surface-sidebar:var(--color-surface);
  --surface-hover:var(--color-surface-hover);
  --surface-screen:var(--screen-bg-soft);
  --surface-attention:var(--color-danger-surface);
  --surface-success:var(--color-success-surface);
  --surface-warning:var(--color-warning-surface);
  --border-divider:var(--color-border-soft);
  --border-control:var(--color-text);
  --border-strong:var(--color-text);
  --action-primary:var(--color-primary);
  --action-primary-ink:var(--color-primary-ink);
  --brand:var(--color-brand);
  --action-primary-fg:var(--color-white);
  --action-outline:var(--color-text);
  --action-hover-bg:var(--color-text);
  --action-hover-fg:var(--color-white);
  --focus-ring:var(--shadow-focus);
  --status-on-target:var(--color-success);
  --status-below-target:var(--color-contact-attention);
  --status-no-base:var(--color-text-muted);
  --status-waiting:var(--color-warning-dark);
  --chart-grid:var(--color-border-soft);
  --chart-baseline:var(--color-text);
  --chart-axis-text:var(--color-text-muted);
  --chart-series:var(--chart-color-1);
  --chart-series-tint:color-mix(in srgb,var(--chart-color-1) 10%,var(--color-surface));
  --chart-reference:var(--color-text);
  --chart-context:color-mix(in srgb,var(--color-chart-muted) 55%,var(--color-surface));
  --chart-hover-band:var(--color-surface-soft);
  --hatch-line:color-mix(in srgb,var(--color-text) 24%,transparent);
  --pattern-gap:repeating-linear-gradient(135deg,var(--hatch-line) 0 1px,transparent 1px 5px),linear-gradient(var(--color-surface-soft),var(--color-surface-soft));
  --pattern-forecast:repeating-linear-gradient(135deg,color-mix(in srgb,var(--chart-color-1) 55%,transparent) 0 1px,transparent 1px 5px),linear-gradient(var(--chart-series-tint),var(--chart-series-tint));
  --space-card:18px;
  --space-page:clamp(30px,3vw,50px);
  --gap-column:15px;
  --height-control:var(--crm-control-height);
  --radius-card:var(--radius-sm);
  --radius-control:var(--radius-pill);
  --radius-dialog:var(--radius-md);
  --color-viewfinder:#0b0c10; /* visor de câmera, recorte e ZPL bruto: escuro nos dois temas */

  --brand-pattern-white:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20192%20192%22%20width%3D%22192%22%20height%3D%22192%22%20fill%3D%22%23ffffff%22%3E%3Cg%20transform%3D%22translate%2834%2034%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28130%20130%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --brand-pattern-ink:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20192%20192%22%20width%3D%22192%22%20height%3D%22192%22%20fill%3D%22%23353460%22%3E%3Cg%20transform%3D%22translate%2834%2034%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28130%20130%29%20scale%280.8484848484848485%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --brand-pattern-size:192px;
  --brand-gradient:linear-gradient(180deg,var(--color-brand) 0%,var(--screen-bg-soft) 70%,var(--screen-bg-deep) 100%);

}


/* ── typography (fab.IO tokens/typography.css) ── */
:root{
  --font-family:'Flama Condensed Book','Flama Condensed',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-family-book:'Flama Condensed Book',var(--font-family);
  --font-family-heading:'Flama Condensed Bold',var(--font-family);
  --font-family-basic:'Flama Condensed Basic',sans-serif;   /* card body copy, 14px */
  --font-family-medium:'Flama Condensed Medium',sans-serif; /* card meta, 17px */
  --font-display:var(--font-family-heading);
  --font-body:var(--font-family);

  --font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;
  --font-weight-bold:700;--font-weight-heavy:700;--font-weight-black:700;

  --font-size-2xs:12px; /* piso de legibilidade — só microrrótulos em caixa alta (contagens de legenda, tags) */
  /* Escala revista (10/10/2026, legibilidade): os degraus pequenos subiram ~1px — a Flama Condensed é estreita e
     lia pequena em 12/13,5/15. lg e xl ficam como estavam (títulos e valores já eram legíveis). */
  --font-size-xs:13px;    /* rótulos, eixos, metadados curtos */
  --font-size-sm:14.5px;  /* texto secundário, links de ação, células de tabela */
  --font-size-md:16px;    /* texto de linha, subtítulos */
  --font-size-lg:18px;
  --font-size-xl:24px;
  --font-size-row:17px;   /* celular: título de linha e campos de folha (corpo do iOS) */
  --font-size-stat:clamp(34px,5vw,46px);
  --font-size-login-field:22px;
  --font-size-login-message:17px;
  --font-size-metric-summary:clamp(var(--font-size-xl),2.6vw,calc(var(--font-size-xl) * 1.45));

  --line-height-tight:1.2;
  --line-height-body:1.35;
  --tracking-tight:0;
  --tracking-normal:0.01em;
  --tracking-wide:0.02em;
  --tracking-wider:0.025em;
}


/* ── spacing (fab.IO tokens/spacing.css) ── */
:root{
  /* 10px structural grid; everything is a multiple of --grid-unit */
  --grid-unit:10px;
  --space-1:5px;--space-2:10px;--space-3:14px;--space-4:16px;
  --field-gap:calc(var(--grid-unit) * .75);
  /* Header axis: page top padding + offset to the CrmTopbar title centre. Sidebar logo + collapse toggle centre on it. */
  --crm-page-pad-top:10px;
  --crm-title-axis:calc(var(--crm-page-pad-top) + 32px);
  --crm-sidebar-width:calc(var(--grid-unit) * 24);
  --crm-sidebar-collapsed-width:calc(var(--grid-unit) * 7.5);
  --crm-control-height:calc(var(--grid-unit) * 4.5);
  --crm-column-min-width:calc(var(--grid-unit) * 25);
  --crm-avatar-size:calc(var(--grid-unit) * 5);

  /* Bars — one scale for every progress / stacked / capsule bar */
  --bar-height-xs:3px;      /* inline margin bars */
  --bar-height:6px;         /* default track, stacked, deadline split */
  --bar-height-lg:12px;     /* hero goal bar */
  --bar-capsule:9px;        /* vertical month capsules */
  --bar-segment-gap:2px;    /* gap between stacked segments */
  /* Icons — Solar, linear (rest) + bold (selected) */
  --icon-sm:16px;--icon-md:20px;--icon-lg:24px;
  /* Radii */
  --radius-xs:2px;--radius-item:4px;--radius-sm:5px;--radius-md:8px;--radius-lg:10px;--radius-xl:16px;
  --radius-round:50%;--radius-pill:999px;

  /* Borders */
  --border-width:1px;--border-width-strong:2px;--border-width-accent:3px;
  --focus-offset:3px;

  /* Shadows */
  --shadow-focus:0 0 0 3px color-mix(in srgb,var(--color-primary-ink) 28%,transparent);
  --shadow-control:0 1px 3px rgba(0,0,0,.10);
  --shadow-control-hover:0 3px 8px rgba(0,0,0,.14);
  --shadow-subtle:0 2px 3px rgba(0,0,0,.12);
  --shadow-card:0 2.5px 7.5px rgba(0,0,0,0.1);
  --shadow-hover:0 10px 24px rgba(0,0,0,.16),0 2px 6px rgba(0,0,0,.06);
  --shadow-popover:0 10px 28px rgba(16,18,32,.12),0 1px 3px rgba(16,18,32,.08);
  --shadow-modal:0 24px 70px rgba(0,0,0,0.42);

  /* Motion */
  --motion-duration-micro:120ms;
  --motion-duration-fast:180ms;
  --motion-duration-base:240ms;
  --motion-duration-reveal:480ms;
  --motion-stagger-card:35ms;
  --motion-ease-standard:ease;
  --motion-ease-emphasized:cubic-bezier(0.2,0.8,0.2,1);
  --transition-fast:var(--motion-duration-fast) var(--motion-ease-standard);
  --transition-base:var(--motion-duration-base) var(--motion-ease-standard);
  --transition-interactive:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),color var(--transition-fast);
  --transition-field:background var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base);

  /* Opacity / layers */
  --opacity-overlay:.68;
  --opacity-disabled:.6;
  --overlay-blur:10px;
  --z-popover:40;
  --z-modal:1600;
  --z-index-tooltip:1700;
}

/* Compat legado — variáveis do tokens.css anterior que o fab.IO não define,
   mas que componentes do CRM ainda usam. Valores originais preservados. */
:root{
  --flamacondensed-semibold:'Flama Condensed Semibold';
  --font-size-tooltip-title:18px;
  --font-size-tooltip-emphasis:18px;
  --font-size-tooltip-body:15px;
  --font-size-metric-forecast:clamp(var(--font-size-lg), 2.1vw, calc(var(--font-size-xl) * 1.3));
  --relation-line-color:rgba(var(--rgb-primary), .2);
  --relation-line-width:var(--border-width-strong);
  --relation-line-shadow:drop-shadow(0 calc(var(--grid-unit) * .25) calc(var(--grid-unit) * .25) rgba(var(--rgb-black), .06));
  --opacity-state-subtle:.12;
  --opacity-state-muted:.62;
  --chart-stroke-width:34px;
  --chart-height-default:330px;
  --chart-height-compact:270px;
  --chart-height-cash-forecast:290px;
  --chart-height-balance:520px;
  --calendar-header-height:52px;
  --calendar-weekday-height:25px;
  --calendar-control-size:34px;
  --calendar-day-number-size:24px;
  --field-bg-focus:rgba(83, 78, 139, 0.95);
  --field-bg-focus-soft:rgba(83, 78, 139, 0.86);
}

/* Destaque mobile (1 por tela, .mk-ink): azul da marca com o campo de marcas em contorno, igual no claro e no escuro. */
:root,[data-theme]{
  --inverse-fill:linear-gradient(160deg,rgba(53,52,96,.86) 0%,rgba(23,21,41,.86) 100%),url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20896%22%20width%3D%22640%22%20height%3D%22896%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%220.18%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20transform%3D%22translate%28-60%2060%29%20scale%2813%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28580%2060%29%20scale%2813%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-310%20-120%29%20scale%289.5%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-310%20776%29%20scale%289.5%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28330%20-120%29%20scale%289.5%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28330%20776%29%20scale%289.5%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28-150%20520%29%20scale%2811%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28490%20520%29%20scale%2811%29%22%3E%3Cpath%20d%3D%22M28.4%2017.3c0%203.3-2.7%205.9-5.9%205.9s-5.9-2.6-5.9-5.9%202.7-5.9%205.9-5.9c.8%200%201.5.2%202.2.4h-.6a3.3%203.3%200%200%200%200%206.4%203.2%203.2%200%200%200%202.8-4.7c.8%201%201.4%202.3%201.4%203.8M19.4%2010a2.9%202.9%200%201%201-5.8%200%202.9%202.9%200%200%201%205.8%200M10.5%2011.4c3.3%200%205.9%202.7%205.9%205.9s-2.6%205.9-5.9%205.9-5.9-2.6-5.9-5.9c0-1.5.5-2.8%201.4-3.8a3.2%203.2%200%200%200%202.8%204.7%203.3%203.3%200%200%200%200-6.4h-.6c.7-.3%201.4-.4%202.2-.4M33%2016.5A16.5%2016.5%200%201%200%200%2016.5a16.5%2016.5%200%200%200%2033%200%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E") -20px -30px / 420px,linear-gradient(160deg,var(--color-brand) 0%,var(--screen-bg-soft) 100%);
}
