/* app-tokens.css — ÚNICO local de CSS custom (FAIRCLOUD §3.7).
 *
 * Design system FairPoint/FairCloud aplicado. Ordem importa (ver
 * .design-sync/NOTES.md do bundle de origem): tokens de marca primeiro,
 * depois o reset base (precisa vencer os defaults do Tabler, que já foi
 * carregado antes deste arquivo em base.html), e por último a ponte que
 * repinta as variáveis --tblr-* do Tabler — ela precisa vir por último
 * para vencer os defaults do próprio Tabler.
 *
 * Regra do design system: nunca sobrescrever um componente Tabler com CSS
 * próprio para ajustar cor/raio/fonte — ajustar aqui, na ponte.
 */

/* ==========================================================================
   1. Fontes (self-hosted, latin + latin-ext — cobre pt-BR)
   ========================================================================== */

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/static/vendor/fairpoint-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;
  font-display: swap;
  src: url('/static/vendor/fairpoint-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;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/static/vendor/fairpoint-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: 500;
  font-display: swap;
  src: url('/static/vendor/fairpoint-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;
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/static/vendor/fairpoint-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: 600;
  font-display: swap;
  src: url('/static/vendor/fairpoint-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;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Mulish';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/mulish-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: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-400-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: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-400-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: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-500-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: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-500-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: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-600-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: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-600-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: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-700-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: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-700-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: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-800-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: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/static/vendor/fairpoint-fonts/poppins-800-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;
}

/* ==========================================================================
   2. Cores
   ========================================================================== */

:root {
  /* Brand core */
  --fp-ink: #032556;
  --fp-deep: #004c95;
  --fp-blue: #0096e7;
  --fp-cyan: #00bef4;

  /* Primary scale */
  --primary-50:  #e6f5fd;
  --primary-100: #c3e7fb;
  --primary-200: #8fd3f7;
  --primary-300: #4fb8f0;
  --primary-400: #1aa2ec;
  --primary-500: #0096e7;
  --primary-600: #0079c4;
  --primary-700: #005faa;
  --primary-800: #004c95;
  --primary-900: #032556;

  /* Cyan scale */
  --cyan-50:  #e5f9fe;
  --cyan-100: #bef0fd;
  --cyan-200: #86e2fb;
  --cyan-300: #4bd2f8;
  --cyan-400: #00bef4;
  --cyan-500: #00a5d6;
  --cyan-600: #0086b0;

  /* Neutral scale */
  --gray-0:   #ffffff;
  --gray-50:  #f4f7fb;
  --gray-100: #e9eff6;
  --gray-200: #d5dfea;
  --gray-300: #b3c2d4;
  --gray-400: #8497ad;
  --gray-500: #5f7086;
  --gray-600: #46566a;
  --gray-700: #334153;
  --gray-800: #1f2c3d;
  --gray-900: #0d1826;

  /* Status */
  --success-50:  #e8f7ee;
  --success-500: #16a34a;
  --success-600: #128040;
  --warning-50:  #fef4e6;
  --warning-500: #f59e0b;
  --warning-600: #c77c05;
  --danger-50:   #fdecec;
  --danger-500:  #e5484d;
  --danger-600:  #c5343a;
  --info-50:     var(--primary-50);
  --info-500:    var(--primary-500);

  /* Semantic aliases */
  --text-strong:   var(--fp-ink);
  --text-body:     var(--gray-700);
  --text-muted:    var(--gray-500);
  --text-subtle:   var(--gray-400);
  --text-on-brand: #ffffff;
  --text-link:     var(--primary-600);
  --text-link-hover: var(--primary-800);

  --surface-page:   var(--gray-50);
  --surface-card:   #ffffff;
  --surface-sunken: var(--gray-100);
  --surface-inverse: var(--fp-ink);
  --surface-brand:  var(--primary-500);
  --surface-brand-subtle: var(--primary-50);

  --border-subtle:  var(--gray-200);
  --border-default: var(--gray-300);
  --border-strong:  var(--gray-400);
  --border-focus:   var(--primary-500);

  /* Gradientes — no máximo um por tela */
  --gradient-brand: linear-gradient(120deg, #004c95 0%, #0096e7 55%, #00bef4 100%);
  --gradient-ink:   linear-gradient(160deg, #032556 0%, #004c95 100%);

  /* ==========================================================================
     3. Tipografia
     ========================================================================== */
  --font-display: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body: 'Mulish', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-md:   1.125rem;
  --text-lg:   1.25rem;
  --text-xl:   1.5rem;
  --text-2xl:  1.875rem;
  --text-3xl:  2.25rem;
  --text-4xl:  3rem;
  --text-5xl:  3.75rem;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;

  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-caps: 0.14em;

  /* ==========================================================================
     4. Espaço, raio, contêiner
     ========================================================================== */
  --space-0: 0;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;

  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  --container-sm: 640px;
  --container-md: 960px;
  --container-lg: 1200px;

  /* ==========================================================================
     5. Elevação e movimento
     ========================================================================== */
  --shadow-xs: 0 1px 2px rgba(3, 37, 86, 0.06);
  --shadow-sm: 0 1px 3px rgba(3, 37, 86, 0.08), 0 1px 2px rgba(3, 37, 86, 0.06);
  --shadow-md: 0 4px 12px rgba(3, 37, 86, 0.10), 0 2px 4px rgba(3, 37, 86, 0.06);
  --shadow-lg: 0 12px 28px rgba(3, 37, 86, 0.12), 0 4px 10px rgba(3, 37, 86, 0.06);
  --shadow-xl: 0 24px 56px rgba(3, 37, 86, 0.16);
  --shadow-focus: 0 0 0 3px rgba(0, 150, 231, 0.35);
  --shadow-brand: 0 8px 24px rgba(0, 150, 231, 0.28);

  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-emphasized: cubic-bezier(0.3, 0, 0, 1);
  --duration-fast: 120ms;
  --duration-base: 180ms;
  --duration-slow: 280ms;
}

/* ==========================================================================
   6. Reset base — precisa vencer os defaults do Tabler, carregado antes
   ========================================================================== */

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--text-strong);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  margin: 0;
  font-weight: var(--weight-bold);
}
p { margin: 0; text-wrap: pretty; }
a { color: var(--text-link); text-decoration: none; transition: color var(--duration-fast) var(--ease-standard); }
a:hover { color: var(--text-link-hover); }
code, pre, kbd { font-family: var(--font-mono); }
:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-xs); }

.fp-eyebrow {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-caps);
  font-size: var(--text-xs);
  color: var(--primary-600);
}

/* ==========================================================================
   7. Ponte de tokens para o Tabler — SEMPRE por último, para vencer os
   defaults do Tabler. Nunca sobrescrever um componente Tabler com CSS
   próprio para ajustar cor/raio/fonte: ajustar aqui.
   ========================================================================== */

:root {
  --tblr-primary: var(--primary-500);
  --tblr-primary-rgb: 0, 150, 231;
  --tblr-link-color: var(--primary-600);
  --tblr-link-color-hover: var(--primary-800);
  --tblr-body-color: var(--gray-700);
  --tblr-secondary-color: var(--gray-500);
  --tblr-body-bg: var(--gray-50);
  --tblr-border-color: var(--gray-200);
  --tblr-border-color-translucent: var(--gray-200);
  --tblr-navbar-bg: var(--fp-ink);

  --tblr-success: var(--success-500);
  --tblr-warning: var(--warning-500);
  --tblr-danger: var(--danger-500);
  --tblr-info: var(--info-500);

  --tblr-border-radius: 8px;

  --tblr-font-sans-serif: var(--font-body);
  --tblr-font-monospace: var(--font-mono);
}

h1, h2, h3, .page-title, .card-title {
  font-family: var(--font-display);
  font-weight: var(--weight-semibold);
}

/* Botão de ação em tabela: sempre quadrado, lados iguais. */
.btn-icon {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
}

/* ==========================================================================
   8. Login — superfície de marca. Exceção deliberada: é a única tela do
   produto com gradiente e layout bespoke; todo o resto é Tabler puro.
   ========================================================================== */

.login-split {
  min-height: 100vh;
  display: flex;
}
.login-pane {
  flex: 1 1 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
}
.login-form-wrap {
  width: 100%;
  max-width: 380px;
}
.login-brand-pane {
  position: relative;
  overflow: hidden;
  background: var(--gradient-ink);
  align-items: center;
}
.login-brand-pane::after {
  content: "";
  position: absolute;
  top: -120px;
  right: -140px;
  width: 460px;
  height: 460px;
  border-radius: var(--radius-pill);
  background: radial-gradient(circle, rgba(0, 190, 244, .35), transparent 65%);
}
.login-brand-content {
  position: relative;
  max-width: 460px;
}
.login-brand-eyebrow {
  font-family: var(--font-display);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--cyan-300);
}
.login-brand-lede {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: #fff;
  margin-top: var(--space-3);
}
.login-brand-sub {
  color: rgba(255, 255, 255, .82);
  margin-top: var(--space-3);
}
.login-brand-features {
  list-style: none;
  padding: 0;
  margin: var(--space-6) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.login-brand-features li {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: rgba(255, 255, 255, .92);
  font-size: var(--text-sm);
}
.login-brand-features .ti {
  color: var(--cyan-300);
  font-size: var(--text-lg);
}
/* Responsividade: esconder o painel de marca em telas pequenas via
   utilitário Tabler (d-none d-lg-flex) no template, não aqui. */

/* ==========================================================================
   9. Utilidades pontuais — sem equivalente no Tabler, mantidas aqui em vez
   de style="" inline (regra: zero estilo inline no projeto).
   ========================================================================== */

/* Visualizador de arquivo-fonte (/agente/source) — precisa de rolagem e
   tamanho de fonte menor que o padrão do Tabler pra código extenso. */
.code-viewer {
  max-height: 70vh;
  overflow: auto;
  font-size: var(--text-xs);
}
