:root{--color-primary: #2bb3ac;--color-primary-hover: #3fc7c0;--color-primary-soft: #12292a;--color-accent: #2bb3ac;--color-accent-hover: #3fc7c0;--color-accent-soft: #12292a;--color-accent-border: #1f5f5c;--color-on-accent: #061615;--color-bg: #0e1012;--color-surface: #16191c;--color-surface-muted: #1c2024;--color-border: #262b30;--color-border-strong: #5f686e;--color-text: #f2f4f5;--color-muted: #9aa3a8;--color-dim: #858e94;--color-placeholder: #808990;--color-danger: #ff7b70;--color-danger-fill: #b8322a;--color-danger-hover: #a02a23;--color-danger-soft: #2a1513;--color-danger-border: #6a2b26;--color-warning-soft: #241f10;--color-warning-border: #6b5a26;--color-warning-text: #f0d58c;--color-status-ok: #2bb3ac;--color-status-warn: #f0b44c;--color-status-bad: #ff6b5e;--focus-ring: 0 0 0 3px rgba(43, 179, 172, .35);--radius: 3px;--radius-sm: 2px;--header-height: 60px;--font-sans: "Inter Tight", "Segoe UI", Arial, sans-serif;--transition: .12s ease;color-scheme:dark}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-tight/inter-tight-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-tight/inter-tight-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/inter-tight/inter-tight-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/inter-tight/inter-tight-latin-ext-wght-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:1.2;color:var(--color-text)}h2{font-size:2.75rem;font-weight:800;letter-spacing:-.04em;line-height:1;margin:0 0 1.5rem}h3{font-size:1.125rem;margin:0 0 .5rem}p{margin:0 0 1rem}a{color:var(--color-accent);text-underline-offset:2px}a:hover{color:var(--color-accent-hover)}img{max-width:100%}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}input[type=text],input[type=number],input[type=url],input[type=search],input[type=password],select,textarea{font:inherit;font-size:.95rem;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.55rem .75rem;min-height:2.5rem;transition:border-color var(--transition),box-shadow var(--transition)}input[type=search]::-webkit-search-cancel-button{filter:invert(.7)}textarea{resize:vertical;min-height:7rem}input::placeholder,textarea::placeholder{color:var(--color-placeholder)}input:hover,select:hover,textarea:hover{border-color:var(--color-muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--focus-ring)}select{appearance:none;padding-right:2.25rem;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%239aa3a8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}option{background:var(--color-surface);color:var(--color-text)}input[type=checkbox]{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--color-accent);cursor:pointer}fieldset{margin:0;min-width:0}.container{width:100%;max-width:1240px;margin:0 auto;padding:0 1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.5rem;padding:.5rem 1.1rem;border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:.9rem;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),color var(--transition)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);color:var(--color-on-accent)}.btn-secondary{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-muted);color:var(--color-text)}.btn-danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger-border)}.btn-danger:hover:not(:disabled){background:var(--color-danger-fill);border-color:var(--color-danger-fill);color:#fff}.btn-sm{min-height:2rem;padding:.3rem .75rem;font-size:.85rem}.chip{display:inline-flex;align-items:center;gap:.35rem;min-height:2rem;padding:.25rem .7rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:.85rem;font-weight:500;text-transform:capitalize;cursor:pointer;transition:background-color var(--transition),border-color var(--transition),color var(--transition)}.chip:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.chip.active:hover{background:var(--color-accent-hover)}.sci{font-style:italic;color:var(--color-muted)}.hint{color:var(--color-muted);font-size:.875rem}.field-error,.error-message{color:var(--color-danger);font-size:.9rem}.error-message{padding:.75rem 1rem;border:1px solid var(--color-danger-border);border-left-width:3px;border-radius:var(--radius-sm);background:var(--color-danger-soft)}[data-status]{--tone: var(--color-status-ok)}[data-status=vulnerable i],[data-status=endangered i]{--tone: var(--color-status-warn)}[data-status="critically endangered" i],[data-status="extinct in the wild" i],[data-status=extinct i]{--tone: var(--color-status-bad)}[data-status="data deficient" i]{--tone: var(--color-muted)}.status{display:inline-flex;align-items:center;gap:.45rem;font-size:.75rem;font-weight:700;letter-spacing:.1em;line-height:1.5;text-transform:uppercase;color:var(--tone, var(--color-muted));white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.code{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--tone, var(--color-dim))}.page-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1.5rem}.page-head h2{margin:0}.state-message{margin:1rem 0;padding:2.5rem 1rem;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);color:var(--color-muted);text-align:center}@media(max-width:600px){h2{font-size:2.1rem}.container{padding:0 1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}.modal-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:#050607c7}.modal{display:flex;flex-direction:column;width:min(560px,100%);max-height:88vh;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius);overflow:hidden}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem}.modal-header{border-bottom:1px solid var(--color-border)}.modal-header h3{margin:0;font-size:1.2rem}.modal-footer{border-top:1px solid var(--color-border);background:var(--color-surface-muted)}.modal .close{width:2.25rem;height:2.25rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted);font-size:1.5rem;line-height:1}.modal .close:hover{background:var(--color-surface-muted);color:var(--color-text)}.suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:360px;margin:0;padding:.25rem;overflow-y:auto;list-style:none;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius)}.suggestions li{display:flex;align-items:center;gap:.75rem;padding:.45rem .6rem;border-radius:var(--radius-sm);cursor:pointer}.suggestions li:hover,.suggestions li:focus{background:var(--color-accent-soft)}.suggestions .thumb{flex:none;width:44px;height:44px;object-fit:cover;border-radius:var(--radius-sm);background:var(--color-surface-muted)}@media(max-width:600px){.modal-backdrop{align-items:flex-end;padding:0}.modal{width:100%;max-height:92vh;border-radius:var(--radius) var(--radius) 0 0}}.search-wrap .search{width:100%;padding-left:2.35rem;background:var(--color-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%239aa3a8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat .8rem center}.badge{min-width:1.35rem;padding:0 .35rem;border-radius:2px;background:var(--color-accent);color:var(--color-on-accent);font-size:.75rem;line-height:1.35rem}.filters{display:flex;flex-direction:column;gap:1.1rem;padding:1.25rem;overflow-y:auto}.filter-chips,.filter-ranges{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.chip-label{flex-basis:100%;font-size:.875rem;font-weight:600}.filter-ranges input{width:7rem}.suggestion-text strong{margin-right:.25rem}
