@font-face {
  font-family:"DM Sans";
  src:url("fonts/dm-sans.09d1eaa1672d.ttf") format("truetype");
  font-weight:400 700;
  font-style:normal;
  font-display:optional;
}
@font-face {
  font-family:Manrope;
  src:url("fonts/manrope.946beb949095.ttf") format("truetype");
  font-weight:400 800;
  font-style:normal;
  font-display:optional;
}
/* Shared by Django public pages and the React app. Keep shell classes scoped. */
:root {
  --ink:#183F35;
  --paper:#F7F7F0;
  --muted:#5C6963;
  --line:#D9DED3;
  --lime:#E3EFAD;
  --green:#E9EEE4;
  --peach:#F6E3D4;
  --purple:#EAE5F5;
  --font-heading:Manrope,"Segoe UI",sans-serif;
  font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:var(--paper);
  font-synthesis:none;
  --color-bg-deep:var(--ink);
  --color-accent-mint:var(--lime);
  --color-text-main:var(--ink);
  --color-text-muted:var(--muted);
  --color-border:var(--line);
  --color-surface:#fff;
  --spacing-md:16px;
  --spacing-lg:24px;
  --spacing-xl:32px;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  line-height:1.65;
}
.site-header,.site-footer,.site-main {
  max-width:1260px;
  margin:auto;
  padding:24px 32px;
}
.site-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid var(--line);
}
.site-header nav {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px 24px;
}
.site-header nav a {
  text-decoration:none;
  font-weight:600;
  font-size:.94rem;
}
.site-brand {
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-direction:row;
  font-family:var(--font-heading);
  font-size:2.6rem;
  letter-spacing:-.07em;
  font-weight:750;
  color:var(--ink);
  text-decoration:none;
}
.site-brand span {
  display:grid;
  place-items:center;
  color:var(--ink);
  width:38px;
  height:38px;
  font-size:2rem;
  line-height:1;
}
.site-footer {
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.9rem;
  padding-top:32px;
  padding-bottom:40px;
}
.site-footer .site-brand {
  margin-bottom:12px;
}
.site-footer p:last-child {
  margin-top:20px;
  font-size:.8rem;
}
:focus-visible {
  outline:3px solid #92512f;
  outline-offset:4px;
}
/* The auth heading receives programmatic focus for screen readers, not keyboard navigation. */
.auth-panel #auth-title:focus {
  outline:none;
}
.site-skip {
  position:absolute;
  top:-100px;
  left:15px;
  background:white;
  padding:10px;
  z-index:10;
}
.site-skip:focus {
  top:10px;
}
.site-header { line-height:1.65; }
.site-header a { text-underline-offset:4px; }
.site-header nav a { color:var(--ink); }
.site-header .site-action {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--ink); color:white; border-radius:8px;
  padding:9px 15px; min-height:48px; font:inherit; font-size:.94rem; font-weight:650;
  text-decoration:none;
}
.site-footer { line-height:1.65; }
.site-footer p { margin:0 0 20px; }
.site-footer a { color:var(--ink); text-underline-offset:4px; }
.site-footer .site-brand { color:var(--ink); }
@media(max-width:760px) {
  .site-header,.site-footer,.site-main { padding:20px; }
  .site-header { align-items:start; flex-direction:column; gap:14px; }
  .site-header nav { gap:12px 18px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

h1,h2,h3 { font-family:var(--font-heading); }
.site-header nav a:not(.site-action) { min-height:44px; display:inline-flex; align-items:center; }
.site-footer a + a { margin-left:20px; }
.site-footer .site-brand { margin-left:0; }
@media(max-width:760px) {
  .site-header { padding-top:14px; padding-bottom:14px; gap:8px; }
  .site-header nav { gap:0 16px; }
  .site-header nav a,.site-header .site-action { font-size:.82rem; }
}
