/* Government Portal — global styles. Component classes live in css/components.css;
   this file is resets, typography, and page chrome only. Logical properties
   (margin-inline-*, padding-inline-*, inset-inline-*) are used throughout so RTL
   is automatic from the <html dir="rtl"> attribute — no separate RTL stylesheet. */

*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: var(--gp-font-body);
  font-size: var(--gp-fs-base);
  line-height: var(--gp-lh-base);
  color: var(--gp-text);
  background: var(--gp-bg);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--gp-font-body); font-weight: 700; line-height: var(--gp-lh-tight); margin: 0 0 var(--gp-space-3); color: var(--gp-navy-900); }
h1 { font-size: var(--gp-fs-2xl); }
h2 { font-size: var(--gp-fs-xl); }
h3 { font-size: var(--gp-fs-lg); }
p { margin: 0 0 var(--gp-space-3); }
a { color: var(--gp-link); }
a:hover { text-decoration: none; }
img { max-width: 100%; }
button { font: inherit; }

/* One consistent focus ring for anything not already using .btn/.input's own focus style */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: none; box-shadow: var(--gp-shadow-focus); border-radius: var(--gp-radius-sm);
}

/* No horizontal overflow at any width */
html { overflow-x: hidden; }

/* Bilingual numerals stay tabular so amounts/dates/reference numbers line up */
.mono, .req-key, .amount { font-variant-numeric: tabular-nums; }

::selection { background: var(--gp-navy-100); }

#blazor-error-ui {
  background: var(--gp-warning-100); color: var(--gp-warning-700);
  bottom: 0; box-shadow: var(--gp-shadow-md); display: none; left: 0; position: fixed; width: 100%;
  padding: var(--gp-space-3) var(--gp-space-5); z-index: 1000;
}
#blazor-error-ui .dismiss { cursor: pointer; float: inline-end; }
