/* PawTrack — Public Styles (styles-public.css)
   Same palette as management for now; can be rebranded later. */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: Georgia, serif; background: #FDF8F3; color: #2C1810; min-height: 100vh; }
input, select, textarea, button { font-family: Georgia, serif; }

/* ── Layout ───────────────────────────────────────────────────────────────── */
.pub-header {
  background: #2C1810; padding: 14px 28px;
  display: flex; align-items: center; justify-content: space-between;
}
.pub-header-brand { color: #F5E6D3; font-size: 18px; font-weight: bold; }
.pub-header-link  { color: #A0856C; font-size: 13px; text-decoration: none; }
.pub-header-link:hover { color: #F5E6D3; }

.pub-main {
  max-width: 640px; margin: 0 auto; padding: 40px 20px 60px;
}

.pub-footer {
  text-align: center; padding: 20px; font-size: 12px; color: #C4A882;
  border-top: 1px solid #E8D5C0; margin-top: 40px;
}

/* ── Cards ────────────────────────────────────────────────────────────────── */
.pub-card {
  background: #fff; border: 1px solid #E8D5C0;
  border-radius: 12px; padding: 28px 32px; margin-bottom: 24px;
}
.pub-card-title {
  font-size: 20px; color: #2C1810; margin-bottom: 6px; font-weight: bold;
}
.pub-card-sub {
  font-size: 13px; color: #8B6355; margin-bottom: 22px; line-height: 1.6;
}

/* ── Forms ────────────────────────────────────────────────────────────────── */
.pub-fld { margin-bottom: 16px; }
.pub-fld label {
  display: block; font-size: 11px; color: #8B6355;
  font-weight: bold; letter-spacing: .5px; margin-bottom: 4px;
  text-transform: uppercase;
}
.pub-fld input, .pub-fld textarea, .pub-fld select {
  width: 100%; padding: 10px 12px; border-radius: 7px;
  border: 1px solid #D4B896; font-size: 14px;
  background: #fff; color: #2C1810;
}
.pub-fld textarea { resize: vertical; }
.pub-fld input:focus, .pub-fld textarea:focus {
  outline: none; border-color: #C8832A;
  box-shadow: 0 0 0 2px rgba(200,131,42,.15);
}

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.pub-btn {
  border: none; border-radius: 7px; padding: 10px 24px;
  cursor: pointer; font-size: 14px; font-family: Georgia, serif;
}
.pub-btn-primary { background: #C8832A; color: #fff; }
.pub-btn-primary:hover { background: #B07020; }
.pub-btn-secondary {
  background: #F5E6D3; color: #2C1810;
  border: 1px solid #D4B896;
}
.pub-btn-secondary:hover { background: #EDD5B8; }
.pub-btn:disabled { opacity: .6; cursor: not-allowed; }

/* ── CAPTCHA ──────────────────────────────────────────────────────────────── */
.pub-captcha-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 6px;
}
.pub-captcha-img {
  border: 1px solid #D4B896; border-radius: 6px;
  width: 240px; height: 80px; background: #F5F0EB;
}
.pub-captcha-refresh {
  background: none; border: none; cursor: pointer;
  color: #C8832A; font-size: 20px; line-height: 1;
}

/* ── Consent ──────────────────────────────────────────────────────────────── */
.pub-consent {
  background: #FDF8F3; border: 1px solid #E8D5C0; border-radius: 8px;
  padding: 14px 16px; font-size: 12px; color: #5C3D2E; line-height: 1.7;
  margin-bottom: 16px;
}
.pub-consent label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.pub-consent input[type=checkbox] { margin-top: 3px; width: 15px; height: 15px;
  flex-shrink: 0; accent-color: #C8832A; }

/* ── Messages ─────────────────────────────────────────────────────────────── */
.pub-msg {
  border: 1px solid #E8D5C0; border-radius: 8px;
  margin-bottom: 12px; overflow: hidden;
}
.pub-msg-hdr {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; background: #FDF8F3;
  border-bottom: 1px solid #E8D5C0; font-size: 12px; color: #8B6355;
}
.pub-msg-body {
  padding: 14px 16px; font-size: 14px; line-height: 1.7;
  white-space: pre-wrap; color: #2C1810;
}
.pub-dir-in  { background:#E8F5E9; color:#1B5E20; border-radius:4px;
               padding:2px 8px; font-size:11px; font-weight:bold; }
.pub-dir-out { background:#E3F2FD; color:#0D47A1; border-radius:4px;
               padding:2px 8px; font-size:11px; font-weight:bold; }

/* ── Alert boxes ──────────────────────────────────────────────────────────── */
.pub-err {
  background: #FFF0F0; color: #C0392B; border: 1px solid #FFCDD2;
  border-radius: 7px; padding: 10px 14px; font-size: 13px; margin-bottom: 14px;
}
.pub-ok {
  background: #F0FFF0; color: #1B5E20; border: 1px solid #C8E6C9;
  border-radius: 7px; padding: 10px 14px; font-size: 13px; margin-bottom: 14px;
}

/* ── Modal ────────────────────────────────────────────────────────────────── */
.pub-modal-bg {
  position: fixed; inset: 0; background: rgba(44,24,16,.55);
  display: flex; align-items: center; justify-content: center; z-index: 200;
}
.pub-modal {
  background: #fff; border-radius: 12px; padding: 28px;
  width: 380px; max-width: 95vw; position: relative;
}

/* ── Landing page hero ────────────────────────────────────────────────────── */
.pub-hero { text-align: center; padding: 60px 20px 40px; }
.pub-hero-icon { font-size: 72px; margin-bottom: 20px; line-height: 1; }
.pub-hero h1 { font-size: 28px; color: #2C1810; margin-bottom: 10px; }
.pub-hero p  { font-size: 15px; color: #8B6355; margin-bottom: 30px; line-height: 1.7; }
.pub-hero-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
