:root{--ink:#20334b;--teal:#087a75;--blue:#e6f0f8;--line:#bdccd8;--paper:#fff;--muted:#526477;--alert:#8b382e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'Avenir Next','Segoe UI',sans-serif}header{padding:16px 4vw;display:flex;gap:40px;align-items:center;border-bottom:3px solid var(--teal);flex-wrap:wrap}.brand{font-size:24px;font-weight:750;text-decoration:none}nav{display:flex;gap:24px;flex-wrap:wrap}a{color:#076582;text-underline-offset:3px}main{max-width:1500px;padding:25px 4vw;margin:auto}h1{font-size:46px;line-height:1.15;letter-spacing:-1px;margin:22px 0 16px}h2{font-size:29px;line-height:1.25;margin:0 0 20px}h3{font-size:21px;margin-top:30px}p,li,dd{max-width:88ch}.intro{font-size:22px;max-width:65ch}.notice{background:var(--blue);padding:18px 22px;max-width:110ch;border-left:4px solid var(--teal)}section{margin-top:65px;scroll-margin-top:20px}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th,td{padding:10px 12px;vertical-align:top;border-bottom:1px solid var(--line)}th{background:#edf3f7;font-weight:650}tr:hover td{background:#f3f8fa}button,input,select{font:inherit}button{border:1px solid #7b95aa;border-radius:4px;background:white;color:var(--ink);padding:8px 12px;cursor:pointer}button:hover{background:var(--blue)}button:disabled{opacity:.45;cursor:default}input,select{border:1px solid #869bb0;border-radius:3px;padding:8px;background:white;color:var(--ink);min-width:0}input[type=search]{min-width:280px}label{display:flex;flex-direction:column;gap:5px;font-size:14px}.filters{display:flex;flex-wrap:wrap;gap:15px;margin:24px 0}.filters label:first-child{flex:1 1 280px}.actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:20px 0}.scroll{overflow:auto;max-height:720px;border:1px solid var(--line);margin-top:15px}#candidates{width:max-content;min-width:100%}#candidates th{position:sticky;top:0;z-index:2;min-width:145px;max-width:230px}#candidates th:first-child,#candidates td:first-child{position:sticky;left:0;min-width:230px;max-width:300px;background:white;z-index:1;border-right:1px solid var(--line)}#candidates th:first-child{z-index:3;background:#edf3f7}#candidates td{max-width:230px;font-variant-numeric:tabular-nums}.protein{font-weight:700;padding:0;border:0;background:none;text-decoration:underline;color:#076582;text-align:left}.ids{display:block;font-size:11px;font-weight:400;margin-top:5px}.badge{display:inline-block;padding:2px 7px;background:#e1f1ec;border-radius:3px;font-size:13px}.unsafe{background:#f5ded9;color:#6e231b}.other{background:#e8eaf2}.subtle{color:var(--muted);font-size:13px}.absent{color:#81909c}.sort{font-size:12px;margin-top:4px;padding:1px 8px}details{border-bottom:1px solid var(--line);padding:14px 0}summary{cursor:pointer;font-weight:600}dt{font-weight:700;margin-top:18px}dd{margin:6px 0 14px}code{font-size:.85em;background:#eef2f5;padding:2px 5px}#column-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:20px 0}#column-controls label{flex-direction:row;align-items:center}dialog{width:min(1150px,94vw);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:30px;color:var(--ink)}dialog::backdrop{background:#20334b99}#close-detail{float:right;position:sticky;top:0;background:white}.review-note{border-left:3px solid #ac6b27;padding:4px 18px;margin:18px 0}.chart{display:grid;gap:12px;max-width:900px;margin:24px 0}.bar{display:flex;height:42px;width:100%;font-size:14px;color:white}.bar span{display:flex;align-items:center;justify-content:center;min-width:0}.adult{background:#246994}.dev{background:#96558a}.both{background:#138075}.legend{display:flex;gap:20px;flex-wrap:wrap;font-size:14px}.legend i{display:inline-block;width:12px;height:12px;margin-right:5px}.source{scroll-margin-top:20px;padding:20px 0;border-bottom:1px solid var(--line)}.source h3{margin:0 0 6px}.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.fact-grid p{margin:0}footer{border-top:2px solid var(--teal);margin-top:65px;padding:20px 0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b87825;outline-offset:3px}@media(max-width:650px){main{padding:20px}h1{font-size:36px}h2{font-size:25px}header{padding:15px 20px;gap:12px}nav{gap:14px;font-size:14px}table{font-size:12px}th,td{padding:8px}dialog{padding:18px}#candidates th:first-child,#candidates td:first-child{min-width:185px;max-width:210px}.filters label{width:100%}input[type=search]{min-width:0;width:100%}}

@media(max-width:650px){#meaning table{display:block;overflow-x:auto}}
