/* Publication, evidence and connection states share the existing visual system. */
[hidden] { display: none !important; }
.connection-notice, .publication-receipt { max-width: 1400px; margin: 20px auto; padding: 24px; border: 1px solid #c7ded2; border-radius: 24px; background: #eaf4ed; color: #163c31; }
.connection-notice { display: flex; gap: 20px; align-items: center; justify-content: space-between; background: #fff3df; border-color: #e5cd9d; }
.connection-notice p { margin: 0; font-size: 14px; line-height: 1.5; }
.connection-notice button, .receipt-actions button, .feed-toolbar button { min-height: 44px; padding: 12px 18px; border: 1px solid #b5cbbf; border-radius: 12px; background: #fff; color: #163c31; font: 650 13px var(--sans); cursor: pointer; }
.publication-receipt { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 20px; align-items: center; scroll-margin-top: 90px; }
.receipt-check { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; background: #256c50; color: #fff; }
.receipt-check svg { width: 26px; height: 26px; }
.publication-receipt h2 { margin: 6px 0; font: 650 clamp(20px, 2vw, 28px)/1.2 var(--sans); letter-spacing: -.03em; }
.publication-receipt p:not(.eyebrow) { margin: 8px 0 0; font-size: 13px; line-height: 1.5; }
.receipt-actions { display: flex; gap: 8px; }
.receipt-actions button { display: flex; gap: 8px; align-items: center; justify-content: center; }
.receipt-actions button:first-child { color: #fff; background: #163c31; }
.receipt-actions svg, .feed-toolbar svg { width: 16px; height: 16px; }
.feed-toolbar { margin: -12px 0 24px; display: flex; gap: 16px; justify-content: space-between; align-items: center; }
.feed-toolbar p { color: #61736c; font-size: 13px; }
.feed-toolbar button { display: inline-flex; align-items: center; gap: 8px; }
.report-visual, .map-thumb, .detail-visual { position: relative; overflow: hidden; isolation: isolate; }
.evidence-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.report-visual .status-pill, .report-visual .report-category-icon, .detail-visual-overlay { z-index: 2; }
.example-photo-label { position: absolute; left: 12px; bottom: 12px; z-index: 2; max-width: calc(100% - 24px); padding: 6px 9px; border-radius: 8px; color: #fff; background: #17382dd9; font: 600 11px var(--sans); }
.map-thumb .example-photo-label { inset: auto 0 0; max-width: 100%; border-radius: 0; padding: 4px; font-size: 9px; text-align: center; }
.detail-visual .example-photo-label { bottom: auto; top: 14px; }
.my-report-row { width: 100%; text-align: left; color: inherit; border: 0; border-bottom: 1px solid #dbe4de; background: transparent; cursor: pointer; }
.my-report-row:hover, .my-report-row:focus-visible { background: #f0f6f1; }
.location-picker { padding: 18px; border: 1px solid #d6e1d9; border-radius: 18px; background: #f8faf6; }
.location-picker summary { min-height: 44px; cursor: pointer; font-size: 15px; font-weight: 650; }
.location-picker p { font-size: 14px; line-height: 1.6; color: #61736c; margin: 0 0 16px; }
#reportLocationMap { height: 300px; border-radius: 14px; isolation: isolate; background: #e0e8dd; }
.location-coordinates { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 16px 0; }
.location-coordinates label { min-width: 0; font-size: 13px; color: #466055; }
.location-coordinates input { width: 100%; min-width: 0; padding: 12px; border: 1px solid #cbd9d1; border-radius: 10px; background: white; font-size: 16px; }
.publish-status { font-size: 14px; color: #315e4d; line-height: 1.6; }
.publish-status:empty { display: none; }
button:disabled { cursor: wait; opacity: .6; }
.view[data-view="nuevo"] .report-category-options label { position: relative; }
.view[data-view="nuevo"] .report-category-options input { inset: 0; width: 100%; height: 100%; min-height: 0; z-index: 2; cursor: pointer; pointer-events: auto; }
.report-category-options input:focus-visible + span { outline: 3px solid #3c8c73; outline-offset: 4px; }
.share-report { width: 100%; margin-top: 12px; }
.auth-dialog .remember-session { display: flex; align-items: flex-start; gap: 12px; margin: 18px 0; cursor: pointer; font-size: 13px; line-height: 1.5; }
.auth-dialog .remember-session input { width: 20px; height: 20px; min-height: 20px; flex: 0 0 20px; padding: 0; margin: 1px 0 0; accent-color: #256c50; }
.remember-session small { display: block; color: #63746b; font-size: 11px; font-weight: 400; margin-top: 3px; }
.avatar-button { min-width: 44px; }
.report-permalink { display: block; margin-top: 10px; overflow-wrap: anywhere; font-size: 12px; color: #28664e; }
@media (max-width: 1440px) { .publication-receipt, .connection-notice { margin-inline: 18px; } }
@media (max-width: 820px) {
  .report-dialog .detail-layout { grid-template-columns: minmax(0, 1fr); }
  .report-dialog .detail-copy, .report-dialog .detail-side { padding: 24px; min-width: 0; }
  .report-dialog .detail-copy h2 { font-size: clamp(27px, 6vw, 38px); overflow-wrap: anywhere; }
  .publication-receipt { grid-template-columns: 42px minmax(0, 1fr); gap: 14px; padding: 18px; margin-inline: 10px; }
  .receipt-check { width: 42px; height: 42px; border-radius: 13px; }
  .receipt-actions { grid-column: 1 / -1; flex-wrap: wrap; }
  .receipt-actions button { flex: 1; }
  .feed-toolbar { flex-wrap: wrap; margin-top: 0; }
  .feed-toolbar p { margin: 0; }
  .connection-notice { margin-inline: 10px; padding: 16px; flex-wrap: wrap; }
  .view[data-view="mapa"] .map-interaction-toggle { display: flex; position: absolute; top: 12px; right: 12px; z-index: 650; min-height: 44px; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 12px; font: 650 12px var(--sans); }
  .map-interaction-toggle svg { width: 16px; height: 16px; }
  .view[data-view="mapa"] .map-canvas:not(.is-interactive) #leafletMap { pointer-events: none; }
  body.map-focus-mode .mobile-nav { visibility: hidden; pointer-events: none; }
  .location-picker { padding: 12px; }
  #reportLocationMap { height: 260px; }
}
