:root{--dt-primary:#20214e;--dt-primary-darker:#14152e;--dt-primary-tint:#ebebf2;--dt-aeris:#4cb4e7;--dt-pndb:#1f8348;--dt-odatis:#23609f;--dt-formaterre:#ba3718;--dt-theia:#c36218;--font-display:"Raleway", system-ui, sans-serif;--font-text:"Montserrat", system-ui, sans-serif;--neutral-50:#f8f8f8;--neutral-100:#f2f2f2;--neutral-200:#d8d8d8;--neutral-400:#9e9d9e;--neutral-500:#6b666b;--neutral-700:#343234;--neutral-800:#1e1c1e;--white:#fff;--radius-sm:6px;--radius-md:12px;--radius-pill:50px;--shadow-card:0 4px 16px #0000000f;--shadow-drawer:-4px 0 24px #0000001f}*,:before,:after{box-sizing:border-box}html{font-size:13px}html,body{margin:0;padding:0}body{font-family:var(--font-text);background:var(--neutral-50);color:var(--neutral-800);min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600}header{background:var(--white);border-bottom:1px solid var(--neutral-200);align-items:center;gap:1.5rem;padding:.85rem 2.5rem;display:flex}header img{width:auto;height:72px}.header-title{flex-direction:column;flex:1;line-height:1.25;display:flex}.header-title strong{font-family:var(--font-display);color:var(--dt-primary);font-size:1.45rem;font-weight:700}.header-title span{color:var(--neutral-500);font-size:1.05rem}.hero{background:var(--dt-primary);padding:1rem 1.5rem}.search-box{background:var(--white);border-radius:var(--radius-md);align-items:center;max-width:460px;margin:0 auto;display:flex;overflow:hidden;box-shadow:0 4px 16px #0000002e}.search-box input{font:inherit;color:var(--neutral-800);background:0 0;border:none;outline:none;flex:1;padding:.65rem 1rem;font-size:.9rem}.search-box input::placeholder{color:var(--neutral-400)}.search-count{color:var(--neutral-500);white-space:nowrap;border-left:1px solid var(--neutral-100);padding:0 1rem;font-size:.72rem}.layout{grid-template-columns:260px 1fr;gap:1.5rem;max-width:1200px;margin:0 auto;padding:1.5rem;display:grid}.facets{background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--radius-md);align-self:flex-start;max-height:calc(100vh - 2rem);padding:1rem 1.1rem;position:sticky;top:1rem;overflow-y:auto}.facets-header{justify-content:space-between;align-items:baseline;margin-bottom:.75rem;display:flex}.facets-header h3{text-transform:uppercase;letter-spacing:.5px;color:var(--neutral-500);font-size:.78rem;font-weight:600}.facets-clear{color:var(--dt-primary);font:inherit;font-size:.72rem;font-family:var(--font-display);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.facets-clear:hover{text-decoration:underline}.facet-group{margin-bottom:1.25rem}.facet-group:last-child{margin-bottom:0}.facet-group h4{text-transform:uppercase;letter-spacing:.5px;color:var(--neutral-700);margin-bottom:.4rem;font-size:.72rem;font-weight:600}.facet-group ul{margin:0;padding:0;list-style:none}.facet-group li{margin:0}.facet-group label{border-radius:var(--radius-sm);cursor:pointer;color:var(--neutral-700);align-items:center;gap:.5rem;padding:.3rem .4rem;font-size:.82rem;transition:background .1s;display:flex}.facet-group label:hover{background:var(--neutral-100)}.facet-group label.selected{color:var(--dt-primary);font-weight:600}.facet-group input[type=checkbox]{accent-color:var(--dt-primary);margin:0}.facet-label{word-break:break-word;flex:1}.facet-label.muted{color:var(--neutral-500);font-style:italic}.facet-count{color:var(--neutral-500);font-variant-numeric:tabular-nums;font-size:.7rem}main{min-width:0}.state{text-align:center;color:var(--neutral-400);padding:3rem 0;font-size:.9rem}.results{flex-direction:column;gap:.75rem;display:flex}.card{background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--radius-md);cursor:pointer;padding:1.1rem 1.4rem;transition:box-shadow .15s,border-color .15s,transform 50ms}.card:hover{box-shadow:var(--shadow-card);border-color:var(--neutral-400)}.card.selected{border-color:var(--dt-primary);background:var(--dt-primary-tint)}.card:active{transform:translateY(1px)}.card-badges{gap:.4rem;margin-bottom:.55rem;display:flex}.card-title{color:var(--neutral-800);margin-bottom:.4rem;font-size:1rem;font-weight:600;line-height:1.4}.card-uri{color:var(--neutral-500);word-break:break-all;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.badge{font-size:.65rem;font-weight:600;font-family:var(--font-display);border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.4px;align-items:center;padding:.22rem .6rem;display:inline-flex}.badge.type{background:var(--dt-primary-tint);color:var(--dt-primary)}.badge.source{color:var(--dt-odatis);background:#4cb4e726}.badge.eosc{color:var(--dt-pndb);background:#1f83481f}.badge.mvp{background:var(--dt-theia);color:var(--white)}.drawer-backdrop{z-index:9;background:#00000059;animation:.15s ease-out fade;position:fixed;inset:0}.drawer{background:var(--white);width:min(640px,100%);box-shadow:var(--shadow-drawer);z-index:10;padding:2rem 2rem 3rem;animation:.2s ease-out slide;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.drawer-close{color:var(--neutral-500);cursor:pointer;background:0 0;border:none;padding:0 .5rem;font-size:2rem;line-height:1;position:absolute;top:1rem;right:1.25rem}.drawer-close:hover{color:var(--neutral-800)}.drawer-header{margin-bottom:1.75rem;padding-right:2.5rem}.drawer-header h2{color:var(--dt-primary);margin:.5rem 0 .75rem;font-size:1.4rem;line-height:1.3}.drawer-desc{color:var(--neutral-700);margin:0;font-size:.92rem;line-height:1.6}.drawer-desc.clamp{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.link-button{font:inherit;font-size:.78rem;font-family:var(--font-display);color:var(--dt-primary);cursor:pointer;background:0 0;border:none;margin-top:.4rem;padding:.25rem 0;font-weight:600}.link-button:hover{text-decoration:underline}.tabs{border-bottom:1px solid var(--neutral-200);gap:.25rem;margin-bottom:1.25rem;display:flex}.tabs button{font:inherit;font-family:var(--font-display);color:var(--neutral-500);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .85rem;font-size:.78rem;font-weight:600}.tabs button:hover{color:var(--neutral-800)}.tabs button.active{color:var(--dt-primary);border-bottom-color:var(--dt-primary)}.drawer-json{background:var(--neutral-100);border-radius:var(--radius-sm);color:var(--neutral-800);white-space:pre;max-height:60vh;margin:0 0 2rem;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.5;overflow:auto}.drawer-fields{flex-direction:column;gap:1rem;margin:0 0 2rem;display:flex}.field{grid-template-columns:160px 1fr;gap:1rem;display:grid}.field dt{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.4px;color:var(--neutral-500);flex-direction:column;gap:.15rem;padding-top:.15rem;font-size:.7rem;font-weight:600;display:flex}.field dt small{text-transform:none;letter-spacing:0;color:var(--neutral-400);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:400}.field dd{color:var(--neutral-800);word-break:break-word;flex-direction:column;gap:.25rem;margin:0;font-size:.86rem;display:flex}.link{color:var(--dt-primary);word-break:break-all;text-decoration:none}.link:hover{color:var(--dt-primary-darker);text-decoration:underline}.bnode{background:var(--neutral-50);border-left:2px solid var(--neutral-200);border-radius:0 var(--radius-sm) var(--radius-sm) 0;flex-direction:column;gap:.2rem;padding:.4rem .6rem;display:flex}.bnode-row{grid-template-columns:130px 1fr;align-items:start;gap:.5rem;display:grid}.bnode-key{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3px;color:var(--neutral-500);flex-direction:column;gap:.1rem;padding-top:.1rem;font-size:.7rem;display:flex}.bnode-key small{text-transform:none;letter-spacing:0;color:var(--neutral-400);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.62rem;font-weight:400}.bnode-val{word-break:break-word}.drawer-uri{background:var(--neutral-100);border-radius:var(--radius-sm);color:var(--neutral-500);flex-direction:column;gap:.25rem;margin:1.5rem 0 0;padding:.75rem 1rem;font-size:.78rem;display:flex}.drawer-uri span{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.4px;font-size:.66rem;font-weight:600}.drawer-uri code{word-break:break-all;color:var(--neutral-800);font-size:.78rem}@keyframes slide{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (width<=900px){.layout{grid-template-columns:1fr}.facets{max-height:none;position:static}}@media (width<=720px){header{flex-wrap:wrap;gap:.75rem;padding:.85rem 1rem}header img{height:56px}.field{grid-template-columns:1fr;gap:.25rem}}
