/* Django glue for the V05 shell (Tweak 019).
   Small app-specific adjustments that don't belong in the ported prototype CSS
   (wireframe.css / v05-shell.css / mobile.css are kept as source-of-truth). */

/* Anonymous pages (login, password reset, error pages) have no sidebar, so the
   .hf-shell 2-column grid collapses to a single full-width column. */
.hf-shell--anon { grid-template-columns: 1fr; }

/* The brand link is an interactive tap target — give it a >=44px hit area
   (ADR 0005), vertically centred within the 55px header. */
.hf-header__title { display: inline-flex; align-items: center; min-height: 44px; }

/* Sign-out must be a POST form (CSRF), rendered as a button but styled as the
   sidebar's signout link. Reset only the button chrome; colour/hover come from
   .hf-side__signout in v05-shell.css. */
button.hf-side__signout {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.hf-side__account form { margin: 0; padding: 0; }

/* Form field/banner error styling — the V05 prototypes omitted error states, but
   Django forms need them. Shared by all re-skinned form pages (Tweaks 020+). */
.fld__err { color: var(--enroute-rose-700); font-size: 12px; line-height: 1.4; margin-top: 4px; }
.fld [aria-invalid="true"] { box-shadow: inset 0 0 0 1.5px var(--enroute-rose-500); }
.form-banner--error {
  background: var(--enroute-rose-50);
  color: var(--enroute-rose-700);
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: inset 0 0 0 1px var(--enroute-rose-200);
  font-size: 13px;
  margin-bottom: 16px;
}
.form-banner--error p { margin: 0; }
.form-banner--error p + p { margin-top: 4px; }

/* Django messages banner (V05 — replaces the legacy .app-banner at cutover). */
.msg-stack { max-width: 640px; margin: 0 auto 20px; display: flex; flex-direction: column; gap: 8px; }
.msg-banner { border-radius: 10px; padding: 12px 14px; font-size: 13px; line-height: 1.45; box-shadow: inset 0 0 0 1px var(--border-1); }
.msg-banner--error { background: var(--enroute-rose-50); color: var(--enroute-rose-700); box-shadow: inset 0 0 0 1px var(--enroute-rose-200); }
.msg-banner--warning { background: var(--enroute-amber-50); color: var(--enroute-amber-800); box-shadow: inset 0 0 0 1px var(--enroute-amber-200); }
.msg-banner--success { background: var(--enroute-green-50); color: var(--enroute-green-800); box-shadow: inset 0 0 0 1px var(--enroute-green-200); }
.msg-banner--info { background: var(--enroute-ink-50); color: var(--fg-2); }
