/* GCS Typography v3.2.7 — shared by the portal, admin and tenant modules.
   Sizes are relative to the browser preference. Minor Third: 1.2, base 1rem.
   UI small/caption sizes are deliberate readability exceptions to the ratio. */
@font-face {
  font-family: "Inter";
  src: url("../fonts/inter-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("../fonts/plus-jakarta-sans-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-heading: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  --font-mono: "Cascadia Code", Consolas, monospace;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --text-caption: .75rem;
  --text-small: .875rem;
  --text-body: 1rem;
  --text-h5: 1rem;
  --text-h4: 1.2rem;
  --text-h3: 1.44rem;
  --text-h2: 1.728rem;
  --text-h1: 2.0736rem;
  --text-display: 2.985984rem;
  --text-title: 1.2rem;
  --text-stat: 1.728rem;
  --leading-body: 1.5;
  --leading-heading: 1.2;
  --leading-title: 1.3;
  --leading-control: 1.5;
  font-family: var(--font-body);
  font-size: 100%;
  line-height: var(--leading-body);
}
html { -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-body); font-size: var(--text-body); font-weight: var(--weight-regular); line-height: var(--leading-body); }
html body :is(h1,h2,h3,h4,h5,h6) { font-family: var(--font-heading); font-weight: var(--weight-bold) !important; letter-spacing: -.02em; overflow-wrap: anywhere; }
h1, .gcs-type-h1 { font-size: var(--text-h1); line-height: var(--leading-heading); }
h2, .gcs-type-h2 { font-size: var(--text-h2); line-height: var(--leading-heading); }
h3, .gcs-type-h3 { font-size: var(--text-h3); line-height: 1.25; }
h4, .gcs-type-h4 { font-size: var(--text-h4); line-height: var(--leading-title); }
h5, .gcs-type-h5, h6 { font-size: var(--text-h5); line-height: 1.4; }
html body h5, .gcs-type-h5 { font-weight: var(--weight-medium) !important; }
.gcs-type-h1,.gcs-type-h2,.gcs-type-h3,.gcs-type-h4,.gcs-type-h5,.gcs-type-title { font-family: var(--font-heading); }
.gcs-type-title { font-size: var(--text-title); font-weight: var(--weight-bold); line-height: var(--leading-title); }
.gcs-type-body { font: var(--weight-regular) var(--text-body)/var(--leading-body) var(--font-body); }
.gcs-type-small { font: var(--weight-regular) var(--text-small)/var(--leading-body) var(--font-body); }
.gcs-type-caption { font: var(--weight-regular) var(--text-caption)/var(--leading-body) var(--font-body); }
small, figcaption { font-size: var(--text-caption); line-height: var(--leading-body); }
strong, b { font-weight: var(--weight-bold); }
code, pre, kbd, samp { font-family: var(--font-mono); }
button, input, select, textarea { font-family: var(--font-body); }
/* These semantic rules override compact legacy controls, including the report
   editor. A 1rem input also avoids automatic field zoom in mobile Safari. */
html body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]), select, textarea) {
  font-size: var(--text-body) !important;
  font-weight: var(--weight-regular);
  line-height: var(--leading-control) !important;
}
html body :is(label, .field, .form-label) { font-size: var(--text-small) !important; line-height: var(--leading-body); font-weight: var(--weight-medium); }
html body :is(button, .btn, .google-button, .text-link) { font-weight: var(--weight-medium); line-height: var(--leading-control); }
html body .btn { font-size: var(--text-small) !important; white-space: normal; text-align: center; }
html body :is(th,td) { font-family: var(--font-body); font-size: var(--text-small) !important; line-height: var(--leading-body); }
html body th { font-weight: var(--weight-medium); }
html body :is(table, .gcs-type-number, .kpi, .task-kpi, .cash-kpi, .financial-kpi, .treasury-kpis, .admin-kpis, .gcs-exec-group) { font-variant-numeric: lining-nums tabular-nums; }
html body :is(.kicker,.eyebrow,.sidebar-section-title,.finance-menu-label) { font-size: var(--text-caption); line-height: var(--leading-body); font-weight: var(--weight-medium); letter-spacing: .06em; }
html body :is(.finance-nav a,.admin-nav a,.portal-sidebar>a,.sidebar nav a,.sidebar nav button) { font-size: var(--text-small); font-weight: var(--weight-medium); line-height: var(--leading-body); white-space: normal; }
html body :is(.finance-brand strong,.sidebar-brand strong,.topbar-brand strong) { font-family: var(--font-heading); font-weight: var(--weight-bold); }
html body :is(.finance-brand small,.finance-company small,.finance-side-foot,.finance-side-foot small,.finance-user-name small) { font-size: var(--text-caption); line-height: var(--leading-body); }
.finance-brand small { letter-spacing: .06em; }
.finance-side-foot { flex-wrap: wrap; white-space: normal; }
html body :is(.page-head h1,.task-hero h1,.cash-hero h1,.report-event-hero h1,.meeting-hero h1,.meetings-page-head h1,.treasury-heading h1,.account-header h1,.library-hero h1) { font-size: var(--text-h1); line-height: var(--leading-heading); }
/* Heading role and document outline are independent: compact section/card
   headings retain h2/h3 semantics with the reusable Title role. */
html body :is(.panel h2,.page-head.compact h2,.activity-section h2,.activity-event-card h2,.task-chart-head h2,.task-day-head h2,.meeting-board-title h2,.meetings-board-title h2,.treasury-content h2,.section-head h2,.account-heading h2,.account-movements h2,.gcs-integrated-head h2,.gcs-fin-board-head h2) { font-size: var(--text-title); line-height: var(--leading-title); }
html body :is(.task-kpi strong,.treasury-kpis strong,.admin-kpis strong,.financial-kpi strong,.cash-kpi strong) { font-family: var(--font-body); font-size: var(--text-stat); font-weight: var(--weight-bold); line-height: var(--leading-heading); overflow-wrap: anywhere; }
html body :is(.login-story h1,.login-art h1,.landing-hero h1) { font-size: var(--text-display); line-height: var(--leading-heading); }
/* Fixed heights designed for 9–11px text must grow with the browser font. */
html body :is(.report-payment-dialog input,.report-payment-dialog select,.report-payment-dialog button,.screen-report input,.screen-report select) { height: auto; min-height: 2.5rem; }
html body :is(.report-payment-grid,.report-payment-allocation) label > span { font-size: var(--text-small); line-height: var(--leading-body); }
.finance-brand { height: auto; min-height: 5rem; padding-block: .75rem; }
.finance-brand span { min-width: 0; }
.finance-brand strong { letter-spacing: .02em; }
.finance-brand small { white-space: normal; }
/* Filters share the available width; native date fields must not enlarge the
   last grid track when rendered at the readable control size. */
html body .task-toolbar { grid-template-columns: repeat(5,minmax(0,1fr)); }
html body .task-toolbar > * { min-width: 0; }
/* A wide financial table scrolls inside its card; it must not define the
   minimum width of the dashboard's implicit grid column. */
html body .gcs-integrated-dashboard { grid-template-columns: minmax(0,1fr); min-width: 0; }
html body .gcs-integrated-dashboard > * { min-width: 0; max-width: 100%; }
@media (max-width: 64rem) {
  html body .task-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 40rem) {
  html body .task-toolbar { grid-template-columns: minmax(0,1fr); }
  html body .filters-bar { display: grid; grid-template-columns: minmax(0,1fr); }
  html body .filters-bar > * { min-width: 0; width: 100%; }
}
@media (max-width: 47.5rem) {
  :root {
    --text-h1: 1.728rem;
    --text-h2: 1.44rem;
    --text-h3: 1.2rem;
    --text-h4: 1rem;
    --text-display: 2.0736rem;
    --text-stat: 1.44rem;
  }
}
