:root{--font-display: "Newsreader", Georgia, serif;--font-ui: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--c-bg: #F4F6F8;--c-surface: #ffffff;--c-surface-2: #eef2f7;--c-surface-3: #e6ebf2;--c-border: #dfe4ed;--c-border-strong: #c5ccd9;--c-divider: #eef1f6;--c-brand: #1F3A6E;--c-brand-deep: #162B52;--c-brand-2: #2c4f8f;--c-brand-soft: #e9eff7;--c-accent: #1F3A6E;--c-accent-soft: #e6edf9;--c-accent-strong: #162B52;--c-text: #0B1A2B;--c-text-2: #2c3a52;--c-text-muted: #5a6577;--c-text-soft: #7b8499;--t1: #2E7D32;--t1-bg: #E8F5E9;--t2: #F59E0B;--t2-bg: #FFF8E1;--t3: #D97706;--t3-bg: #FFF3CD;--t4: #E53935;--t4-bg: #FDDCDC;--t5: #B71C1C;--t5-bg: #F8D7DA;--t6: #FFFFFF;--t6-bg: #4A1A1A;--c-emergency: #b71c1c;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--header-h: 60px;--rail-w: 222px;--ctx-h: 46px;--gutter: 28px;--card-pad: 22px;--row-gap: 18px;--sh-sm: 0 1px 2px rgba(12,37,64,.05), 0 1px 1px rgba(12,37,64,.04);--sh-md: 0 4px 14px rgba(12,37,64,.06), 0 2px 4px rgba(12,37,64,.04);--sh-lg: 0 18px 42px rgba(12,37,64,.12), 0 6px 14px rgba(12,37,64,.06)}.vp,.vp *{box-sizing:border-box}.vp .mono{font-family:var(--font-mono)}.vp .muted{color:var(--c-text-muted)}.vp .soft{color:var(--c-text-soft)}.vp h1,.vp h2,.vp h3,.vp h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0}.vp a{color:inherit;text-decoration:none}.vp{display:grid;height:100vh;grid-template-columns:var(--rail-w) 1fr;grid-template-rows:var(--header-h) var(--ctx-h) 1fr;grid-template-areas:"rail header" "rail context" "rail main";font-family:var(--font-ui);color:var(--c-text);background:var(--c-bg);font-size:15px;line-height:1.5}.vp .rail{grid-area:rail;background:var(--c-brand-deep);color:#ffffffdb;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.06);overflow-y:auto}.vp .rail-brand{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.vp .rail-brand .logo{width:30px;height:30px;border-radius:8px;background:#fff;display:grid;place-items:center;flex:none}.vp .rail-brand .logo svg{width:20px;height:20px}.vp .rail-brand .name{font-family:var(--font-display);font-size:19px;font-weight:700;color:#fff;line-height:1}.vp .rail-brand .name small{display:block;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.14em;color:#ffffff80;margin-top:3px}.vp .rail-section{padding:14px 12px 4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#fff6}.vp .rail-nav{display:flex;flex-direction:column;gap:2px;padding:0 10px}.vp .rail-link{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-md);font-size:14px;font-weight:500;color:#fffc;cursor:pointer;position:relative}.vp .rail-link .ico{width:18px;text-align:center;font-size:15px;opacity:.9}.vp .rail-link:hover{background:#ffffff12;color:#fff}.vp .rail-link.active{background:#ffffff1f;color:#fff}.vp .rail-link.active:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#7fa6e8}.vp .rail-link .tag{margin-left:auto;font-size:9px;font-family:var(--font-mono);letter-spacing:.06em;background:#ffffff24;color:#ffffffb3;padding:2px 6px;border-radius:var(--r-pill)}.vp .rail-foot{margin-top:auto;padding:14px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.vp .rail-foot .avatar{width:30px;height:30px;border-radius:50%;background:var(--c-brand-2);display:grid;place-items:center;font-weight:600;color:#fff;font-size:13px;flex:none}.vp .rail-foot .who{font-size:13px;line-height:1.2}.vp .rail-foot .who small{display:block;color:#ffffff80;font-size:11px}.vp .header{grid-area:header;background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;align-items:center;gap:16px;padding:0 var(--gutter);position:sticky;top:0;z-index:30}.vp .header .page-title{font-family:var(--font-display);font-size:20px;font-weight:600}.vp .header .page-title small{font-family:var(--font-ui);font-size:12.5px;font-weight:400;color:var(--c-text-muted);margin-left:10px}.vp .search{display:flex;align-items:center;gap:8px;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-md);padding:8px 12px;min-width:260px;color:var(--c-text-muted);font-size:13.5px}.vp .search input{border:0;background:transparent;outline:none;font-family:var(--font-ui);font-size:13.5px;width:100%;color:var(--c-text)}.vp .hdr-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-border);background:#fff;border-radius:var(--r-md);padding:7px 12px;font-size:13px;font-weight:500;color:var(--c-text-2);cursor:pointer}.vp .hdr-btn.accent{background:var(--c-brand);color:#fff;border-color:var(--c-brand)}.vp .context{grid-area:context;background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;align-items:center;gap:10px;padding:0 var(--gutter);font-size:13px;overflow-x:auto}.vp .context .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--c-text-soft);flex:none}.vp .species-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--r-pill);border:1px solid var(--c-border);background:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;flex:none;color:var(--c-text-2)}.vp .species-chip.active{background:var(--c-brand);color:#fff;border-color:var(--c-brand)}.vp .main{grid-area:main;overflow:auto;padding:var(--gutter)}.vp .page-head{display:flex;align-items:flex-end;gap:14px;margin-bottom:18px;flex-wrap:wrap}.vp .page-head h1{font-size:26px;letter-spacing:-.02em}.vp .page-head p{margin:2px 0 0;color:var(--c-text-muted);font-size:13.5px}.vp .page-head .actions{margin-left:auto;display:flex;gap:8px}.vp .grid{display:grid;gap:var(--row-gap)}.vp .cols-2{grid-template-columns:1fr 1fr}.vp .cols-3{grid-template-columns:repeat(3,1fr)}.vp .cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1100px){.vp .cols-3,.vp .cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 760px){.vp .cols-2,.vp .cols-3,.vp .cols-4{grid-template-columns:1fr}}.vp .panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--card-pad);box-shadow:var(--sh-sm)}.vp .panel h3{font-size:16px;margin-bottom:4px}.vp .panel .sub{color:var(--c-text-muted);font-size:12.5px;margin-bottom:14px}.vp .stat{display:flex;flex-direction:column;gap:2px}.vp .stat .num{font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1}.vp .stat .lbl{font-size:12.5px;color:var(--c-text-muted)}.vp .stat .ico{font-size:18px;margin-bottom:8px;opacity:.8}.vp .btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-md);background:#fff;border:1px solid var(--c-border);font-size:13.5px;font-weight:500;color:var(--c-text-2);cursor:pointer;font-family:var(--font-ui)}.vp .btn:hover{background:var(--c-surface-2)}.vp .btn.primary{background:var(--c-brand);color:#fff;border-color:var(--c-brand)}.vp .btn.primary:hover{background:var(--c-accent-strong)}.vp .btn.ghost{background:transparent;border-color:transparent}.vp .btn.block{width:100%;justify-content:center}.vp .pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;line-height:1.6;white-space:nowrap}.vp .t-1{background:var(--t1-bg);color:var(--t1)}.vp .t-2{background:var(--t2-bg);color:var(--t2)}.vp .t-3{background:var(--t3-bg);color:var(--t3)}.vp .t-4{background:var(--t4-bg);color:var(--t4)}.vp .t-5{background:var(--t5-bg);color:var(--t5)}.vp .t-6{background:var(--t6-bg);color:var(--t6)}.vp .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);background:var(--c-surface-2);border:1px solid transparent;font-size:12px;font-weight:500;color:var(--c-text-2)}.vp .chip.mono{font-family:var(--font-mono);font-size:11.5px}.vp .chip.accent{background:var(--c-accent-soft);color:var(--c-accent)}.vp table{width:100%;border-collapse:collapse;font-size:13.5px}.vp thead th{text-align:left;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-soft);font-weight:600;padding:8px 12px;border-bottom:1px solid var(--c-border)}.vp tbody td{padding:11px 12px;border-bottom:1px solid var(--c-divider)}.vp tbody tr.clickable{cursor:pointer}.vp tbody tr:hover{background:var(--c-surface-2)}.vp tbody tr:last-child td{border-bottom:0}.vp td .name{font-weight:600}.vp td .num,.vp .num{font-family:var(--font-mono);font-size:12.5px}.vp .field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.vp .field label{font-size:12px;font-weight:600;color:var(--c-text-2);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.vp .field select,.vp .field input{font-family:var(--font-ui);font-size:14px;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--r-md);background:#fff;color:var(--c-text)}.vp .field select:focus,.vp .field input:focus{outline:none;border-color:var(--c-brand)}.vp .kvs{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13.5px}.vp .kvs dt{color:var(--c-text-muted)}.vp .kvs dd{margin:0;font-weight:500}.vp .cite{font-family:var(--font-mono);font-size:11.5px;color:var(--c-text-soft)}.vp .divider{height:1px;background:var(--c-divider);margin:14px 0}.vp .evidence{font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--c-text-2);background:var(--c-surface-2);border-radius:var(--r-pill);padding:2px 8px}.vp .empty{padding:28px;text-align:center;color:var(--c-text-muted);font-size:13.5px}.vp .spinner{padding:28px;text-align:center;color:var(--c-text-soft);font-size:13px}.vp .linkish{color:var(--c-accent);font-weight:600;cursor:pointer}.vp .rail-signout{margin-left:auto;background:transparent;border:0;color:#fff9;font-size:16px;cursor:pointer;padding:4px 6px;border-radius:6px}.vp .rail-signout:hover{background:#ffffff1a;color:#fff}.vp details summary{cursor:pointer}.vp button.search{font-family:var(--font-ui);text-align:left}.vp .cmdk-hint{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;background:#fff;border:1px solid var(--c-border);border-radius:5px;padding:1px 5px;color:var(--c-text-soft)}.vp .cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b1a2b52;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:100}.vp .cmdk{width:min(560px,92vw);background:#fff;border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-lg);overflow:hidden}.vp .cmdk-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--c-divider);color:var(--c-text-muted)}.vp .cmdk-input input{flex:1;border:0;outline:none;font-family:var(--font-ui);font-size:16px;color:var(--c-text)}.vp .cmdk-input kbd{font-family:var(--font-mono);font-size:10.5px;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:5px;padding:1px 5px;color:var(--c-text-soft)}.vp .cmdk-list{list-style:none;margin:0;padding:6px;max-height:50vh;overflow:auto}.vp .cmdk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-md);cursor:pointer;font-size:14px}.vp .cmdk-item.active{background:var(--c-accent-soft)}.vp .cmdk-ico{width:18px;text-align:center;opacity:.8}.vp .cmdk-kind{margin-left:auto;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-soft)}.vp .cmdk-empty{padding:16px;text-align:center;color:var(--c-text-soft);font-size:13px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);background:var(--c-bg);color:var(--c-text);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3,.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.mono,.kv,.cite{font-family:var(--font-mono)}.app{max-width:720px;margin:0 auto;padding:0 16px 64px}.app-header{display:flex;align-items:center;gap:10px;padding:13px 16px;margin:0 -16px 8px;background:var(--c-brand);color:#fff;position:sticky;top:0;z-index:20}.app-header .logo{width:26px;height:26px}.app-header h1{font-size:19px;margin:0;color:#fff;font-family:var(--font-display)}.app-header .net{font-size:11px;font-family:var(--font-mono);padding:3px 9px;border-radius:var(--r-pill);background:#ffffff29;color:#fff}.app-header .net.offline{background:var(--c-emergency)}button{font-family:var(--font-ui);cursor:pointer}.btn{border:1px solid var(--c-brand);background:var(--c-brand);color:#fff;border-radius:var(--r-md);padding:12px 16px;font-size:15px;font-weight:600}.btn:hover{background:var(--c-accent-strong)}.btn.ghost{background:#fff;color:var(--c-brand)}.btn.ghost:hover{background:var(--c-surface-2)}.btn.block{width:100%}.muted{color:var(--c-text-muted);font-size:13px}.section-title{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--c-text-soft);margin:22px 0 8px}.species-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.species-tile{background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-lg);padding:14px 8px;text-align:center;font-size:14px;font-weight:600;box-shadow:var(--sh-sm);color:var(--c-text)}.species-tile .emoji{font-size:34px;display:block;line-height:1.1}.species-tile.active{border-color:var(--c-brand);background:var(--c-brand-soft)}.mode-toggle{display:flex;gap:6px;background:var(--c-surface-2);padding:4px;border-radius:var(--r-md)}.mode-toggle button{flex:1;border:0;background:transparent;padding:10px;border-radius:var(--r-sm);font-weight:600;color:var(--c-text-muted)}.mode-toggle button.active{background:var(--c-surface);color:var(--c-brand);box-shadow:var(--sh-sm)}.search-wrap{position:relative}.search-input{width:100%;padding:13px 14px;font-size:16px;border-radius:var(--r-md);border:1.5px solid var(--c-border);background:var(--c-surface);font-family:var(--font-ui);color:var(--c-text)}.search-input:focus{outline:none;border-color:var(--c-brand)}.search-results{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden;background:var(--c-surface);box-shadow:var(--sh-md)}.search-results li{padding:12px 14px;border-bottom:1px solid var(--c-divider);cursor:pointer}.search-results li:last-child{border-bottom:0}.search-results li:hover{background:var(--c-surface-2)}.search-results .alias{font-size:12px;color:var(--c-text-muted)}.checklist{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.checklist label{display:flex;gap:8px;align-items:flex-start;font-size:14px;padding:4px 0}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--card-pad);margin:12px 0;box-shadow:var(--sh-sm)}.card h3{margin:0 0 8px;font-size:16px}.kv{font-size:13px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:3px 10px;border-radius:var(--r-pill);background:var(--c-surface-2);color:var(--c-brand);margin-right:6px}.cite{font-size:12px;color:var(--c-text-soft)}ul.checks{list-style:none;padding:0;margin:6px 0 0}ul.checks li{padding:4px 0 4px 26px;position:relative}ul.checks li:before{content:"☐";position:absolute;left:0;color:var(--c-brand)}
