:root{--bg:#0b0d10;--panel:#14181d;--line:#232a31;--ink:#e7edf3;--muted:#8a97a4;--acc:#2dd4bf;--pick:#ff5a1f;--warn:#e0a44a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit}.login-wrap{place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:100%;max-width:380px;padding:28px}.login-card h1{margin:0 0 4px;font-size:20px}.login-card p{color:var(--muted);margin:0 0 20px;font-size:13px}.login-card label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.login-card input{border:1px solid var(--line);width:100%;color:var(--ink);background:#0e1216;border-radius:9px;outline:none;padding:11px 12px;font-size:14px}.login-card input:focus{border-color:var(--acc)}.login-card button{background:var(--acc);color:#04110f;cursor:pointer;border:none;border-radius:9px;width:100%;margin-top:14px;padding:11px;font-size:14px;font-weight:700}.login-err{color:#ff8a8a;margin-top:12px;font-size:12.5px}header.top{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#0b0d10f5;padding:14px 20px;position:sticky;top:0}header.top h1{align-items:baseline;gap:10px;margin:0 0 2px;font-size:18px;display:flex}header.top .logout{color:var(--muted);border:1px solid var(--line);border-radius:8px;margin-left:auto;padding:5px 10px;font-size:12px;text-decoration:none}header.top .logout:hover{border-color:var(--acc);color:var(--acc)}.sub{color:var(--muted);font-size:12.5px}.tools{flex-wrap:wrap;align-items:center;gap:8px;margin-top:11px;display:flex}#q{border:1px solid var(--line);min-width:200px;color:var(--ink);background:#0e1216;border-radius:9px;outline:none;flex:1;padding:9px 12px;font-size:13px}#q:focus{border-color:var(--acc)}.chip{border:1px solid var(--line);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:7px 13px;font-size:12px}.chip.on{border-color:var(--acc);color:#04110f;background:var(--acc);font-weight:600}select{border:1px solid var(--line);color:var(--ink);background:#0e1216;border-radius:9px;outline:none;max-width:240px;padding:8px 10px;font-size:12.5px}.cnt{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}main{padding:6px 20px 120px}section{margin-top:22px}h2.sec{background:var(--bg);z-index:5;align-items:center;gap:8px;margin:0 0 11px;padding:7px 0;font-size:14px;display:flex;position:sticky;top:130px}h2.sec .n{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:11px}.tagp{color:#2dd4bf;text-transform:uppercase;letter-spacing:.1em;border:1px solid #2dd4bf55;border-radius:6px;padding:1px 6px;font-size:10px}.tagt{color:var(--muted);border:1px solid var(--line);text-transform:uppercase;letter-spacing:.1em;border-radius:6px;padding:1px 6px;font-size:10px}.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:13px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin:0;transition:border-color .15s;overflow:hidden}.card.on{border-color:var(--pick);box-shadow:0 0 0 1px var(--pick) inset}.card.lib{border-style:dashed;border-color:#2b3a3f}.media{aspect-ratio:16/10;background:#05070a;display:block;position:relative;overflow:hidden}.media img{object-fit:cover;width:100%;height:100%;display:block}.libtile{justify-content:center;align-items:center;display:flex}.libname{text-align:center;letter-spacing:-.01em;padding:0 12px;font-size:19px;font-weight:800}.ported{letter-spacing:.12em;color:#04110f;background:var(--acc);border-radius:6px;padding:2px 7px;font-size:9px;font-weight:700;position:absolute;top:8px;right:8px}.noviz{width:100%;height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:12px;display:flex}.prim{border-radius:999px;padding:2px 7px;font-size:10px;position:absolute;top:8px;left:8px}.p3d{color:#2dd4bf;background:#2dd4bf29}.pphys{color:#ff8a5b;background:#ff5a1f29}.pcanvas{color:#c3a6ff;background:#a078ff29}.pjs{color:#aab6c2;background:#8a97a429}figcaption{padding:9px 11px}.nm{text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:13px;font-weight:600;overflow:hidden}.meta{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.best{color:#6f7b87;height:28px;margin-top:6px;font-size:10.5px;line-height:1.35;overflow:hidden}.pick{border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;margin-top:9px;padding:7px;font-size:12px}.pick:hover{border-color:var(--pick)}.card.on .pick{background:var(--pick);color:#120a06;border-color:var(--pick);font-weight:700}.empty{color:var(--muted);text-align:center;padding:40px 0}.tray{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:200px;padding:11px 13px;position:fixed;bottom:16px;right:16px;box-shadow:0 12px 40px #00000080}.tray b{color:var(--pick)}.tray .c{font-size:13px}.tray button{background:var(--acc);color:#04110f;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:8px;padding:8px;font-weight:700}.tray small{color:var(--muted);margin-top:6px;display:block}
