/* Same dark theme / tokens as model_info_db/3d-assets-site, plus a sidebar and the legacy table colours. */
:root{--bg:#16181d;--panel:#1f2229;--line:#2e323b;--fg:#d8dce3;--dim:#8e95a3;--acc:#6aa9ff;
--b0:#2c3550;--b1:#25324a;--b2:#1f2229;--b3:#191c22;--y:#ffe98a}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 system-ui,Segoe UI,sans-serif}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
header{padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel);display:flex;gap:12px;align-items:flex-start}
header .logo{flex:none;align-self:center}header .logo img{display:block;height:40px;width:auto}
@media (max-width:640px){header .logo img{height:30px}}
header h1{margin:0 0 4px;font-size:20px}header p{margin:0;color:var(--dim);font-size:13px}
#navbtn{display:none;background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:6px 10px;cursor:pointer;font-size:14px}
.layout{display:flex;align-items:flex-start}
aside#nav{width:250px;flex:0 0 250px;position:sticky;top:0;max-height:100vh;overflow:auto;padding:12px;border-right:1px solid var(--line);background:var(--panel)}
aside#nav h3{margin:14px 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-weight:600}
aside#nav ul{list-style:none;margin:0;padding:0}
aside#nav li a{display:block;padding:3px 8px;border-radius:5px;color:var(--fg);font-size:14px}
aside#nav li a:hover{background:#25324a;text-decoration:none}
aside#nav li a.on{background:#25324a;color:#fff;border-left:3px solid var(--acc);padding-left:5px}
#sbox{position:relative}
#sbox input{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--fg);padding:7px 10px;border-radius:6px}
#sres{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:6px;max-height:60vh;overflow:auto;margin-top:2px}
#sres a{display:block;padding:5px 10px;font-size:13px;color:var(--fg);border-bottom:1px solid var(--line)}
#sres a:hover{background:#25324a;text-decoration:none}#sres small{color:var(--dim)}
main{padding:16px;max-width:1200px;min-width:0;flex:1 1 auto;margin:0 auto}
main h2{margin:18px 0 8px;font-size:18px}
main h2.pt{margin-top:0;font-size:22px}
.crumbs{color:var(--dim);font-size:13px;margin:0 0 8px}
.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.bar input,.bar select{background:var(--panel);border:1px solid var(--line);color:var(--fg);padding:6px 10px;border-radius:6px;font:inherit;font-size:14px}
.bar input{min-width:220px}
.cnt{color:var(--dim);font-size:13px}
.note{color:var(--dim);font-size:12px}
.chip{display:inline-block;background:var(--panel);border:1px solid var(--line);color:var(--fg);padding:3px 10px;border-radius:16px;font-size:13px;margin:2px}
a.chip:hover{border-color:var(--acc);text-decoration:none}
details.toc{border:1px solid var(--line);border-radius:6px;padding:6px 10px;margin:0 0 14px;background:var(--panel)}
details.toc summary{cursor:pointer;color:var(--dim);font-size:13px}
/* home */
.grp h2{font-size:16px;margin:20px 0 8px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--fg)}
.card:hover{border-color:var(--acc);text-decoration:none}
.card b{display:block;font-size:15px}.card span{color:var(--dim);font-size:12px}
/* legacy tables */
.tw{overflow-x:auto;margin:0 0 14px;max-width:100%}
table.t{border-collapse:collapse;margin:0 auto}
.t td,.t th{border:1px solid var(--line);padding:4px 8px;vertical-align:top;text-align:left;font-size:14px}
.t th{background:var(--b1);color:var(--fg);font-weight:600}
.t table.t{margin:0}
.t td.b0,.t.b0{background:var(--b0)}.t td.b1,.t.b1{background:var(--b1)}
.t td.b2,.t.b2{background:var(--b2)}.t td.b3,.t.b3{background:var(--b3)}
.t td.c,.t th.c{text-align:center}.t td.r,.t th.r{text-align:right}
.t td.s{font-weight:600}
.t td img,main p img{max-width:100%;height:auto;border-radius:3px;vertical-align:middle}
.t td:has(> table.t){padding:0;border:0}
.y{color:var(--y)}
blockquote.q{margin:8px 0 14px 18px;padding-left:12px;border-left:3px solid var(--line)}
hr{border:0;border-top:1px solid var(--line);margin:14px 0}
main p{margin:6px 0 10px}
/* datasets */
table.ds{border-collapse:collapse;width:100%}
table.ds th{position:sticky;top:0;background:var(--b1);color:var(--fg);padding:6px 8px;text-align:left;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line);white-space:nowrap}
table.ds th.sorted-a::after{content:" \25B2";color:var(--acc)}table.ds th.sorted-d::after{content:" \25BC";color:var(--acc)}
table.ds td{border-bottom:1px solid var(--line);padding:4px 8px;font-size:14px}
table.ds td.r{text-align:right}
table.ds tr:hover td{background:#22262e}
.hidden{display:none!important}
.tw.ds-wrap{max-height:75vh;overflow:auto}
@media(max-width:900px){
 #navbtn{display:block}
 .layout{display:block}
 aside#nav{display:none;position:static;width:auto;max-height:none;border-right:0;border-bottom:1px solid var(--line)}
 aside#nav.open{display:block}
 main{padding:12px 16px}
}
