/* Bird Patch Map v466 (zoom and "i" note v518) — the real map around you, with the home patch of the
   bird you just heard. The circle pulses while the bird is singing. */
.bird-patch-panel { position:fixed; left:50%; transform:translateX(-50%); bottom:var(--bird-patch-bottom, 140px); z-index:1500; width:min(calc(100vw - 24px), 460px); box-sizing:border-box; padding:10px; border:1px solid rgba(240,199,103,.34); border-radius:14px; background:linear-gradient(160deg, rgba(38,30,15,.97), rgba(14,12,8,.97)); box-shadow:0 10px 30px rgba(0,0,0,.5); animation:birdPatchIn .28s ease; }
@keyframes birdPatchIn { from { opacity:0; transform:translate(-50%, 14px); } to { opacity:1; transform:translate(-50%, 0); } }
.bird-patch-panel[hidden] { display:none; }
.bird-patch-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; font-size:12px; letter-spacing:.04em; color:#f0c767; }
.bird-patch-head span { flex:1; }
.bird-patch-head button { flex:none; min-height:32px; padding:4px 10px; border:1px solid rgba(240,199,103,.45); border-radius:999px; background:transparent; color:#f0c767; font:inherit; font-size:11px; cursor:pointer; }
.bird-patch-close { width:32px; padding:0 !important; }
/* v518: the "i" note, and +/- zoom buttons on the card map. */
.bird-patch-head span { font-size:13px; letter-spacing:.01em; font-weight:600; }
.bird-patch-head .bird-patch-info { width:28px; min-height:28px; padding:0; font-family:Georgia, 'Times New Roman', serif; font-size:15px; font-weight:700; font-style:italic; line-height:1; }
.bird-patch-head .bird-patch-info[aria-expanded="true"] { background:#f0c767; color:#1a140a; }
.bird-patch-info-text { margin:0 0 8px; padding:8px 10px; border-radius:10px; background:rgba(240,199,103,.1); color:#efe6cf; font-size:13px; line-height:1.4; }
.bird-patch-info-text[hidden] { display:none; }
.bird-patch-info-text p { margin:0 0 4px; }
.bird-patch-info-text p:last-child { margin:0; color:#bfb59c; font-size:12px; }
.bird-patch-map { touch-action:none; }
.bird-patch-panel { max-height:calc(100dvh - var(--bird-patch-bottom, 140px) - 84px); overflow-y:auto; overscroll-behavior:contain; }
.bird-patch-zoom { position:absolute; top:6px; right:6px; display:grid; gap:4px; z-index:2; }
.bird-patch-zoom button { width:34px; height:34px; padding:0; border:1px solid rgba(0,0,0,.25); border-radius:8px; background:rgba(255,255,255,.92); color:#1a140a; font:700 20px/1 system-ui, sans-serif; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.3); }
.bird-patch-panel.no-map .bird-patch-zoom { display:none; }
.bird-patch-map { position:relative; height:min(190px, 26vh); border-radius:10px; overflow:hidden; background:#1c2a20; }
.bird-patch-map-wrap { position:relative; }
.bird-patch-credit { position:absolute; right:4px; bottom:3px; padding:1px 5px; border-radius:6px; background:rgba(255,255,255,.72); color:#333; font-size:8.5px; line-height:1.3; pointer-events:none; }
.bird-patch-panel.no-map .bird-patch-map-wrap { display:none; }
.bird-patch-legend { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:4px; }
.bird-patch-legend li { display:flex; align-items:center; gap:7px; font-size:12px; color:#efe6cf; min-width:0; }
.bird-patch-legend li i { flex:none; width:12px; height:12px; border-radius:50%; box-shadow:0 0 0 2px rgba(0,0,0,.4); }
.bird-patch-legend li.singing i { animation:birdPatchBlink 1.1s ease-in-out infinite; }
.bird-patch-legend li b { font-weight:700; white-space:nowrap; }
.bird-patch-legend li span { color:#bfb59c; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bird-patch-lesson { margin-top:8px; padding:8px 10px; border-left:4px solid var(--patch-color, #f0c767); border-radius:8px; background:rgba(255,255,255,.05); display:grid; gap:2px; font-size:13px; line-height:1.35; color:#efe6cf; }
.bird-patch-lesson[hidden] { display:none; }
.bird-patch-lesson strong { color:#fff5d8; }
.bird-patch-lesson[data-kind="same-bird"] { background:rgba(240,199,103,.12); }
.bird-patch-odds { margin-top:6px; padding-top:6px; border-top:1px solid rgba(255,255,255,.12); display:grid; gap:4px; }
.bird-patch-odds b { color:#fff5d8; }
.bird-patch-odds span { color:#d9cfb6; font-size:12.5px; }
.bird-patch-odds-bar { position:relative; height:8px; border-radius:4px; background:rgba(255,255,255,.1); overflow:hidden; }
.bird-patch-odds-bar i { position:absolute; left:0; top:0; bottom:0; border-radius:4px; background:var(--patch-color, #f0c767); }
.bird-patch-odds-bar i.group { opacity:.35; }
@keyframes birdPatchBlink { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.35); opacity:.55; } }
@media (prefers-reduced-motion: reduce) { .bird-patch-legend li.singing i, .bird-patch-panel { animation:none; } }
