/* ============================================================================================================
   WHAT THIS IS: the part of Bootstrap 5.3.3 the application actually depended on, standing exactly where the
   Bootstrap CDN <link> used to stand.

   The site loaded the whole of Bootstrap - 281KB of CSS from jsdelivr, on every page load - for one thing: the
   navigation bar's markup. That bar is Mantine now (Spa/layout/Navbar.tsx), and with it went `navbar`,
   `navbar-expand-lg`, `navbar-dark`, `navbar-brand`, `navbar-toggler`, `navbar-collapse`, `navbar-nav`,
   `collapse`, `show`, `bg-dark`, `bg-body-tertiary`, `border-bottom` and `border-body` - every Bootstrap
   COMPONENT class in the client. Nothing in Spa/ uses .btn, .row, .col-*, .form-control, .card, .modal,
   .alert, .badge, .dropdown, .input-group or any of the .d- or .text- utilities; grep says so.

   BUT THE CLASSES WERE THE SMALL HALF. Bootstrap's Reboot was also supplying element-level styling that
   nothing else on the page replaces, and dropping the stylesheet without restating it would have changed
   forty-five paragraphs, thirty-one headings, every icon's vertical alignment and every <hr> on the site.
   Those rules are below, copied byte-for-byte from Bootstrap 5.3.3 with the --bs-* custom properties resolved
   to their light-theme literals (nothing in this repository reads a --bs-* variable; grep says that too).

   ------------------------------------------------------------------------------------------------------------
   WHY IT IS A FILE HERE AND NOT PART OF THE BUNDLE, which is the load-bearing decision.

   Bootstrap was the FIRST stylesheet on the page - before Main.css, Home.css, Style.css, MessageBox.css,
   LandingPage.css, Subscription.css, and before Content/dist/app.css. Every one of those outranked it on a
   specificity tie. Moving these rules into Spa/styles/ would put them in the bundle, which loads LAST, so
   every restated element rule would flip from losing those ties to winning them - against six stylesheets
   carrying 89 !important declarations between them. That is not a removal, it is a cascade reshuffle, and its
   failures would be scattered across screens nobody touched.

   Standing in Bootstrap's exact slot means the cascade is unchanged by construction, and the whole step
   reverts by putting the old <link> back.

   Content\** is a glob in Thyme.csproj, so this deploys with no project edit, and Pages/App.cshtml versions
   it by query string the way it versions every other sheet.

   ------------------------------------------------------------------------------------------------------------
   WHAT IS DELIBERATELY NOT HERE, because something else already supplies it:

     box-sizing: border-box       Mantine's stylesheet opens with the identical rule.
     body font-size/line-height   Mantine sets these on body,:host and loads after Bootstrap did, so it was
                                  already winning. Content/Style.css:6 sets the margin.
     input/button font: inherit   Mantine sets it.
     .bg-secondary                Content/Subscription.css:5 defines its own and loads later, so Bootstrap's
                                  never applied. Nothing in Spa/ uses it since Spa/ui/PlanCard.tsx
                                  replaced PricingTable.tsx.
     a:hover, focus rings,        Unused, or already owned by Content/Main.css and the focus-frame rules.
     every .btn/.row/.col-*       No markup site anywhere in Spa/.
   ============================================================================================================ */

/* ------------------------------------------------------------------------------------------------------------
   HEADINGS. Fifteen <h2>, seven <h3> and nine <h4> across Spa/, plus the <h1> in every PageHeader.
   Content/Style.css:45-53 sets a font-family on h1 and h2 and nothing else - no margins and no size scale - so
   without this every heading falls back to the user agent's: bold instead of 500, and .83em/1em top AND bottom
   margins instead of 0 and .5rem. --bs-heading-color was `inherit`, so the colour declaration is dropped. */
h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

h1, .h1 {
  font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
  h1, .h1 {
    font-size: 2.5rem;
  }
}

h2, .h2 {
  font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
  h2, .h2 {
    font-size: 2rem;
  }
}

h3, .h3 {
  font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
  h3, .h3 {
    font-size: 1.75rem;
  }
}

h4, .h4 {
  font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
  h4, .h4 {
    font-size: 1.5rem;
  }
}

h5, .h5 {
  font-size: 1.25rem;
}

h6, .h6 {
  font-size: 1rem;
}

/* ------------------------------------------------------------------------------------------------------------
   PARAGRAPHS AND LISTS. Forty-five <p> in the client. The user agent gives a <p> a 1em margin on BOTH sides;
   Bootstrap gives it none on top and 1rem below, which is what every screen was laid out against. */
p {
  margin-top: 0;
  margin-bottom: 1rem;
}

ol,
ul {
  padding-left: 2rem;
}

ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

/* ------------------------------------------------------------------------------------------------------------
   THE SNEAKIEST ONE. Spa/ui/icons.tsx is twenty-two hand-drawn inline SVGs and they are used inside AppButton,
   EmptyState, PageHeader, Toolbar and MessageBox. An <svg> is replaced-inline, so without this it sits on the
   text baseline instead of the middle of the line box - every icon on the site drops a few pixels at once, on
   screens nobody edited. */
img,
svg {
  vertical-align: middle;
}

/* ------------------------------------------------------------------------------------------------------------
   RULES. Content/Style.css:37-42 sets background, opacity, margin and display on <hr> but NOT `border`, so
   without `border: 0` the user agent's `border: 1px inset` comes back and the rule renders as a grooved double
   line under its own painted background. --bs-border-width resolved to 1px. */
hr {
  margin: 1rem 0;
  color: inherit;
  border: 0;
  border-top: 1px solid;
  opacity: 0.25;
}

/* ------------------------------------------------------------------------------------------------------------
   MONOSPACE. The admin transcript and prompt screens render raw model calls in <pre> and <code>.
   --bs-font-monospace and --bs-code-color resolved to their light-theme literals. */
pre,
code,
kbd,
samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}

pre {
  display: block;
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
  font-size: 0.875em;
}

pre code {
  font-size: inherit;
  color: inherit;
  word-break: normal;
}

code {
  font-size: 0.875em;
  color: #d63384;
  word-wrap: break-word;
}

a > code {
  color: inherit;
}

/* <kbd> and <caption>, neither of which the client renders today - grep over Spa/, Pages/ and Reporting/ finds
   no <kbd> and no <caption>. They are here because they were the last two differences in the computed-style
   diff against the real Bootstrap sheet, and a file whose whole claim is "this is what Bootstrap was doing"
   is worth more when the diff is empty than when it has two documented exceptions nobody rechecks.
   --bs-body-bg #fff, --bs-body-color #212529 and --bs-secondary-color rgba(33,37,41,.75) resolved. */
kbd {
  padding: 0.1875rem 0.375rem;
  font-size: 0.875em;
  color: #fff;
  background-color: #212529;
  border-radius: 0.25rem;
}

kbd kbd {
  padding: 0;
  font-size: 1em;
}

caption {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: rgba(33, 37, 41, 0.75);
  text-align: left;
}

/* ------------------------------------------------------------------------------------------------------------
   TABLES, LABELS AND THE REST OF THE FORM RESET. Mantine's Table ships its own styling; these cover the one
   raw <table> left in the client (the phone row in AccountInfo.tsx) and the five <label> sites. */
table {
  caption-side: bottom;
  border-collapse: collapse;
}

th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}

thead,
tbody,
tfoot,
tr,
td,
th {
  border-color: inherit;
  border-style: solid;
  border-width: 0;
}

label {
  display: inline-block;
}

button {
  border-radius: 0;
}

button:focus:not(:focus-visible) {
  outline: 0;
}

button,
select {
  text-transform: none;
}

strong {
  font-weight: bolder;
}

small, .small {
  font-size: 0.875em;
}

/* ------------------------------------------------------------------------------------------------------------
   LINKS. Three class-less <a> in the client; everything else carries .link (Content/Main.css:113), which sets
   its own colour. --bs-link-color-rgb resolved to Bootstrap's #0d6efd; without it a bare link would revert to
   the user agent's #0000EE. */
a {
  color: #0d6efd;
  text-decoration: underline;
}

/* An <a> with neither href nor class is not a link, and Bootstrap declines to paint one as though it were.
   Caught by diffing every element's computed style against the real Bootstrap 5.3.3 sheet loaded into this
   file's exact cascade slot: without this, a bare anchor came out blue and underlined instead of inheriting.
   Nothing in the client renders one today - every <a> in Spa/ has an href - but the rule is two lines and its
   absence is the kind of thing that surfaces later as "why is this text blue".

   That was briefly untrue. Six anchors carried an onClick and no href - three on Authorize, two in
   MfaEnrolmentNotice, two legal links in MfaPreferencesSubsection - and this rule was what painted them as
   plain body text, which is to say as prose rather than as anything pressable. They are Spa/ui/LinkButton.tsx
   now, for the keyboard rather than for the colour, and the sentence above is true again. */
a:not([href]):not([class]), a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}

/* ============================================================================================================
   THE ONE BOOTSTRAP COMPONENT CLASS STILL IN THE MARKUP, and it should not be for long.

   .container-fluid survives at three call sites - Spa/pages/BeginInquiry.tsx:435 and :445, and
   Spa/pages/Checkout.tsx:67 - and all three cancel the gutter with `style={{ padding: 0 }}`, so the only part
   of Bootstrap's rule that was ever live on this site is the width and the centring. That is restated here
   rather than in the bundle for the cascade reason at the top of this file.

   DELETE THIS BLOCK when those three <div>s become plain full-width divs, which is all any of them wants.
   ============================================================================================================ */
.container-fluid {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
