:root{--opacity-subtle:.08;--opacity-dimmed:.2;--opacity-hover:.3;--z-panel:40;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--dur-fast:.2s;--dur-base:.25s;--dur-slow:.35s;--shadow-panel:-2px 0 12px rgba(0, 0, 0, var(--opacity-subtle));--shadow-listbox:0 4px 12px rgba(0, 0, 0, var(--opacity-subtle));--shadow-drawer:0 -2px 12px rgba(0, 0, 0, var(--opacity-subtle));--color-bg-page:#f4f1ea;--color-bg-surface:#fff;--color-bg-hover:#fbf8f0;--color-bg-tint:#f0ebe0;--color-bg-stale:#faf7ee;--color-bg-stale-chip:#efeadd;--color-accent-notable-bg:#fff8e1;--color-accent-notable-bg-hover:#fff3c4;--color-accent-notable-fg:#b8860b;--color-banner-bg:#fff8e1;--color-banner-border:#ffe082;--color-banner-text:#5d4037;--color-banner-hover:#ffecb3;--color-border-subtle:#e6e1d2;--color-border-ui:#d8d3c3;--color-text-strong:#1a1a1a;--color-text-body:#444;--color-text-muted:#555;--color-text-subtle:#5c5c5c;--color-text-faint:#666;--color-text-stale:#6b6b6b;--color-text-stale-name:#5c5c5c;--color-text-white:#fff;--color-error-bg:#fdecec;--color-error-border:#d48e8e;--color-error-text:#8a1f1f}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg-page);color:var(--color-text-strong);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,sans-serif}.app{flex-direction:column;height:100vh;display:flex}#main-surface{min-height:0;padding:var(--space-lg);flex:1;overflow:auto}.error-screen{max-width:500px;margin:0 auto;padding:32px}.feed{margin:0;max-width:760px;margin-inline:auto;padding:0;list-style:none}.feed-sort{max-width:760px;margin:0 auto var(--space-md) auto;gap:var(--space-lg);padding:var(--space-sm) var(--space-md);color:var(--color-text-strong);font-size:13px;display:flex}.feed-sort-option{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.feed-sort-option input[type=radio]{accent-color:var(--color-text-strong)}.feed-row-item{margin:0;padding:0}.feed-row{align-items:center;gap:var(--space-md);width:100%;min-height:44px;padding:var(--space-sm) var(--space-md);border:none;border-bottom:1px solid var(--color-border-subtle);cursor:pointer;background:var(--color-bg-surface);color:inherit;font:inherit;text-align:left;appearance:none;display:flex}.feed-row:hover{background:var(--color-bg-hover)}.feed-row:focus-visible{outline:2px solid var(--color-text-strong);outline-offset:-2px}.feed-row-notable{background:var(--color-accent-notable-bg);border-left:3px solid var(--color-accent-notable-fg)}.feed-row-notable:hover{background:var(--color-accent-notable-bg-hover)}.feed-row-badge{background:var(--color-accent-notable-fg);width:20px;height:20px;color:var(--color-text-white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.feed-row-name{min-width:0;color:var(--color-text-strong);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:600;overflow:hidden}.feed-row-count{font-variant-numeric:tabular-nums;color:var(--color-text-body);background:var(--color-bg-tint);border-radius:10px;flex-shrink:0;padding:2px 6px;font-size:13px}.feed-row-count-unknown{color:var(--color-text-faint);background:0 0}.feed-row-loc{min-width:0;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;font-size:13px;overflow:hidden}.feed-row-time{color:var(--color-text-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.feed-empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted);max-width:480px;margin-inline:auto;font-size:14px}.species-search-surface{max-width:760px;margin-inline:auto}.species-autocomplete{margin:0 0 var(--space-lg) 0;position:relative}.species-autocomplete-input{box-sizing:border-box;border:1px solid var(--color-border-ui);background:var(--color-bg-surface);width:100%;color:var(--color-text-strong);appearance:none;border-radius:6px;padding:10px 14px;font-size:15px}.species-autocomplete-input:focus-visible{outline:2px solid var(--color-text-strong);outline-offset:-2px}.species-autocomplete-listbox{background:var(--color-bg-surface);border:1px solid var(--color-border-ui);box-shadow:var(--shadow-listbox);max-height:280px;z-index:var(--z-panel);border-radius:6px;margin:0;padding:4px 0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto}.species-autocomplete[data-position=below] .species-autocomplete-listbox{top:calc(100% + 4px);bottom:auto}.species-autocomplete[data-position=above] .species-autocomplete-listbox{top:auto;bottom:calc(100% + 4px)}.species-autocomplete-option{color:var(--color-text-strong);cursor:pointer;padding:8px 14px;font-size:14px;line-height:1.3}.species-autocomplete-option.is-highlighted,.species-autocomplete-option:hover{background:var(--color-bg-tint)}.species-autocomplete-no-matches{background:var(--color-bg-surface);border:1px solid var(--color-border-ui);color:var(--color-text-muted);border-radius:6px;padding:10px 14px;font-size:13px;position:absolute;top:calc(100% + 4px);left:0;right:0}.species-search-prompt,.species-search-empty{padding:var(--space-xl) var(--space-lg);text-align:center;color:var(--color-text-muted);margin:0;font-size:14px}.migration-banner{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--color-banner-bg);border-bottom:1px solid var(--color-banner-border);color:var(--color-banner-text);font-size:13px;display:flex}.migration-banner-text{flex:1}.migration-banner-dismiss{appearance:none;cursor:pointer;color:var(--color-banner-text);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:20px;line-height:1}.migration-banner-dismiss:hover,.migration-banner-dismiss:focus-visible{background:var(--color-banner-hover)}.filters-bar{gap:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-ui);flex-wrap:wrap;align-items:center;display:flex}.filters-bar label{align-items:center;gap:6px;font-size:13px;display:flex}.filters-bar select,.filters-bar input{padding:4px 8px}.surface-nav{gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background:var(--color-bg-surface);border-bottom:1px solid var(--color-border-ui);display:flex}.surface-nav-tab{appearance:none;font:inherit;color:var(--color-text-strong);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:6px 14px;font-size:13px;line-height:1.2}.surface-nav-tab:hover{background:var(--color-bg-tint)}.surface-nav-tab:focus-visible{outline:2px solid var(--color-text-strong);outline-offset:2px}.surface-nav-tab.is-active{background:var(--color-text-strong);color:var(--color-text-white);border-color:var(--color-text-strong)}.species-detail-surface{max-width:760px;margin-inline:auto}.species-detail-body{margin-top:var(--space-sm)}.species-detail-common-name{margin:0 0 4px;font-size:20px;font-weight:700}.species-detail-sci-name{color:var(--color-text-muted);margin:0 0 12px;font-size:14px}.species-detail-family{color:var(--color-text-body);margin:0;font-size:13px}.species-detail-loading{color:var(--color-text-muted);margin:8px 0 0;font-size:13px}.species-detail-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text);border-radius:4px;margin-top:8px;padding:8px 12px;font-size:13px}
