.ftd-duck-page .ftd-duck-image img { max-width: 100%; height: auto; }
.ftd-duck-page .ftd-map-canvas { width: 100%; min-height: 200px; background: #eef2f6; border-radius: 6px; }
.ftd-sighting-explorer .ftd-sighting-tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.ftd-sighting-explorer .ftd-sighting-tabs button { border: 1px solid currentColor; background: transparent; color: inherit; border-radius: 5px; padding: .45rem .85rem; cursor: pointer; font: inherit; }
.ftd-sighting-explorer .ftd-sighting-tabs button[aria-selected="true"] { background: #26394d; border-color: #26394d; color: #fff; }
.ftd-sighting-explorer .ftd-sighting-panel[hidden] { display: none !important; }
.ftd-sighting-history ul { padding-inline-start: 1.5em; }
.ftd-duck-page .ftd-map-canvas .leaflet-popup-content { font-size: 13px; }

/* Connection-line control is available to visitors, not to template editors. */
.ftd-duck-page .ftd-map-connect-control { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 .75rem; cursor: pointer; font: inherit; }
.ftd-duck-page .ftd-map-connect-control input { margin: 0; cursor: pointer; }
.ftd-duck-page .ftd-map-connect-control input:disabled { cursor: wait; }

/* Modular public sighting form */
.ftd-report-form { max-width: 760px; display: grid; gap: 1rem; }
.ftd-report-form h3, .ftd-report-form p { margin: 0; }
.ftd-report-field { display: grid; gap: .45rem; min-width: 0; }
.ftd-report-field > label { display: grid; gap: .4rem; }
.ftd-report-field input[type="text"], .ftd-report-field input[type="datetime-local"],
.ftd-report-field select, .ftd-report-field textarea { box-sizing: border-box; width: 100%; padding: .65rem; border: 1px solid #9ca3af; border-radius: 6px; font: inherit; }
.ftd-report-field input[type="radio"] { margin-inline-end: .3rem; }
.ftd-report-field fieldset, .ftd-report-field legend { margin: 0; }
.ftd-report-map { height: 350px; width: 100%; background: #e8edf1; border-radius: 8px; z-index: 0; }
.ftd-report-gps, .ftd-report-form button[type="submit"] { width: fit-content; padding: .6rem 1rem; cursor: pointer; font: inherit; }
.ftd-report-hint { font-size: .88em; opacity: .82; }
.ftd-report-preview { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: .75rem; }
.ftd-report-preview-item { display: grid; gap: .3rem; border: 1px solid #d1d5db; padding: .4rem; border-radius: 7px; overflow-wrap: anywhere; }
.ftd-report-preview-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; }
.ftd-report-preview-item button { cursor: pointer; }
.ftd-report-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; left: -9999px; }
.ftd-report-form [data-ftd-feedback]:not(:empty) { padding: .75rem; border-left: 3px solid #2c74a2; background: #f0f6fc; }
.ftd-sighting-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(95px, 1fr)); gap: .5rem; margin: .5rem 0 1rem; }
.ftd-sighting-photo-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 5px; }

/* Public sighting cards: place first, finder only when provided. */
.ftd-sighting-list { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: 1rem; }
.ftd-sighting-list > li { margin: 0; padding: 0; }
.ftd-sighting-card { padding: 1rem; border: 1px solid #d7dde4; border-radius: 9px; overflow-wrap: anywhere; }
.ftd-sighting-card .ftd-sighting-place { margin: 0 0 .3rem; font-size: 1.15em; line-height: 1.35; }
.ftd-sighting-card .ftd-sighting-date { margin: 0 0 .8rem; opacity: .72; font-size: .87em; }
.ftd-sighting-card p { margin: .4rem 0; }
.ftd-sighting-tags { display: flex; gap: .45rem; flex-wrap: wrap; margin: .65rem 0; }
.ftd-sighting-tags span { border-radius: 999px; padding: .2rem .65rem; background: #eef2f6; color: #26394d; font-size: .85em; }
.ftd-sighting-card .ftd-sighting-finder { margin-top: .7rem; font-size: .85em; opacity: .75; }
.ftd-map-detail-host { margin-top: 1rem; }
.ftd-map-detail-host [hidden], .ftd-sighting-panel[hidden] { display: none !important; }
.ftd-map-detail-placeholder { padding: .75rem; border: 1px dashed #9ca3af; border-radius: 7px; }
.ftd-geocoding-credit { font-size: .75em; opacity: .65; margin: .6rem 0 0; }

/* Site-wide duck map: independent of the single-duck page wrapper. */
.ftd-overview-map { width:100%; min-height:240px; background:transparent; border-radius:0; z-index:0; }
.ftd-overview-map .leaflet-popup-content { font-size:14px; line-height:1.6; }
.ftd-overview-map .leaflet-popup-content a { display:inline-block; margin-top:.35rem; }
@media (max-width:600px) { .ftd-overview-map { min-height:300px; } .ftd-overview-map .leaflet-control-zoom a { width:36px; height:36px; line-height:36px; } }

/* Compact, theme-neutral controls. The blocks can be positioned separately. */
.ftd-overview-controls .ftd-overview-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .85rem 1.5rem;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-sizing: border-box;
}
.ftd-overview-controls .ftd-overview-filter {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    flex: 0 1 310px;
    min-width: 0;
}
.ftd-overview-controls .ftd-overview-filter label {
    display: block;
    margin: 0;
    padding: 0;
    font: inherit;
    font-size: .85em;
    line-height: 1.4;
    font-weight: 600;
    color: inherit;
}
.ftd-overview-controls .ftd-overview-select-wrap {
    position: relative;
    width: 100%;
    min-width: 0;
}
.ftd-overview-controls .ftd-overview-select-wrap::after {
    content: '';
    position: absolute;
    right: 1rem;
    top: 50%;
    width: .5rem;
    height: .5rem;
    border-right: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    pointer-events: none;
    opacity: .75;
}
.ftd-overview-controls select[data-ftd-overview-period] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    margin: 0;
    padding: .6rem 2.5rem .6rem .85rem;
    border: 1px solid currentColor;
    border-radius: 8px;
    outline-offset: 3px;
    background-color: transparent;
    color: inherit;
    font: inherit;
    font-size: .95em;
    line-height: 1.4;
    text-align: left;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}
.ftd-overview-controls select[data-ftd-overview-period]:focus-visible {
    outline: 2px solid currentColor;
}
.ftd-overview-controls .ftd-overview-count {
    display: block;
    margin: 0 0 .75rem;
    padding: 0;
    font: inherit;
    font-size: .9em;
    line-height: 1.5;
    color: inherit;
    opacity: .8;
    white-space: nowrap;
}
.ftd-overview-empty { margin: .75rem 0; padding: 0; border: 0; background: transparent; }
.ftd-overview-empty[hidden] { display: none !important; }
@media (max-width: 520px) {
    .ftd-overview-controls .ftd-overview-toolbar { align-items: stretch; gap: .5rem; }
    .ftd-overview-controls .ftd-overview-filter { flex: 1 1 100%; }
    .ftd-overview-controls .ftd-overview-count { margin: 0; white-space: normal; }
}

/* Chronological sighting markers and curved connection lines. */
.ftd-sighting-number-icon { background: transparent; border: 0; }
.ftd-sighting-number-icon span {
    display: flex; align-items: center; justify-content: center;
    width: 30px; height: 30px; box-sizing: border-box;
    border: 2px solid #fff; border-radius: 50%;
    background: #176b89; color: #fff; font: 700 13px/1 sans-serif;
    box-shadow: 0 1px 5px #0005;
}
/* Visitor-controlled map styles; theme-neutral control and accessible status. */
.ftd-map-style-control {background:var(--wp--preset--color--base,#fff);color:var(--wp--preset--color--contrast,#202124);padding:.45rem;border-radius:5px;box-shadow:0 1px 6px #0003;max-width:min(220px,60vw)}
.ftd-map-style-control label {font:600 12px/1.4 sans-serif;display:block}
.ftd-map-style-control select {display:block;margin-top:4px;width:100%;max-width:100%;min-height:34px;padding:3px 6px;font:13px/1.4 sans-serif;color:#222;background:#fff;border:1px solid #999;border-radius:4px}
.ftd-map-status {font:inherit;font-size:.9em;margin:.6rem 0;padding:.55rem .7rem;border-left:3px solid #b9821e;background:transparent;color:inherit}
.ftd-map-status[hidden] {display:none!important}

/* 0.19.14: accessible, provider-independent map tools. */
.ftd-map-tools {display:flex;gap:4px;background:#fff;padding:5px;border-radius:6px;box-shadow:0 1px 6px #0003}
.ftd-map-tool-button {display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;border:1px solid #b7bec7;border-radius:4px;background:#fff;color:#202124;font:700 22px/1 sans-serif;cursor:pointer;padding:3px}
.ftd-map-tool-button:hover,.ftd-map-tool-button:focus-visible {background:#edf4fb;outline-offset:2px}
.ftd-map-tool-button[aria-pressed="true"] {background:#d8e9fa;border-color:#2173ba}
.ftd-map-tool-button:disabled {opacity:.5;cursor:wait}
.ftd-map-legend {max-width:min(260px,75vw);background:#fff;color:#202124;border-radius:5px;box-shadow:0 1px 6px #0003;font:13px/1.45 sans-serif}
.ftd-map-legend summary {cursor:pointer;padding:7px 11px;font-weight:600;list-style:revert}
.ftd-map-legend-content {padding:0 11px 9px}
.ftd-map-legend-content p {margin:6px 0}
.ftd-map-canvas:fullscreen,.ftd-overview-map:fullscreen {width:100%!important;height:100%!important;min-height:100%!important;border-radius:0!important;background:#e6edf3}
.ftd-map-pseudo-fullscreen {position:fixed!important;inset:0!important;z-index:999999!important;width:100vw!important;height:100dvh!important;min-height:100dvh!important;border-radius:0!important;background:#e6edf3}
body.ftd-map-fullscreen-open {overflow:hidden!important}
@media(max-width:420px) {.ftd-map-tools {gap:2px;padding:3px}.ftd-map-tool-button {min-width:32px;min-height:34px}.ftd-map-style-control {max-width:185px}}

/* 0.19.15: actual marker samples and accessible external navigation links. */
.ftd-map-legend[open] {max-width:min(300px,82vw)}
.ftd-map-legend-content {padding:4px 11px 10px}
.ftd-map-legend-row {display:flex;align-items:center;gap:10px;margin:6px 0;min-height:34px}
.ftd-map-legend-sample {display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:38px;position:relative}
.ftd-map-legend-marker {position:static!important;display:block;width:25px!important;height:41px!important;max-width:none!important}
.ftd-map-legend-cluster {position:static!important;display:flex;align-items:center;justify-content:center;width:40px!important;height:40px!important;margin:0!important;border-radius:50%;background:rgba(181,226,140,.6)}
.ftd-map-legend-cluster div {display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(110,204,57,.6);font:12px/1 sans-serif}
.ftd-map-legend-number {display:block;position:static!important;width:30px;height:30px}
.ftd-map-legend-location {display:block;width:16px;height:16px;background:#1675d1;border:2px solid #fff;box-shadow:0 0 0 1px #2477bd,0 0 0 7px #2477bd22;border-radius:50%}
.ftd-map-navigation {margin-top:9px;padding-top:7px;border-top:1px solid #dce1e5;font:13px/1.5 sans-serif}
.ftd-map-navigation-heading {font-weight:600;margin-bottom:4px}
.ftd-map-navigation a {display:inline-block;margin:2px 7px 3px 0;padding:5px 7px;border:1px solid #aab5c0;border-radius:4px;background:#fff;color:#135c95;text-decoration:none}
.ftd-map-navigation a:hover,.ftd-map-navigation a:focus-visible {background:#eef6ff;text-decoration:underline}
.ftd-map-navigation small {display:block;margin-top:5px;color:#4c5560;font-size:11px;line-height:1.45}

/* Statistics: single-duck cards and global linked leaderboards. */
.ftd-duck-statistics,.ftd-all-statistics{margin:1.5rem 0;max-width:100%;}
.ftd-duck-statistics h2,.ftd-all-statistics h2{margin:0 0 1rem;}
.ftd-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,155px),1fr));gap:.75rem;margin:1rem 0;}
.ftd-stats-card{display:flex;flex-direction:column;justify-content:center;gap:.3rem;padding:1rem;border:1px solid #d7dde4;border-radius:10px;background:#f7f9fb;min-width:0;}
.ftd-stats-card strong{font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.2;color:#173e57;overflow-wrap:anywhere;}
.ftd-stats-card span{font-size:.88em;line-height:1.4;color:#405463;}
.ftd-stats-boards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1rem;margin:1.25rem 0;}
.ftd-stats-board{border:1px solid #d7dde4;border-radius:10px;padding:1rem;min-width:0;}
.ftd-stats-board h3{margin:0 0 .85rem;font-size:1.15em;}
.ftd-stats-ranking{list-style:decimal;margin:0;padding-left:1.7rem;}
.ftd-stats-ranking li{padding:.55rem 0;border-bottom:1px solid #e8ecf0;}
.ftd-stats-ranking li:last-child{border-bottom:0;}
.ftd-stats-ranking li a{display:inline-block;margin-right:.6rem;overflow-wrap:anywhere;}
.ftd-stats-ranking li strong{float:right;font-size:.9em;white-space:nowrap;}
.ftd-stats-ranking li::after{content:"";display:block;clear:both;}
.ftd-stats-ranking small{font-size:.78em;opacity:.7;}
.ftd-stats-note{font-size:.82em;line-height:1.55;opacity:.75;margin:.75rem 0;}

/* Public rankings and map identities do not link to reporting pages. */
.ftd-public-profile-thumb{display:block;flex:0 0 40px;width:40px;height:40px;object-fit:contain;border-radius:6px;background:#f4f6f8;}
.ftd-stats-identity,.ftd-map-identity{display:flex;align-items:center;gap:.6rem;min-width:0;}
.ftd-stats-identity{margin-bottom:.35rem;overflow-wrap:anywhere;}
.ftd-stats-ranking li strong{float:none;display:block;margin-left:calc(40px + .6rem);white-space:normal;}
.ftd-stats-ranking li a.ftd-stats-map-link{display:block;margin:.35rem 0 0 calc(40px + .6rem);font-size:.85em;}
