body { margin: 0; background: #f5f6f8; color: #24292f; font-family: 'Public Sans', system-ui, sans-serif; }
a { color: #2563a8; text-decoration: none; }
a:hover { color: #1b4d85; text-decoration: underline; }
input:focus-visible, button:focus-visible, textarea:focus-visible { outline: 2px solid #2563a8; outline-offset: 2px; }
.leaflet-container { font: inherit; }
.hidden { display: none !important; }

input, textarea, button { font: inherit; }
.text-input { padding: 8px 12px; font-size: 14px; border: 1px solid #c8cfd7; border-radius: 5px; }

.btn-green { padding: 8px 16px; font-size: 14px; font-weight: 600; background: #2f9e63; color: #fff; border: 0; border-radius: 5px; cursor: pointer; }
.btn-green:hover { background: #27824f; }
.btn-green:disabled { opacity: 0.7; cursor: default; }
.btn-light { padding: 8px 14px; font-size: 14px; background: #eef1f4; border: 0; border-radius: 5px; cursor: pointer; }
.btn-light:hover { background: #dde2e8; }
.btn-dark { padding: 8px 14px; font-size: 13px; font-weight: 600; background: #1f2933; color: #fff; border: 0; border-radius: 5px; cursor: pointer; }
.btn-dark:hover { background: #37424d; }

.link-btn { font-size: 13px; background: none; border: 0; cursor: pointer; text-decoration: underline; padding: 0; }
.link-btn.blue { color: #2563a8; }
.link-btn.blue:hover { color: #1b4d85; }
.link-btn.red { color: #c94f38; }
.link-btn.staff { color: #7a6215; font-weight: 600; }
.link-btn.footer { color: #9aa7b2; }
.link-btn.footer:hover { color: #ffffff; }

.card { background: #fff; border: 1px solid #dde2e8; border-radius: 6px; }
.section-h2 { font-size: 17px; font-weight: 700; margin: 36px 0 14px; }
.console-heading { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7683; margin-bottom: 10px; }

.modal-backdrop { position: fixed; inset: 0; background: rgba(31, 41, 51, 0.55); display: flex; align-items: center; justify-content: center; z-index: 1200; }
.modal { background: #fff; border-radius: 8px; padding: 24px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25); }

.status-swatch { width: 30px; height: 30px; border-radius: 5px; border: 2px solid transparent; cursor: pointer; flex-shrink: 0; padding: 0; }
.status-swatch.active { border-color: #1f2933; }

.type-btn { padding: 7px 14px; font-size: 13px; font-weight: 600; border: 1px solid #c8cfd7; border-radius: 5px; cursor: pointer; background: #ffffff; color: #47525e; }
.type-btn.active { background: #1f2933; color: #ffffff; }
