/* The stylesheet every later screen inherits (fence statement (b)) — a shared
   surface, same standing as base.html. DDS branding: crimson #cd1243, warm
   gray, Helvetica stack (CLAUDE.md Conventions). Contrast checked AA
   (WCAG 2.x relative luminance, recomputed at P6 — FINDING 8 corrected the
   two understated figures, both in the conservative direction):
   #cd1243 on #ffffff = 5.58:1; #3d3a37 on #ffffff = 11.30:1.
   P6's band pairs, measured (branding.accent_pair chooses the ink, AA_MIN
   4.5 gates it, T4/T5 pin these): DDS default — white #ffffff on crimson
   #cd1243 = 5.58:1; Fields of Fun — #242424 on teal #47B9CB = 6.70:1
   (white on teal 2.32:1 fails, which is why the ink is chosen, not fixed).
   A stored accent on which neither ink reaches 4.5:1 renders the DDS pair. */

:root {
  --crimson: #cd1243;
  --ink: #3d3a37;        /* warm gray ink */
  --paper: #ffffff;
  --field-border: #b8b2ac;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
}

/* P6 (DC3, SD1, SD9): the header IS the per-client band — a filled area with
   its ink chosen by measured contrast (branding.accent_pair), never a rule or
   an underline (WCAG 1.4.11: teal's 2.32:1 fails as a boundary). The two
   custom properties are set on the element by base.html; the var() fallbacks
   are the DDS pair for a render outside the client blueprint's context
   (RF3-11). The wordmark, the nav links and their underline all take the ink
   (S-F1: it is DDS crimson under warm-gray ink, 2.02:1, that forces this —
   teal under warm-gray would pass at 4.88). Everything below the header keeps
   DDS crimson and warm-gray for every tenant (DC3). */
.site-header {
  padding: 0.75rem 1rem;
  background: var(--accent, var(--crimson));
  color: var(--accent-ink, var(--paper));
}

.wordmark {
  font-weight: bold;
  color: inherit;
}

.content {
  max-width: 26rem;
  margin: 0 auto;
  padding: 1.5rem 1rem;
}

h1 { font-size: 1.4rem; }

label { display: block; margin-bottom: 0.25rem; font-weight: bold; }

input[type="email"] {
  display: block;
  width: 100%;
  padding: 0.6rem;
  margin-bottom: 1rem;
  font-size: 1rem;
  border: 1px solid var(--field-border);
  border-radius: 4px;
}

button, .button {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  font-size: 1rem;
  color: var(--paper);
  background: var(--crimson);
  border: 0;
  border-radius: 4px;
  text-decoration: none;
  cursor: pointer;
}

/* ── P2 additions (RF3-7: this file is a counted shared surface). Contrast
   checked AA: #cd1243 on #fff = 5.58:1; #3d3a37 on #fff = 11.30:1; muted
   #6b6560 on #fff = 5.74:1 (P6 FINDING 8: 10.9 and 5.2 were understated). */

.facility-nav { margin-top: 0.35rem; }
.facility-nav a {
  color: inherit;                        /* P6 SD1: the band's ink */
  margin-right: 1rem;
  text-decoration: none;
  border-bottom: 2px solid currentColor; /* P6 SD1: the ink, not crimson */
}

/* P6 7b (LP-10): the header's sign-out, styled as a facility link — the band's
   ink and a currentColor underline, never a crimson button on a per-client fill
   (DC3: inside the header everything takes the ink pair). */
.sign-out { display: inline-block; margin: 0.35rem 0 0 0; }
.sign-out button {
  background: none;
  border: 0;
  border-bottom: 2px solid currentColor;
  border-radius: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

/* P6 (DC1, DC6, SD3, SD11): screen 3's welcome panel — plain text; line
   breaks preserved by CSS, not template logic (a no-op against the only real
   value today, which has none; first exercised by the next tenant's copy). */
.welcome { white-space: pre-line; margin: 1rem 0; }

.muted { color: #6b6560; }

.emergency-note {
  border: 2px solid var(--crimson);
  border-radius: 4px;
  padding: 0.75rem;
  margin: 1rem 0;
}

.form-error {
  border-left: 4px solid var(--crimson);
  padding: 0.5rem 0.75rem;
  font-weight: bold;
}

input[type="text"], textarea {
  display: block;
  width: 100%;
  padding: 0.6rem;
  margin-bottom: 1rem;
  font-size: 1rem;
  border: 1px solid var(--field-border);
  border-radius: 4px;
  font-family: inherit;
}

input[type="file"] { display: block; margin-bottom: 1rem; }

fieldset {
  border: 1px solid var(--field-border);
  border-radius: 4px;
  margin: 0 0 1rem;
  padding: 0.75rem;
}

legend { font-weight: bold; padding: 0 0.25rem; }

label.radio {
  display: flex;
  gap: 0.5rem;
  font-weight: normal;
  margin-bottom: 0.75rem;
  align-items: baseline;
}

.inline-warning { display: block; color: var(--crimson); font-weight: bold; }

.ticket-list { list-style: none; margin: 0 0 1rem; padding: 0; }

.ticket-row {
  border-bottom: 1px solid var(--field-border);
  padding: 0.75rem 0;
}

.ticket-title { display: block; font-weight: bold; color: var(--crimson); }

.ticket-meta { font-size: 0.9rem; }

.ticket-facts dt { font-weight: bold; margin-top: 0.5rem; }
.ticket-facts dd { margin: 0; }

.status-line .muted { font-weight: normal; }

.photos img {
  max-width: 100%;
  border-radius: 4px;
  margin: 0.5rem 0;
  display: block;
}

.crumb { font-size: 0.9rem; }
.crumb a { color: var(--ink); }
