* { box-sizing: border-box; margin: 0; padding: 0; }
body { background: #f5f0e8; font-family: 'Crimson Text', Georgia, serif; color: #2c2416; }
input::placeholder, textarea::placeholder { color: #7a6a58; font-style: italic; }
input[type=number]::-webkit-inner-spin-button { opacity: 1; }
@keyframes fadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: #f5f0e8; } ::-webkit-scrollbar-thumb { background: #c8b89a; border-radius: 3px; }
.chronicle-map { width: 100%; height: 500px; border-radius: 4px; border: 1px solid #c8b89a; z-index: 1; }
.leaflet-popup-content { font-family: 'Crimson Text', Georgia, serif; font-size: 0.95rem; min-width: 160px; }
.leaflet-popup-content h4 { font-family: 'Playfair Display', serif; font-size: 1.05rem; margin: 0 0 4px; color: #1a1208; }
.leaflet-popup-content p { margin: 0; color: #8a7460; font-style: italic; font-size: 0.85rem; }
.leaflet-popup-content button { margin-top: 8px; background: #2c2416; color: #f5f0e8; border: none; padding: 5px 12px; border-radius: 2px; cursor: pointer; font-family: 'Crimson Text', serif; font-size: 0.88rem; width: 100%; }
@media (max-width: 767px) {
  input, textarea, select { font-size: 16px !important; } /* prevent iOS zoom */
  button { min-height: 40px; }
  .chronicle-map { height: 320px; }
}
@media print {
  body { background: #fff !important; }
  header, nav, .chronicle-print-options, .no-print { display: none !important; }
  .chronicle-print-root { border: none !important; padding: 0 !important; box-shadow: none !important; }
  h1, h2, h3 { page-break-after: avoid; }
  img { max-width: 180px !important; }
  a { text-decoration: none; color: inherit; }
}