/* Local issue pages: map, report list, report form. Shares the site tokens from style.css. */
.issues-page { display: grid; gap: var(--space-6); max-width: var(--content-width); margin: 0 auto; padding: var(--space-6) var(--space-4); min-width: 0; }
.issues-hero h1 { margin: var(--space-2) 0; font: 600 40px/1.15 var(--pixel); color: var(--ink); }
.issue-notices { margin-top: var(--space-4); padding: var(--space-3) var(--space-4); border-left: 3px solid var(--gold); background: var(--panel2); color: var(--muted); font-size: 15px; }
.issue-notices p { margin: 0; }
.issue-notices p + p { margin-top: var(--space-2); }
.issue-map { height: 420px; min-height: 260px; border: 2px solid var(--line); background: var(--panel2); }
.issue-map-small { height: 280px; margin: var(--space-4) 0; }
.issue-map-fallback { padding: var(--space-4); color: var(--muted); }
.issue-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.issue-card { min-width: 0; border: 2px solid var(--line); background: var(--panel2); }
.issue-card a { display: grid; color: var(--ink); text-decoration: none; min-width: 0; }
.issue-card img, .issue-card-nophoto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: grid; place-items: center; background: #0d1830; color: var(--muted); font: 600 18px var(--pixel); }
.issue-card-text { display: grid; gap: var(--space-1); padding: var(--space-3); min-width: 0; }
.issue-card-text strong { font: 600 18px/1.3 var(--pixel); color: var(--gold); }
.issue-card-desc { overflow-wrap: anywhere; }
.issue-card-text small, .issue-meta { color: var(--muted); }
.issue-card a:hover, .issue-card a:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.issue-detail h1 { font: 600 32px/1.2 var(--pixel); margin: var(--space-2) 0; overflow-wrap: anywhere; }
.issue-description { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 18px; }
.issue-photos { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.issue-photos figure { margin: 0; display: grid; gap: var(--space-2); }
.issue-photos img { max-width: 100%; max-height: 70vh; width: auto; height: auto; justify-self: start; border: 2px solid var(--line); }
.issue-flag { margin-top: var(--space-6); }
.issue-flag summary { cursor: pointer; color: var(--gold); }
.issue-form { display: grid; gap: var(--space-4); }
.issue-form label { display: grid; gap: var(--space-2); font-weight: 600; }
.issue-form input:not([type=checkbox]), .issue-form select, .issue-form textarea, .issue-flag select { min-height: var(--control-height); padding: var(--space-2) var(--space-3); border: 2px solid var(--line); background: #0b1630; color: var(--ink); font: 16px var(--font-body); }
.issue-form fieldset { display: grid; gap: var(--space-3); border: 1px solid var(--line); padding: var(--space-4); margin: 0; min-width: 0; }
.issue-form legend { font: 600 18px var(--pixel); color: var(--gold); }
.issue-help { margin: 0; color: var(--muted); font-size: 15px; }
.issue-previews { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.issue-previews img { width: 120px; height: 90px; object-fit: cover; border: 2px solid var(--line); }
.issue-terms { display: flex !important; grid-template-columns: none; align-items: flex-start; gap: var(--space-2); font-weight: 400 !important; }
.issue-terms input { margin-top: 5px; width: 20px; height: 20px; flex: none; }
.issue-locate, .issue-flag-send, .issue-remove-photo { justify-self: start; min-height: var(--control-height); padding: var(--space-2) var(--space-4); border: 2px solid var(--line); background: var(--panel2); color: var(--ink); font: 600 16px var(--pixel); cursor: pointer; }
.issue-form-status, .issue-pin-status, .issue-flag-status { color: var(--gold); margin: 0; }
.issue-sent { border-color: var(--mint); color: var(--mint); }
.leaflet-container { font: 14px var(--font-body); }
.leaflet-container a { color: #0b4fae; }
@media (max-width: 640px) { .issues-hero h1 { font-size: 30px; } .issue-map { height: 320px; } }
.issue-pending-photos { color: var(--muted); font-style: italic; }
.photo-review { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.photo-review-item { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 320px) minmax(0, 1fr); align-items: start; }
.photo-review-item img { width: 100%; height: auto; border: 2px solid var(--line); }
.photo-review-item strong { font: 600 18px/1.3 var(--pixel); color: var(--gold); }
.photo-review-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.issue-approve-photo { min-height: var(--control-height); padding: var(--space-2) var(--space-4); border: 2px solid var(--mint); background: #12382a; color: var(--mint); font: 600 16px var(--pixel); cursor: pointer; }
.photo-review-status { color: var(--gold); margin: var(--space-2) 0 0; }
@media (max-width: 640px) { .photo-review-item { grid-template-columns: minmax(0, 1fr); } }
.photo-review-done { opacity: .55; }
