/* nazimhossain.org design tokens.
   Light is the default; dark follows the visitor's device setting.
   Every text colour meets WCAG AAA (7:1) against its background; borders meet 3:1. */
:root {
  color-scheme: light dark;

  /* Colour */
  --paper: #F7F9F8;        /* page background: clean, slightly cool white */
  --surface: #E9EFEC;      /* alternate sections and form panels */
  --ink: #14201B;          /* body text and headings */
  --ink-soft: #3B4842;     /* dates, captions and hints */
  --green: #08573F;        /* signature: links, buttons, braille mark */
  --green-deep: #0C3A2D;   /* footer band */
  --on-deep: #F7F9F8;      /* text on the footer band */
  --link-on-deep: #BFE5D4; /* links on the footer band */
  --red: #A8231A;          /* error messages and required markers only */
  --sun: #D42A3C;          /* the single red dot in the braille mark, decoration only */
  --line: #6A7872;         /* input borders */
  --rule: #C9D3CE;         /* decorative dividers */
  --green-hover: #064532;  /* button background on hover */
  --focus: #14201B;        /* focus outline on light backgrounds */
  --focus-on-deep: #F7F9F8;

  /* Type */
  --font-display: "Tiro Bangla", "Noto Serif Bengali", Georgia, serif;
  --font-body: "Atkinson Hyperlegible Next", "Noto Sans Bengali", system-ui, sans-serif;
  --size-small: 1rem;      /* 16px, the smallest text anywhere on the site */
  --size-body: 1.125rem;   /* 18px */
  --size-h4: 1.3125rem;    /* 21px */
  --size-h3: 1.5rem;       /* 24px */
  --size-h2: 2.25rem;      /* 36px */
  --size-h1: 3rem;         /* 48px */
  --size-hero: 3.75rem;    /* 60px, the name on the home page */
  --leading-body: 1.6;
  --leading-display: 1.15;
  --measure: 68ch;

  /* Space, built on the 18px body size */
  --space-1: 0.375rem;
  --space-2: 0.75rem;
  --space-3: 1.125rem;
  --space-4: 1.6875rem;
  --space-5: 2.25rem;
  --space-6: 3.375rem;
  --space-7: 4.5rem;

  --radius: 4px;
  --focus-ring: 3px solid var(--focus);
  --target-min: 44px;      /* minimum size of anything clickable */
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #0F1714;
    --surface: #17221E;
    --ink: #E6EDE9;
    --ink-soft: #B9C6C0;
    --green: #8FD3B6;
    --green-deep: #0A231C;
    --on-deep: #E6EDE9;
    --link-on-deep: #A9DCC6;
    --red: #FF9C90;
    --sun: #FF7A85;
    --line: #71837B;
    --rule: #2C3A35;
    --green-hover: #B0E2CD;
    --focus: #E6EDE9;
    --focus-on-deep: #E6EDE9;
  }
}


/* Self-hosted fonts. No requests are made to Google or any other font service. */
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/atkinson-hyperlegible-next-latin-ext-400-normal.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: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/atkinson-hyperlegible-next-latin-400-normal.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: 700;
  font-display: swap;
  src: url("/fonts/atkinson-hyperlegible-next-latin-ext-700-normal.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: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/atkinson-hyperlegible-next-latin-700-normal.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: 400;
  font-display: swap;
  src: url("/fonts/atkinson-hyperlegible-next-latin-ext-400-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: "Atkinson Hyperlegible Next";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/atkinson-hyperlegible-next-latin-400-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: "Tiro Bangla";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/tiro-bangla-bengali-400-normal.woff2") format("woff2");
  unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1;
}
@font-face {
  font-family: "Tiro Bangla";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/tiro-bangla-latin-ext-400-normal.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: "Tiro Bangla";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/tiro-bangla-latin-400-normal.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: "Noto Sans Bengali";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/noto-sans-bengali-bengali-400-normal.woff2") format("woff2");
  unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1;
}
@font-face {
  font-family: "Noto Sans Bengali";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/noto-sans-bengali-bengali-700-normal.woff2") format("woff2");
  unicode-range: U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1;
}


/* nazimhossain.org base styles. Colours, type and spacing come from design/tokens.css. */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: var(--leading-body);
}
img { display: block; max-width: 100%; height: auto; }
.wrap { width: min(100% - 2rem, 72rem); margin-inline: auto; }

/* Type */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: var(--leading-display);
  margin: 0 0 var(--space-3);
  text-wrap: balance;
}
h1 { font-size: clamp(2.25rem, 1.5rem + 2.6vw, var(--size-h1)); }
h2 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, var(--size-h2)); }
h3 { font-size: var(--size-h3); }
h4 { font-size: var(--size-h4); }
p, ul, ol, dl { margin: 0 0 var(--space-3); }
p, li { max-width: var(--measure); }
.note { color: var(--ink-soft); }
.closing { font-family: var(--font-display); font-size: var(--size-h4); }

a {
  color: var(--green);
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
a:hover { text-decoration-thickness: 3px; }
:focus-visible { outline: var(--focus-ring); outline-offset: 3px; }
main:focus, .site-header:focus { outline: none; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute; left: 1rem; top: 0; z-index: 100;
  transform: translateY(-120%);
  padding: 0.75rem 1.125rem;
  background: var(--ink); color: var(--paper);
  font-weight: 700; text-decoration: none;
  border-radius: 0 0 var(--radius) var(--radius);
}
.skip-link:focus { transform: none; }

/* Fields and buttons */
input[type="text"], input[type="search"], input[type="email"], input[type="tel"], textarea {
  font: inherit;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  min-height: var(--target-min);
  padding: 0.45rem 0.75rem;
}
.button {
  font: inherit; font-weight: 700;
  min-height: var(--target-min);
  padding: 0.45rem 1.1rem;
  color: var(--paper);
  background: var(--green);
  border: 2px solid var(--green);
  border-radius: var(--radius);
  cursor: pointer;
}
.button:hover { background: var(--green-hover); border-color: var(--green-hover); }
input:focus-visible, textarea:focus-visible, .button:focus-visible { outline-offset: 2px; }
.field-row { display: flex; gap: var(--space-1); }
::placeholder { color: var(--ink-soft); opacity: 1; }

/* Utility bar: language and search */
.site-header { border-bottom: 1px solid var(--rule); }
.utility { background: var(--surface); }
.utility-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end;
  gap: var(--space-2) var(--space-5);
  padding-block: var(--space-2);
}
.lang { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); }
.lang-label { font-size: var(--size-small); color: var(--ink-soft); }
.lang-message { flex-basis: 100%; margin: 0; font-size: var(--size-small); }
.lang-message:empty { display: none; }
.combo { position: relative; display: flex; }
.combo input { width: 12.5rem; padding-right: 2.75rem; }
.combo-open {
  position: absolute; top: 1px; right: 1px; bottom: 1px; width: 2.5rem;
  color: var(--ink-soft); background: transparent; border: 0; cursor: pointer;
}
.combo-open::after {
  content: ""; display: block; width: 0.55rem; height: 0.55rem; margin: auto;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-25%) rotate(45deg);
}
.combo [role="listbox"] {
  position: absolute; z-index: 50; top: calc(100% + 0.25rem); left: 0;
  width: max(100%, 17rem); max-height: 19rem; overflow-y: auto;
  margin: 0; padding: 0.25rem 0; list-style: none;
  color: var(--ink); background: var(--paper);
  border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.2);
}
.combo [role="option"] { max-width: none; padding: 0.55rem 0.85rem; cursor: pointer; }
.combo [role="option"]:hover { background: var(--surface); }
.combo [role="option"][aria-selected="true"] { color: var(--paper); background: var(--green); }
.search input { width: 13rem; }

/* Name and menu */
.masthead {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--space-2) var(--space-4);
  padding-top: var(--space-4);
}
.brand {
  display: inline-flex; align-items: center; gap: 0.75rem;
  min-height: var(--target-min);
  color: var(--ink); text-decoration: none;
  font-family: var(--font-display); font-size: 1.75rem; line-height: 1.1;
}
.brand:hover span { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.18em; }
.mark { width: auto; height: 1.15em; flex: none; }
.mark .dot { fill: var(--green); }
.mark .off { opacity: 0.25; }
.mark .sun { fill: var(--sun); }
.menu-toggle {
  display: none;
  font: inherit; font-weight: 700;
  min-height: var(--target-min); padding: 0.4rem 1.1rem;
  color: var(--ink); background: transparent;
  border: 2px solid var(--ink); border-radius: var(--radius);
  cursor: pointer;
}
.menu-toggle[aria-expanded="true"] { color: var(--paper); background: var(--ink); }
.site-nav { flex-basis: 100%; border-top: 1px solid var(--rule); }
.site-nav ul { display: flex; flex-wrap: wrap; gap: 0 var(--space-3); margin: 0; padding: 0; list-style: none; }
.site-nav li { max-width: none; }
.site-nav a {
  display: block; padding: 0.6rem 0.1rem;
  font-size: var(--size-small);
  color: var(--ink); text-decoration: none;
  border-bottom: 3px solid transparent;
}
.site-nav a:hover { text-decoration: underline; text-underline-offset: 0.25em; }
.site-nav a[aria-current] { font-weight: 700; border-bottom-color: var(--green); }

/* Home */
.hero { display: grid; gap: var(--space-5); align-items: center; padding-block: var(--space-6); }
.portrait { max-width: 18rem; }
.portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
.greeting-bar { background: var(--surface); }
.greeting { margin: 0; padding-top: var(--space-2); font-size: var(--size-body); font-weight: 700; color: var(--ink); }
.hero h1 { margin-bottom: var(--space-2); font-size: clamp(2.6rem, 1.6rem + 3.6vw, var(--size-hero)); }
.role { margin-bottom: var(--space-3); font-size: var(--size-h4); line-height: 1.45; }
.band { padding-block: var(--space-6); border-top: 1px solid var(--rule); }
.band-alt { background: var(--surface); border-top: 0; }
.entries { display: grid; gap: var(--space-5); margin: 0 0 var(--space-4); padding: 0; list-style: none; }
.entries h3 { margin-bottom: var(--space-1); }
.meta { margin-bottom: var(--space-2); color: var(--ink-soft); }
.title-bn { margin-top: calc(-1 * var(--space-1)); font-family: var(--font-display); font-size: var(--size-h4); }
.help-links { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); padding: 0; list-style: none; }
.help-links a { display: inline-block; padding-block: 0.6rem; font-weight: 700; }

/* Inner pages */
.page { padding-block: var(--space-6) var(--space-7); }
.prose h2 { margin-top: var(--space-6); }
.prose > :first-child { margin-top: 0; }
.project { margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--rule); }
.facts { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-1) var(--space-4); }
.facts div { display: contents; }
.facts dt { color: var(--ink-soft); }
.facts dd { margin: 0; }
.updates { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-1) var(--space-4); }
.updates dt { font-weight: 700; }
.updates dd { margin: 0; }
@media (max-width: 30rem) { .updates { grid-template-columns: 1fr; } .updates dd { margin-bottom: var(--space-2); } }
.search-page { margin-bottom: var(--space-4); }
.search-page label { display: block; margin-bottom: var(--space-1); }
.search-page input { width: min(100%, 28rem); }
.search-status { font-weight: 700; }
.results { padding-left: 1.25rem; }
.results li { margin-bottom: var(--space-4); }
.results h2 { margin: 0 0 var(--space-1); font-size: var(--size-h4); }
.results mark { color: var(--ink); background: var(--surface); font-weight: 700; }

/* Footer */
.site-footer { padding-block: var(--space-6); color: var(--on-deep); background: var(--green-deep); }
.site-footer a { color: var(--link-on-deep); }
.site-footer :focus-visible { outline-color: var(--focus-on-deep); }
.footer-inner { display: grid; gap: var(--space-4); }
.footer-name { display: flex; align-items: center; gap: 0.6rem; margin-bottom: var(--space-1); font-family: var(--font-display); font-size: 1.5rem; }
.footer-role { margin: 0; }
.site-footer .mark .dot { fill: var(--link-on-deep); }
.site-footer .mark .sun { fill: var(--sun); }
.footer-links { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); margin: 0; padding: 0; list-style: none; }
.footer-links a { display: inline-block; padding-block: 0.6rem; }
.copyright { margin: 0; }

/* Wider screens */
@media (min-width: 56rem) {
  .hero { grid-template-columns: 22rem minmax(0, 1fr); gap: var(--space-6); padding-block: var(--space-7); }
  .portrait { max-width: none; }
  .footer-inner { grid-template-columns: 1fr auto; align-items: end; }
  .copyright { grid-column: 1 / -1; }
}

/* Phones and small tablets */
@media (max-width: 47.99rem) {
  .utility-inner { justify-content: flex-start; }
  .lang, .search, .search .field-row, .lang .field-row { width: 100%; }
  .combo { flex: 1; }
  .combo input, .search input { width: 100%; }
  .search .field-row input { flex: 1; }
  .brand { font-size: 1.5rem; }
  .js .menu-toggle { display: inline-block; }
  .js .menu-toggle[aria-expanded="false"] + .site-nav { display: none; }
  .site-nav ul { flex-direction: column; }
  .site-nav a { padding-block: 0.7rem; font-size: var(--size-body); border-bottom: 1px solid var(--rule); }
  .site-nav a[aria-current] { padding-left: 0.75rem; border-left: 4px solid var(--green); border-bottom-color: var(--rule); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .combo [role="option"][aria-selected="true"] { forced-color-adjust: none; color: HighlightText; background: Highlight; }
  .site-nav a[aria-current] { border-color: CanvasText; }
  .mark .dot, .site-footer .mark .dot { fill: CanvasText; }
}

/* Breadcrumbs, posts and the blog */
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 0.6rem; margin: 0 0 var(--space-3); padding: 0; list-style: none; font-size: var(--size-small); }
.breadcrumb li { display: flex; align-items: center; gap: 0.6rem; max-width: none; }
.breadcrumb li + li::before { content: ""; width: 0.4rem; height: 0.4rem; border-top: 2px solid var(--ink-soft); border-right: 2px solid var(--ink-soft); transform: rotate(45deg); }
.breadcrumb a { display: inline-block; padding-block: 0.6rem; }
.breadcrumb [aria-current] { color: var(--ink-soft); }
.title-en { margin-top: calc(-1 * var(--space-1)); font-size: var(--size-h4); color: var(--ink-soft); }
.post-header { margin-bottom: var(--space-5); padding-bottom: var(--space-3); border-bottom: 1px solid var(--rule); }
.post-body { line-height: 1.85; }
.post-body h2 { margin-top: var(--space-6); }
.post-body h3 { margin-top: var(--space-5); }
.post-list h2 { margin-bottom: var(--space-1); font-size: var(--size-h3); }
.post-footer { margin-top: var(--space-6); padding-top: var(--space-3); border-top: 1px solid var(--rule); }
:lang(bn) { line-height: 1.8; }
h1:lang(bn), h2:lang(bn), h3:lang(bn) { line-height: 1.5; }

/* Games, guides and facts */
.prose .facts { margin-bottom: var(--space-4); }
.download { display: inline-flex; align-items: center; margin: var(--space-1) 0 var(--space-4); text-decoration: none; }
.download:hover { text-decoration: underline; }
.checksum { max-width: none; }
.checksum code { display: block; margin-top: var(--space-1); font-size: var(--size-small); overflow-wrap: anywhere; }
.contact-email { font-size: var(--size-h4); font-weight: 700; }
.prose table { width: 100%; max-width: 56rem; margin: 0 0 var(--space-5); border-collapse: collapse; }
.prose caption { padding-bottom: var(--space-1); text-align: left; font-weight: 700; }
.prose th, .prose td { padding: 0.6rem 0.9rem 0.6rem 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--rule); }
.prose thead th { border-bottom: 2px solid var(--line); color: var(--ink-soft); }
.prose tbody th { width: 32%; min-width: 7.5rem; }
.prose dl.terms dt { margin-top: var(--space-3); font-weight: 700; }
.prose dl.terms dd { max-width: var(--measure); margin: var(--space-1) 0 0; }
.prose h3, .prose h4 { margin-top: var(--space-5); }

/* Bank details */
details.bank { margin: var(--space-3) 0 var(--space-4); }
details.bank summary { display: inline-flex; align-items: center; min-height: var(--target-min); padding: 0.45rem 1.1rem; font-weight: 700; color: var(--paper); background: var(--green); border-radius: var(--radius); cursor: pointer; }
details.bank summary:hover { background: var(--green-hover); }
details.bank[open] summary { margin-bottom: var(--space-3); }

/* Forms */
.request-form { max-width: 42rem; margin: var(--space-4) 0 var(--space-5); padding: var(--space-4); background: var(--surface); border-radius: var(--radius); }
.field { margin-bottom: var(--space-3); }
.field > label { display: block; margin-bottom: var(--space-1); font-weight: 700; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea { box-sizing: border-box; width: 100%; }
textarea { min-height: 10rem; line-height: 1.6; resize: vertical; }
.hint, .word-count, .privacy-note { margin: 0 0 var(--space-1); font-size: var(--size-small); color: var(--ink-soft); }
.word-count { margin: var(--space-1) 0 0; }
.word-count.over { color: var(--red); font-weight: 700; }
fieldset.choices { margin: 0 0 var(--space-4); padding: 0; border: 0; }
fieldset.choices legend { margin-bottom: var(--space-2); padding: 0; font-weight: 700; }
.choice { display: flex; align-items: flex-start; gap: 0.7rem; min-height: var(--target-min); }
.choice input { flex: none; width: 1.35rem; height: 1.35rem; margin: 0.55rem 0 0; accent-color: var(--green); }
.choice label { padding: 0.4rem 0; cursor: pointer; }
.other-field { margin: var(--space-1) 0 0 2.05rem; }
.other-field > label { font-weight: 400; }
.error-text { margin: 0 0 var(--space-1); color: var(--red); font-weight: 700; }
.request-form [aria-invalid="true"] { border: 2px solid var(--red); }
.form-errors { margin-bottom: var(--space-4); padding: var(--space-3); background: var(--paper); border: 2px solid var(--red); border-radius: var(--radius); }
.form-errors h3 { margin-bottom: var(--space-1); font-family: var(--font-body); font-size: var(--size-body); font-weight: 700; }
.form-errors ul { margin: 0; padding: 0; list-style: none; }
.form-errors a { color: var(--red); font-weight: 700; }
.form-status:empty { display: none; }
.form-status { margin-bottom: var(--space-4); padding: var(--space-3); background: var(--paper); border-left: 4px solid var(--green); font-weight: 700; }
.form-status.is-error { border-left-color: var(--red); }
.request-form .button { margin-top: var(--space-1); }
.request-form .button:disabled { cursor: progress; opacity: 0.75; }
.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (forced-colors: active) {
  details.bank summary { border: 2px solid ButtonText; }
  .form-errors, .request-form [aria-invalid="true"] { border-color: CanvasText; }
}
