:root{--ink:#153d3a;--muted:#637572;--paper:#fffdf7;--card:#fff;--sand:#efe6d2;--line:#d8dfda;--accent:#d97745;--accent-soft:#f7e6dc;--green-soft:#e4eee7;--shadow:0 10px 30px #1b383417;--radius:20px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 10% 0,#f2eadb 0,#0000 32rem),linear-gradient(#fffdf8,#f7f5ee);min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.shell{width:min(1180px,100% - 28px);margin:auto;padding:28px 0 60px}header.hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(135deg,#153d3a,#245e58);border-radius:28px;padding:clamp(24px,5vw,52px);position:relative;overflow:hidden}header.hero:after{content:"";background:#ffffff14;border-radius:50%;width:280px;height:280px;position:absolute;top:-90px;right:-80px}.hero-top{z-index:1;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.14em;opacity:.8;font-size:.76rem;font-weight:800}h1{max-width:800px;margin:.35em 0 .25em;font-size:clamp(1.9rem,5vw,3.6rem);line-height:1}.intro{color:#e8f2ef;max-width:720px;margin:0;font-size:1.05rem;line-height:1.6}.hero-user{z-index:1;align-items:center;gap:10px;display:flex;position:relative}.locationbar{border:1px solid var(--line);background:#fff;border-radius:20px;gap:14px;margin-top:20px;padding:16px;display:grid;box-shadow:0 4px 18px #0000000a}.locationbar .lb-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.locationbar label.lb-label{color:var(--muted);font-size:.9rem;font-weight:750}.select,.text-input{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:12px;min-width:180px;padding:11px 13px}.text-input{flex:1;min-width:160px}.chip{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:700;transition:border-color .15s,background .15s}.chip:hover{border-color:#b9c9c3}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.btn-primary{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:11px 16px;font-weight:800}.btn-primary:disabled{opacity:.55;cursor:default}.lb-note{color:var(--muted);font-size:.85rem}.lb-note.warn{color:#8a5a2b}.locationbar .lb-group{gap:10px;display:grid}.badge{letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:800}.badge-online{color:#8a5a2b;background:#fdf1e0;border:1px solid #f0dcbe}.badge-offline{color:#2f6b4a;background:#e7f3ec;border:1px solid #cfe6da}.result-list{border:1px solid var(--line);background:var(--paper);border-radius:14px;gap:6px;margin:0;padding:6px;list-style:none;display:grid}.result{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 11px;transition:background .15s;display:flex}.result:hover:not(:disabled){background:#fff}.result:disabled{opacity:.55;cursor:default}.result-name{color:var(--ink);font-weight:750}.result-detail{color:var(--muted);font-size:.82rem}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:22px 0 8px;display:flex}.progress{border:1px solid var(--line);background:#fff;border-radius:16px;flex:1;min-width:230px;padding:13px 16px;box-shadow:0 4px 18px #0000000a}.progress-top{justify-content:space-between;gap:12px;font-size:.9rem;font-weight:750;display:flex}.bar{background:#edf0ed;border-radius:999px;height:8px;margin-top:9px;overflow:hidden}.bar>span{background:var(--accent);border-radius:inherit;width:0;height:100%;transition:width .25s;display:block}.clear{background:var(--accent-soft);color:#7a3b20;cursor:pointer;border:0;border-radius:14px;padding:13px 16px;font-weight:750}.offline-banner{color:#7a4a1c;background:#fbf1e4;border:1px solid #ecd9bf;border-radius:14px;margin-top:14px;padding:10px 14px;font-size:.88rem;font-weight:650}.section{margin-top:30px}.section-head{justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px;display:flex}.section h2{margin:0;font-size:1.4rem}.section .section-sub{color:var(--muted);margin:.25rem 0 0}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.bird{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:138px 1fr;min-height:138px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 16px #2039340b}.bird:hover{box-shadow:var(--shadow);border-color:#b9c9c3;transform:translateY(-2px)}.bird.seen{background:#fbfdfb;border-color:#91b19f}.photo-wrap{cursor:pointer;background:#e6ece8;position:relative;overflow:hidden}.photo{object-fit:cover;width:100%;height:100%;min-height:138px;display:block}.photo-badge{letter-spacing:.05em;text-transform:uppercase;color:#fff;pointer-events:none;background:#0000007a;border-radius:999px;padding:4px 7px;font-size:.62rem;font-weight:800;position:absolute;bottom:8px;left:8px}.photo-badge.mine{background:#1a5c4ad1}.photo-cam{width:30px;height:30px;color:var(--ink);cursor:pointer;background:#ffffffeb;border:0;border-radius:50%;place-items:center;font-size:.95rem;display:grid;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #00000040}.bird-body{padding:16px 16px 14px}.name-row{align-items:flex-start;gap:10px;display:flex}.check{width:22px;height:22px;accent-color:var(--accent);cursor:pointer;flex:none;margin:1px 0 0}.bird h3{margin:0;font-size:1.04rem;line-height:1.25}.local{color:var(--accent);font-weight:500}.cue{color:#536763;cursor:pointer;margin:8px 0 0;font-size:.88rem;line-height:1.45}.tag{background:var(--green-soft);letter-spacing:.02em;border-radius:999px;margin-top:10px;padding:4px 8px;font-size:.7rem;font-weight:800;display:inline-block}.tag.native{background:#dcefe6}.tag.introduced{color:#6c6249;background:#f2eee2}dialog{overscroll-behavior:contain;width:min(760px,100% - 26px);max-height:min(88dvh,900px);color:var(--ink);border:0;border-radius:24px;margin:auto;padding:0;overflow:hidden;box-shadow:0 30px 100px #00000052}dialog[open]{flex-direction:column;display:flex}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a1c1b9e}.modal-photo{object-fit:cover;background:#e6ece8;flex:none;width:100%;height:min(42vh,390px);display:block}.modal-body{overscroll-behavior:contain;padding:22px 24px 25px;overflow-y:auto}.modal-top{justify-content:space-between;align-items:start;gap:16px;display:flex}.modal-body h2{margin:0;font-size:1.6rem}.modal-body p{color:#4f625f;margin:.6rem 0 0;line-height:1.58}.modal-meta{color:var(--muted);margin-top:6px;font-size:.85rem}.close{cursor:pointer;background:#edf1ef;border:0;border-radius:50%;flex:none;width:38px;height:38px;font-size:1.35rem}.modal-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.btn{cursor:pointer;background:var(--ink);color:#fff;border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:11px 14px;font-weight:800;text-decoration:none;display:inline-flex}.btn.secondary{background:var(--accent-soft);color:#763c24}.btn.ghost{color:var(--ink);background:#eef2f0}footer{color:var(--muted);margin-top:30px;padding:0 4px;font-size:.82rem;line-height:1.5}.empty{text-align:center;color:var(--muted);padding:40px 16px}.center-screen{text-align:center;min-height:100vh;color:var(--muted);place-items:center;padding:24px;display:grid}.auth-shell{grid-template-columns:1fr;place-items:center;gap:26px;min-height:100vh;padding:40px 20px;display:grid}.auth-intro{text-align:center;max-width:440px}.auth-intro .eyebrow{color:var(--accent)}.auth-intro h1{margin:.3em 0;font-size:clamp(1.8rem,5vw,2.8rem)}.auth-intro p{color:var(--muted);line-height:1.6}@media (min-width:900px){.auth-shell{grid-template-columns:1fr auto;gap:60px;max-width:980px;margin:auto}.auth-intro{text-align:left}}@media (max-width:760px){.grid{grid-template-columns:1fr}.bird{grid-template-columns:116px 1fr}.shell{width:min(100% - 18px,1180px);padding-top:9px}header.hero{border-radius:20px;padding:26px 20px}}@media (max-width:430px){.bird{grid-template-columns:104px 1fr}.bird-body{padding:13px 12px}.cue{font-size:.82rem}}
